mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2024-12-20 13:33:09 +00:00
storageserver.ReadBucketProxy: break out _parse_offsets, for debug tools
This commit is contained in:
parent
7589a8ee82
commit
35117d77a0
@ -302,24 +302,27 @@ class ReadBucketProxy:
|
|||||||
def start(self):
|
def start(self):
|
||||||
# TODO: for small shares, read the whole bucket in start()
|
# TODO: for small shares, read the whole bucket in start()
|
||||||
d = self._read(0, 8*4)
|
d = self._read(0, 8*4)
|
||||||
self._offsets = {}
|
d.addCallback(self._parse_offsets)
|
||||||
def _got_offsets(data):
|
|
||||||
self._segment_size = struct.unpack(">L", data[0:4])[0]
|
|
||||||
self._data_size = struct.unpack(">L", data[4:8])[0]
|
|
||||||
x = 0x08
|
|
||||||
for field in ( 'data',
|
|
||||||
'plaintext_hash_tree',
|
|
||||||
'crypttext_hash_tree',
|
|
||||||
'block_hashes',
|
|
||||||
'share_hashes',
|
|
||||||
'uri_extension',
|
|
||||||
):
|
|
||||||
offset = struct.unpack(">L", data[x:x+4])[0]
|
|
||||||
x += 4
|
|
||||||
self._offsets[field] = offset
|
|
||||||
d.addCallback(_got_offsets)
|
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
def _parse_offsets(self, data):
|
||||||
|
precondition(len(data) == 8*4)
|
||||||
|
self._offsets = {}
|
||||||
|
self._segment_size = struct.unpack(">L", data[0:4])[0]
|
||||||
|
self._data_size = struct.unpack(">L", data[4:8])[0]
|
||||||
|
x = 0x08
|
||||||
|
for field in ( 'data',
|
||||||
|
'plaintext_hash_tree',
|
||||||
|
'crypttext_hash_tree',
|
||||||
|
'block_hashes',
|
||||||
|
'share_hashes',
|
||||||
|
'uri_extension',
|
||||||
|
):
|
||||||
|
offset = struct.unpack(">L", data[x:x+4])[0]
|
||||||
|
x += 4
|
||||||
|
self._offsets[field] = offset
|
||||||
|
return self._offsets
|
||||||
|
|
||||||
def get_block(self, blocknum):
|
def get_block(self, blocknum):
|
||||||
num_segments = mathutil.div_ceil(self._data_size, self._segment_size)
|
num_segments = mathutil.div_ceil(self._data_size, self._segment_size)
|
||||||
if blocknum < num_segments-1:
|
if blocknum < num_segments-1:
|
||||||
|
Loading…
Reference in New Issue
Block a user