|
@@ -472,7 +472,7 @@ class Archive:
|
|
def _load_meta(self, id):
|
|
def _load_meta(self, id):
|
|
data = self.key.decrypt(id, self.repository.get(id))
|
|
data = self.key.decrypt(id, self.repository.get(id))
|
|
metadata = ArchiveItem(internal_dict=msgpack.unpackb(data))
|
|
metadata = ArchiveItem(internal_dict=msgpack.unpackb(data))
|
|
- if metadata.version != 1:
|
|
|
|
|
|
+ if metadata.version not in (1, 2): # legacy: still need to read v1 archives
|
|
raise Exception('Unknown archive metadata version')
|
|
raise Exception('Unknown archive metadata version')
|
|
return metadata
|
|
return metadata
|
|
|
|
|
|
@@ -601,7 +601,7 @@ Utilization of max. archive size: {csize_max:.0%}
|
|
self.start = start
|
|
self.start = start
|
|
self.end = end
|
|
self.end = end
|
|
metadata = {
|
|
metadata = {
|
|
- 'version': 1,
|
|
|
|
|
|
+ 'version': 2,
|
|
'name': name,
|
|
'name': name,
|
|
'comment': comment or '',
|
|
'comment': comment or '',
|
|
'items': self.items_buffer.chunks,
|
|
'items': self.items_buffer.chunks,
|
|
@@ -1748,7 +1748,7 @@ class ArchiveChecker:
|
|
continue
|
|
continue
|
|
if not valid_msgpacked_dict(data, archive_keys_serialized):
|
|
if not valid_msgpacked_dict(data, archive_keys_serialized):
|
|
continue
|
|
continue
|
|
- if b'cmdline' not in data or b'\xa7version\x01' not in data:
|
|
|
|
|
|
+ if b'cmdline' not in data or b'\xa7version\x02' not in data:
|
|
continue
|
|
continue
|
|
try:
|
|
try:
|
|
archive = msgpack.unpackb(data)
|
|
archive = msgpack.unpackb(data)
|
|
@@ -1989,7 +1989,7 @@ class ArchiveChecker:
|
|
del self.manifest.archives[info.name]
|
|
del self.manifest.archives[info.name]
|
|
continue
|
|
continue
|
|
archive = ArchiveItem(internal_dict=msgpack.unpackb(data))
|
|
archive = ArchiveItem(internal_dict=msgpack.unpackb(data))
|
|
- if archive.version != 1:
|
|
|
|
|
|
+ if archive.version != 2:
|
|
raise Exception('Unknown archive metadata version')
|
|
raise Exception('Unknown archive metadata version')
|
|
archive.cmdline = [safe_decode(arg) for arg in archive.cmdline]
|
|
archive.cmdline = [safe_decode(arg) for arg in archive.cmdline]
|
|
items_buffer = ChunkBuffer(self.key)
|
|
items_buffer = ChunkBuffer(self.key)
|