mirror of https://github.com/borgbackup/borg.git
upgrader fixes for new api
This commit is contained in:
parent
4c9ed2a6c6
commit
cf333cef91
|
@ -71,9 +71,16 @@ class TransferMixIn:
|
||||||
# keep compressed payload same, avoid decompression / recompression
|
# keep compressed payload same, avoid decompression / recompression
|
||||||
meta, data = other_manifest.repo_objs.parse(chunk_id, cdata, decompress=False)
|
meta, data = other_manifest.repo_objs.parse(chunk_id, cdata, decompress=False)
|
||||||
meta, data = upgrader.upgrade_compressed_chunk(meta, data)
|
meta, data = upgrader.upgrade_compressed_chunk(meta, data)
|
||||||
|
|
||||||
chunk_entry = cache.add_chunk(
|
chunk_entry = cache.add_chunk(
|
||||||
chunk_id, meta, data, stats=archive.stats, wait=False, compress=False, size=size
|
chunk_id,
|
||||||
|
meta,
|
||||||
|
data,
|
||||||
|
stats=archive.stats,
|
||||||
|
wait=False,
|
||||||
|
compress=False,
|
||||||
|
size=size,
|
||||||
|
ctype=meta["ctype"],
|
||||||
|
clevel=meta["clevel"],
|
||||||
)
|
)
|
||||||
cache.repository.async_response(wait=False)
|
cache.repository.async_response(wait=False)
|
||||||
chunks.append(chunk_entry)
|
chunks.append(chunk_entry)
|
||||||
|
|
|
@ -943,7 +943,9 @@ class LocalCache(CacheStatsMixin):
|
||||||
self.cache_config.ignored_features.update(repo_features - my_features)
|
self.cache_config.ignored_features.update(repo_features - my_features)
|
||||||
self.cache_config.mandatory_features.update(repo_features & my_features)
|
self.cache_config.mandatory_features.update(repo_features & my_features)
|
||||||
|
|
||||||
def add_chunk(self, id, meta, data, *, stats, overwrite=False, wait=True, compress=True, size=None):
|
def add_chunk(
|
||||||
|
self, id, meta, data, *, stats, overwrite=False, wait=True, compress=True, size=None, ctype=None, clevel=None
|
||||||
|
):
|
||||||
if not self.txn_active:
|
if not self.txn_active:
|
||||||
self.begin_txn()
|
self.begin_txn()
|
||||||
if size is None and compress:
|
if size is None and compress:
|
||||||
|
@ -953,7 +955,7 @@ class LocalCache(CacheStatsMixin):
|
||||||
return self.chunk_incref(id, stats)
|
return self.chunk_incref(id, stats)
|
||||||
if size is None:
|
if size is None:
|
||||||
raise ValueError("when giving compressed data for a new chunk, the uncompressed size must be given also")
|
raise ValueError("when giving compressed data for a new chunk, the uncompressed size must be given also")
|
||||||
cdata = self.repo_objs.format(id, meta, data, compress=compress, size=size)
|
cdata = self.repo_objs.format(id, meta, data, compress=compress, size=size, ctype=ctype, clevel=clevel)
|
||||||
self.repository.put(id, cdata, wait=wait)
|
self.repository.put(id, cdata, wait=wait)
|
||||||
self.chunks.add(id, 1, size)
|
self.chunks.add(id, 1, size)
|
||||||
stats.update(size, not refcount)
|
stats.update(size, not refcount)
|
||||||
|
|
|
@ -19,7 +19,7 @@ class UpgraderNoOp:
|
||||||
def upgrade_item(self, *, item):
|
def upgrade_item(self, *, item):
|
||||||
return item
|
return item
|
||||||
|
|
||||||
def upgrade_compressed_chunk(self, *, meta, data):
|
def upgrade_compressed_chunk(self, meta, data):
|
||||||
return meta, data
|
return meta, data
|
||||||
|
|
||||||
def upgrade_archive_metadata(self, *, metadata):
|
def upgrade_archive_metadata(self, *, metadata):
|
||||||
|
@ -98,7 +98,7 @@ class UpgraderFrom12To20:
|
||||||
assert all(key in new_item for key in REQUIRED_ITEM_KEYS)
|
assert all(key in new_item for key in REQUIRED_ITEM_KEYS)
|
||||||
return new_item
|
return new_item
|
||||||
|
|
||||||
def upgrade_compressed_chunk(self, *, meta, data):
|
def upgrade_compressed_chunk(self, meta, data):
|
||||||
# meta/data was parsed via RepoObj1.parse, which returns data **including** the ctype/clevel bytes prefixed
|
# meta/data was parsed via RepoObj1.parse, which returns data **including** the ctype/clevel bytes prefixed
|
||||||
def upgrade_zlib_and_level(meta, data):
|
def upgrade_zlib_and_level(meta, data):
|
||||||
if ZLIB_legacy.detect(data):
|
if ZLIB_legacy.detect(data):
|
||||||
|
|
Loading…
Reference in New Issue