"""
The interface for a writer around a mutable slot on a remote server.
"""
- def set_checkstring(checkstring, *args):
+ def set_checkstring(seqnum_or_checkstring, root_hash=None, salt=None):
"""
Set the checkstring that I will pass to the remote server when
writing.
writer-visible data using this writekey.
"""
- # TODO: Can this be overwrite instead of replace?
- def replace(new_contents):
+ def overwrite(new_contents):
"""Replace the contents of the mutable file, provided that no other
node has published (or is attempting to publish, concurrently) a
newer version of the file than this one.
"""Specify the number of bytes that will be encoded. This must be
peformed before get_serialized_params() can be called.
"""
- def set_params(params):
- """Override the default encoding parameters. 'params' is a tuple of
- (k,d,n), where 'k' is the number of required shares, 'd' is the
- servers_of_happiness, and 'n' is the total number of shares that will
- be created.
-
- Encoding parameters can be set in three ways. 1: The Encoder class
- provides defaults (3/7/10). 2: the Encoder can be constructed with
- an 'options' dictionary, in which the
- needed_and_happy_and_total_shares' key can be a (k,d,n) tuple. 3:
- set_params((k,d,n)) can be called.
-
- If you intend to use set_params(), you must call it before
- get_share_size or get_param are called.
- """
def set_encrypted_uploadable(u):
"""Provide a source of encrypted upload data. 'u' must implement
resuming an interrupted upload (where we need to compute the
plaintext hashes, but don't need the redundant encrypted data)."""
- def get_plaintext_hashtree_leaves(first, last, num_segments):
- """OBSOLETE; Get the leaf nodes of a merkle hash tree over the
- plaintext segments, i.e. get the tagged hashes of the given segments.
- The segment size is expected to be generated by the
- IEncryptedUploadable before any plaintext is read or ciphertext
- produced, so that the segment hashes can be generated with only a
- single pass.
-
- This returns a Deferred which fires with a sequence of hashes, using:
-
- tuple(segment_hashes[first:last])
-
- 'num_segments' is used to assert that the number of segments that the
- IEncryptedUploadable handled matches the number of segments that the
- encoder was expecting.
-
- This method must not be called until the final byte has been read
- from read_encrypted(). Once this method is called, read_encrypted()
- can never be called again.
- """
-
- def get_plaintext_hash():
- """OBSOLETE; Get the hash of the whole plaintext.
-
- This returns a Deferred which fires with a tagged SHA-256 hash of the
- whole plaintext, obtained from hashutil.plaintext_hash(data).
- """
-
def close():
"""Just like IUploadable.close()."""
returns a Deferred that fires with an IUploadResults instance, from
which the URI of the file can be obtained as results.uri ."""
- def upload_ssk(write_capability, new_version, uploadable):
- """TODO: how should this work?"""
class ICheckable(Interface):
def check(monitor, verify=False, add_lease=False):
Tahoe process will typically have a single NodeMaker, but unit tests may
create simplified/mocked forms for testing purposes.
"""
- def create_from_cap(writecap, readcap=None, **kwargs):
+
+ def create_from_cap(writecap, readcap=None, deep_immutable=False, name=u"<unknown name>"):
"""I create an IFilesystemNode from the given writecap/readcap. I can
only provide nodes for existing file/directory objects: use my other
methods to create new objects. I return synchronously."""