mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2024-12-24 07:06:41 +00:00
Switch IStorageServer interface to be slightly different than RIStorageServer.
This commit is contained in:
parent
9c7d719405
commit
8633432980
@ -351,6 +351,10 @@ class IStorageServer(Interface):
|
||||
):
|
||||
"""
|
||||
:see: ``RIStorageServer.slot_testv_readv_and_writev``
|
||||
|
||||
While the interface mostly matches, test vectors are simplified.
|
||||
Instead of a tuple ``(start, offset, operator, data)`` they are just
|
||||
``(start, data)`` with operator implicitly being ``b"eq"``.
|
||||
"""
|
||||
|
||||
def advise_corrupt_share(
|
||||
|
@ -309,7 +309,7 @@ class SDMFSlotWriteProxy(object):
|
||||
salt)
|
||||
else:
|
||||
checkstring = checkstring_or_seqnum
|
||||
self._testvs = [(0, len(checkstring), b"eq", checkstring)]
|
||||
self._testvs = [(0, checkstring)]
|
||||
|
||||
|
||||
def get_checkstring(self):
|
||||
@ -318,7 +318,7 @@ class SDMFSlotWriteProxy(object):
|
||||
server.
|
||||
"""
|
||||
if self._testvs:
|
||||
return self._testvs[0][3]
|
||||
return self._testvs[0][1]
|
||||
return b""
|
||||
|
||||
|
||||
@ -550,7 +550,7 @@ class SDMFSlotWriteProxy(object):
|
||||
# yet, so we assume that we are writing a new share, and set
|
||||
# a test vector that will allow a new share to be written.
|
||||
self._testvs = []
|
||||
self._testvs.append(tuple([0, 1, b"eq", b""]))
|
||||
self._testvs.append(tuple([0, b""]))
|
||||
|
||||
tw_vectors = {}
|
||||
tw_vectors[self.shnum] = (self._testvs, datavs, None)
|
||||
@ -889,7 +889,7 @@ class MDMFSlotWriteProxy(object):
|
||||
self._testvs = []
|
||||
else:
|
||||
self._testvs = []
|
||||
self._testvs.append((0, len(checkstring), b"eq", checkstring))
|
||||
self._testvs.append((0, checkstring))
|
||||
|
||||
|
||||
def __repr__(self):
|
||||
@ -1162,7 +1162,7 @@ class MDMFSlotWriteProxy(object):
|
||||
tw_vectors = {}
|
||||
if not self._testvs:
|
||||
self._testvs = []
|
||||
self._testvs.append(tuple([0, 1, b"eq", b""]))
|
||||
self._testvs.append(tuple([0, b""]))
|
||||
if not self._written:
|
||||
# Write a new checkstring to the share when we write it, so
|
||||
# that we have something to check later.
|
||||
@ -1170,7 +1170,7 @@ class MDMFSlotWriteProxy(object):
|
||||
datavs.append((0, new_checkstring))
|
||||
def _first_write():
|
||||
self._written = True
|
||||
self._testvs = [(0, len(new_checkstring), b"eq", new_checkstring)]
|
||||
self._testvs = [(0, new_checkstring)]
|
||||
on_success = _first_write
|
||||
tw_vectors[self.shnum] = (self._testvs, datavs, None)
|
||||
d = self._storage_server.slot_testv_and_readv_and_writev(
|
||||
|
@ -994,11 +994,19 @@ class _StorageServer(object):
|
||||
tw_vectors,
|
||||
r_vector,
|
||||
):
|
||||
# Match the wire protocol, which requires 4-tuples for test vectors.
|
||||
wire_format_tw_vectors = {
|
||||
key: (
|
||||
[(start, len(data), b"eq", data) for (start, data) in value[0]],
|
||||
value[1],
|
||||
value[2],
|
||||
) for (key, value) in tw_vectors.items()
|
||||
}
|
||||
return self._rref.callRemote(
|
||||
"slot_testv_and_readv_and_writev",
|
||||
storage_index,
|
||||
secrets,
|
||||
tw_vectors,
|
||||
wire_format_tw_vectors,
|
||||
r_vector,
|
||||
)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user