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
|
||||
meta, data = other_manifest.repo_objs.parse(chunk_id, cdata, decompress=False)
|
||||
meta, data = upgrader.upgrade_compressed_chunk(meta, data)
|
||||
|
||||
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)
|
||||
chunks.append(chunk_entry)
|
||||
|
|
|
@ -943,7 +943,9 @@ class LocalCache(CacheStatsMixin):
|
|||
self.cache_config.ignored_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:
|
||||
self.begin_txn()
|
||||
if size is None and compress:
|
||||
|
@ -953,7 +955,7 @@ class LocalCache(CacheStatsMixin):
|
|||
return self.chunk_incref(id, stats)
|
||||
if size is None:
|
||||
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.chunks.add(id, 1, size)
|
||||
stats.update(size, not refcount)
|
||||
|
|
|
@ -19,7 +19,7 @@ class UpgraderNoOp:
|
|||
def upgrade_item(self, *, item):
|
||||
return item
|
||||
|
||||
def upgrade_compressed_chunk(self, *, meta, data):
|
||||
def upgrade_compressed_chunk(self, meta, data):
|
||||
return meta, data
|
||||
|
||||
def upgrade_archive_metadata(self, *, metadata):
|
||||
|
@ -98,7 +98,7 @@ class UpgraderFrom12To20:
|
|||
assert all(key in new_item for key in REQUIRED_ITEM_KEYS)
|
||||
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
|
||||
def upgrade_zlib_and_level(meta, data):
|
||||
if ZLIB_legacy.detect(data):
|
||||
|
|
Loading…
Reference in New Issue