diff options
author | Lars Wirzenius <liw@xander> | 2010-12-26 13:56:21 +0200 |
---|---|---|
committer | Lars Wirzenius <liw@xander> | 2010-12-26 13:56:21 +0200 |
commit | 5e4b2a86326a47c6782c26821128fbabadf64bcd (patch) | |
tree | 805b63df952e383fe976516a2f283f02c55193f5 | |
parent | 91d67536018bffc12d352627a005bfb000b83394 (diff) | |
download | obnam-5e4b2a86326a47c6782c26821128fbabadf64bcd.tar.gz |
Implement ClientMetadataTree.append_file_chunks.
-rw-r--r-- | obnamlib/clientmetadatatree.py | 9 |
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?''' |