Fix cache recreation bug

This commit is contained in:
Jonas Borgström 2010-10-17 18:05:46 +02:00
parent 6eb65d07f9
commit e72c558dec
2 changed files with 11 additions and 6 deletions

View File

@ -67,7 +67,6 @@ class Archive(object):
datum_writer = io.DatumWriter(archive_schema)
datum_writer.write(archive, encoder)
data = zlib.compress(writer.getvalue())
print 'archive size: %d' % len(data)
self.id = hashlib.sha256(data).digest()
self.store.put(NS_ARCHIVES, self.id, data)
self.store.commit()

View File

@ -57,11 +57,17 @@ class Cache(object):
decoder = io.BinaryDecoder(buffer)
archive = reader.read(decoder)
self.archives[archive['name']] = id
for id, size in archive['chunks']:
if self.seen_chunk(id):
self.chunk_incref(id)
else:
self.init_chunk(id, size)
for item in archive['items']:
if item['type'] != 'FILE':
continue
for idx in item['chunks']:
chunk = archive['chunks'][idx]
id = chunk['id']
if self.seen_chunk(id):
self.chunk_incref(id)
else:
self.init_chunk(id, chunk['size'])
self.save()
def save(self):
assert self.store.state == self.store.OPEN