source file: /home/buildslave/tahoe/edgy/build/src/allmydata/storage/lease.py
file stats: 35 lines, 35 executed: 100.0% covered
coverage versus previous test: 0 lines added, 0 lines removed
    1. import struct, time
    2. 
    3. class LeaseInfo:
    4.     def __init__(self, owner_num=None, renew_secret=None, cancel_secret=None,
    5.                  expiration_time=None, nodeid=None):
    6.         self.owner_num = owner_num
    7.         self.renew_secret = renew_secret
    8.         self.cancel_secret = cancel_secret
    9.         self.expiration_time = expiration_time
   10.         if nodeid is not None:
   11.             assert isinstance(nodeid, str)
   12.             assert len(nodeid) == 20
   13.         self.nodeid = nodeid
   14. 
   15.     def get_expiration_time(self):
   16.         return self.expiration_time
   17.     def get_grant_renew_time_time(self):
   18.         # hack, based upon fixed 31day expiration period
   19.         return self.expiration_time - 31*24*60*60
   20.     def get_age(self):
   21.         return time.time() - self.get_grant_renew_time_time()
   22. 
   23.     def from_immutable_data(self, data):
   24.         (self.owner_num,
   25.          self.renew_secret,
   26.          self.cancel_secret,
   27.          self.expiration_time) = struct.unpack(">L32s32sL", data)
   28.         self.nodeid = None
   29.         return self
   30.     def to_immutable_data(self):
   31.         return struct.pack(">L32s32sL",
   32.                            self.owner_num,
   33.                            self.renew_secret, self.cancel_secret,
   34.                            int(self.expiration_time))
   35. 
   36.     def to_mutable_data(self):
   37.         return struct.pack(">LL32s32s20s",
   38.                            self.owner_num,
   39.                            int(self.expiration_time),
   40.                            self.renew_secret, self.cancel_secret,
   41.                            self.nodeid)
   42.     def from_mutable_data(self, data):
   43.         (self.owner_num,
   44.          self.expiration_time,
   45.          self.renew_secret, self.cancel_secret,
   46.          self.nodeid) = struct.unpack(">LL32s32s20s", data)
   47.         return self