]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/blobdiff - src/allmydata/mutable/filenode.py
IServer refactoring: pass IServer instances around, instead of peerids
[tahoe-lafs/tahoe-lafs.git] / src / allmydata / mutable / filenode.py
index 612e7c77603ba98a746255adbc7362a6de2c5406..afb5f1ad5357aa17b674d33a74e9e99fda702f60 100644 (file)
@@ -185,19 +185,22 @@ class MutableFileNode:
     def _read_from_cache(self, verinfo, shnum, offset, length):
         return self._cache.read(verinfo, shnum, offset, length)
 
-    def get_write_enabler(self, peerid):
-        assert len(peerid) == 20
-        return hashutil.ssk_write_enabler_hash(self._writekey, peerid)
-    def get_renewal_secret(self, peerid):
-        assert len(peerid) == 20
+    def get_write_enabler(self, server):
+        seed = server.get_foolscap_write_enabler_seed()
+        assert len(seed) == 20
+        return hashutil.ssk_write_enabler_hash(self._writekey, seed)
+    def get_renewal_secret(self, server):
         crs = self._secret_holder.get_renewal_secret()
         frs = hashutil.file_renewal_secret_hash(crs, self._storage_index)
-        return hashutil.bucket_renewal_secret_hash(frs, peerid)
-    def get_cancel_secret(self, peerid):
-        assert len(peerid) == 20
+        lease_seed = server.get_lease_seed()
+        assert len(lease_seed) == 20
+        return hashutil.bucket_renewal_secret_hash(frs, lease_seed)
+    def get_cancel_secret(self, server):
         ccs = self._secret_holder.get_cancel_secret()
         fcs = hashutil.file_cancel_secret_hash(ccs, self._storage_index)
-        return hashutil.bucket_cancel_secret_hash(fcs, peerid)
+        lease_seed = server.get_lease_seed()
+        assert len(lease_seed) == 20
+        return hashutil.bucket_cancel_secret_hash(fcs, lease_seed)
 
     def get_writekey(self):
         return self._writekey
@@ -387,7 +390,7 @@ class MutableFileNode:
         recoverable version that I can find in there.
         """
         # XXX: wording ^^^^
-        if servermap and servermap.last_update_mode == mode:
+        if servermap and servermap.get_last_update()[0] == mode:
             d = defer.succeed(servermap)
         else:
             d = self._get_servermap(mode)
@@ -780,7 +783,7 @@ class MutableFileVersion:
 
     def _overwrite(self, new_contents):
         assert IMutableUploadable.providedBy(new_contents)
-        assert self._servermap.last_update_mode == MODE_WRITE
+        assert self._servermap.get_last_update()[0] == MODE_WRITE
 
         return self._upload(new_contents)
 
@@ -874,7 +877,7 @@ class MutableFileVersion:
         I attempt to apply a modifier to the contents of the mutable
         file.
         """
-        assert self._servermap.last_update_mode != MODE_READ
+        assert self._servermap.get_last_update()[0] != MODE_READ
 
         # download_to_data is serialized, so we have to call this to
         # avoid deadlock.
@@ -974,7 +977,8 @@ class MutableFileVersion:
         """
         I am the serialized companion of read.
         """
-        r = Retrieve(self._node, self._servermap, self._version, fetch_privkey)
+        r = Retrieve(self._node, self._storage_broker, self._servermap,
+                     self._version, fetch_privkey)
         if self._history:
             self._history.notify_retrieve(r.get_status())
         d = r.download(consumer, offset, size)
@@ -1122,7 +1126,8 @@ class MutableFileVersion:
         used by the new uploadable. I return a Deferred that fires with
         the segments.
         """
-        r = Retrieve(self._node, self._servermap, self._version)
+        r = Retrieve(self._node, self._storage_broker, self._servermap,
+                     self._version)
         # decode: takes in our blocks and salts from the servermap,
         # returns a Deferred that fires with the corresponding plaintext
         # segments. Does not download -- simply takes advantage of