Number = IntegerConstraint(8) # 2**(8*8) == 16EiB ~= 18e18 ~= 18 exabytes
Offset = Number
ReadSize = int # the 'int' constraint is 2**31 == 2Gib -- large files are processed in not-so-large increments
-WriteEnablerSecret = Hash # used to protect mutable bucket modifications
-LeaseRenewSecret = Hash # used to protect bucket lease renewal requests
-LeaseCancelSecret = Hash # used to protect bucket lease cancellation requests
+WriteEnablerSecret = Hash # used to protect mutable share modifications
+LeaseRenewSecret = Hash # used to protect lease renewal requests
+LeaseCancelSecret = Hash # was used to protect lease cancellation requests
+
class RIBucketWriter(RemoteInterface):
""" Objects of this kind live on the server side. """
This secret is generated by the client and
stored for later comparison by the server. Each
server is given a different secret.
- @param cancel_secret: Like renew_secret, but protects bucket decref.
+ @param cancel_secret: This no longer allows lease cancellation, but
+ must still be a unique value identifying the
+ lease. XXX stop relying on it to be unique.
@param canary: If the canary is lost before close(), the bucket is
deleted.
@return: tuple of (alreadygot, allocated), where alreadygot is what we
For mutable shares, if the given renew_secret does not match an
existing lease, IndexError will be raised with a note listing the
server-nodeids on the existing leases, so leases on migrated shares
- can be renewed or cancelled. For immutable shares, IndexError
- (without the note) will be raised.
+ can be renewed. For immutable shares, IndexError (without the note)
+ will be raised.
"""
return Any()
This secret is generated by the client and
stored for later comparison by the server. Each
server is given a different secret.
- @param cancel_secret: Like renew_secret, but protects bucket decref.
+ @param cancel_secret: This no longer allows lease cancellation, but
+ must still be a unique value identifying the
+ lease. XXX stop relying on it to be unique.
The 'secrets' argument is a tuple of (write_enabler, renew_secret,
cancel_secret). The first is required to perform any write. The