mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2024-12-27 16:28:53 +00:00
52 lines
1.7 KiB
Python
52 lines
1.7 KiB
Python
import struct, time
|
|
|
|
class LeaseInfo(object):
|
|
def __init__(self, owner_num=None, renew_secret=None, cancel_secret=None,
|
|
expiration_time=None, nodeid=None):
|
|
self.owner_num = owner_num
|
|
self.renew_secret = renew_secret
|
|
self.cancel_secret = cancel_secret
|
|
self.expiration_time = expiration_time
|
|
if nodeid is not None:
|
|
assert isinstance(nodeid, str)
|
|
assert len(nodeid) == 20
|
|
self.nodeid = nodeid
|
|
|
|
def get_expiration_time(self):
|
|
return self.expiration_time
|
|
|
|
def get_grant_renew_time_time(self):
|
|
# hack, based upon fixed 31day expiration period
|
|
return self.expiration_time - 31*24*60*60
|
|
|
|
def get_age(self):
|
|
return time.time() - self.get_grant_renew_time_time()
|
|
|
|
def from_immutable_data(self, data):
|
|
(self.owner_num,
|
|
self.renew_secret,
|
|
self.cancel_secret,
|
|
self.expiration_time) = struct.unpack(">L32s32sL", data)
|
|
self.nodeid = None
|
|
return self
|
|
|
|
def to_immutable_data(self):
|
|
return struct.pack(">L32s32sL",
|
|
self.owner_num,
|
|
self.renew_secret, self.cancel_secret,
|
|
int(self.expiration_time))
|
|
|
|
def to_mutable_data(self):
|
|
return struct.pack(">LL32s32s20s",
|
|
self.owner_num,
|
|
int(self.expiration_time),
|
|
self.renew_secret, self.cancel_secret,
|
|
self.nodeid)
|
|
|
|
def from_mutable_data(self, data):
|
|
(self.owner_num,
|
|
self.expiration_time,
|
|
self.renew_secret, self.cancel_secret,
|
|
self.nodeid) = struct.unpack(">LL32s32s20s", data)
|
|
return self
|