summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@xander>2010-12-26 13:56:21 +0200
committerLars Wirzenius <liw@xander>2010-12-26 13:56:21 +0200
commit5e4b2a86326a47c6782c26821128fbabadf64bcd (patch)
tree805b63df952e383fe976516a2f283f02c55193f5
parent91d67536018bffc12d352627a005bfb000b83394 (diff)
downloadobnam-5e4b2a86326a47c6782c26821128fbabadf64bcd.tar.gz
Implement ClientMetadataTree.append_file_chunks.
-rw-r--r--obnamlib/clientmetadatatree.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/obnamlib/clientmetadatatree.py b/obnamlib/clientmetadatatree.py
index 5c8c0370..21f50d7f 100644
--- a/obnamlib/clientmetadatatree.py
+++ b/obnamlib/clientmetadatatree.py
@@ -312,7 +312,14 @@ class ClientMetadataTree(obnamlib.StoreTree):
self.tree.remove_range(key, key)
def append_file_chunks(self, filename, chunkids):
- pass
+ file_id = self.get_file_id(self.tree, filename)
+ minkey = self.fskey(file_id, self.FILE_CHUNKS, 0)
+ maxkey = self.fskey(file_id, self.FILE_CHUNKS, self.SUBKEY_MAX)
+ n = len(self.tree.lookup_range(minkey, maxkey))
+ for i, chunkid in enumerate(chunkids, n):
+ key = self.fskey(file_id, self.FILE_CHUNKS, i)
+ self.tree.insert(key, struct.pack('!Q', chunkid))
+ self.tree.insert(self.chunk_key(chunkid, file_id), '')
def chunk_in_use(self, gen_id, chunk_id):
'''Is a chunk used by a generation?'''