remove remainders of attic legacy

we expect that everybody has upgraded to borg
using borg 1.2.x or older, thus we do not need
to care about attic repos any more in borg2.
This commit is contained in:
Thomas Waldmann 2022-07-13 16:55:29 +02:00
parent ca74118b61
commit 7bc7f01342
7 changed files with 5 additions and 24 deletions

View File

@ -1080,7 +1080,7 @@ class MetadataCollector:
def stat_simple_attrs(self, st):
attrs = dict(mode=st.st_mode, uid=st.st_uid, gid=st.st_gid, mtime=safe_ns(st.st_mtime_ns))
# borg can work with archives only having mtime (older attic archives do not have
# borg can work with archives only having mtime (very old borg archives do not have
# atime/ctime). it can be useful to omit atime/ctime, if they change without the
# file content changing - e.g. to get better metadata deduplication.
if not self.noatime:

View File

@ -89,8 +89,7 @@ class RecreateMixIn:
There is no risk of data loss by this.
``--chunker-params`` will re-chunk all files in the archive, this can be
used to have upgraded Borg 0.xx or Attic archives deduplicate with
Borg 1.x archives.
used to have upgraded Borg 0.xx archives deduplicate with Borg 1.x archives.
**USE WITH CAUTION.**
Depending on the PATHs and patterns given, recreate can be used to permanently

View File

@ -135,7 +135,7 @@ class KeyType:
# in borg 2. all of its code and also the "borg key migrate-to-repokey" command was removed.
# if you still need to, you can use "borg key migrate-to-repokey" with borg 1.0, 1.1 and 1.2.
# Nowadays, we just dispatch this to RepoKey and assume the passphrase was migrated to a repokey.
PASSPHRASE = 0x01 # legacy, attic and borg < 1.0
PASSPHRASE = 0x01 # legacy, borg < 1.0
PLAINTEXT = 0x02
REPO = 0x03
BLAKE2KEYFILE = 0x04

View File

@ -791,11 +791,6 @@ This problem will go away as soon as the server has been upgraded to 1.0.7+.
raise IntegrityError("(not available)")
else:
raise IntegrityError(args[0])
elif error == "AtticRepository":
if old_server:
raise Repository.AtticRepository("(not available)")
else:
raise Repository.AtticRepository(args[0])
elif error == "PathNotAllowed":
if old_server:
raise PathNotAllowed("(unknown)")

View File

@ -32,8 +32,6 @@ logger = create_logger(__name__)
MAGIC = b"BORG_SEG"
MAGIC_LEN = len(MAGIC)
ATTIC_MAGIC = b"ATTICSEG"
assert len(ATTIC_MAGIC) == MAGIC_LEN
TAG_PUT = 0
TAG_DELETE = 1
@ -152,9 +150,6 @@ class Repository:
class InvalidRepositoryConfig(Error):
"""{} does not have a valid configuration. Check repo config [{}]."""
class AtticRepository(Error):
"""Attic repository detected. Please use borg <= 1.2 to run "borg upgrade {}"."""
class CheckNeeded(ErrorWithTraceback):
"""Inconsistency detected. Please run "borg check {}"."""
@ -181,7 +176,6 @@ class Repository:
lock=True,
append_only=False,
storage_quota=None,
check_segment_magic=True,
make_parent_dirs=False,
):
self.path = os.path.abspath(path)
@ -205,7 +199,6 @@ class Repository:
self.storage_quota = storage_quota
self.storage_quota_use = 0
self.transaction_doomed = None
self.check_segment_magic = check_segment_magic
self.make_parent_dirs = make_parent_dirs
# v2 is the default repo version for borg 2.0
# v1 repos must only be used in a read-only way, e.g. for
@ -498,12 +491,6 @@ class Repository:
self.storage_quota = parse_file_size(self.config.get("repository", "storage_quota", fallback=0))
self.id = unhexlify(self.config.get("repository", "id").strip())
self.io = LoggedIO(self.path, self.max_segment_size, self.segments_per_dir)
if self.check_segment_magic:
# read a segment and check whether we are dealing with a non-upgraded Attic repository
segment = self.io.get_latest_segment()
if segment is not None and self.io.get_segment_magic(segment) == ATTIC_MAGIC:
self.close()
raise self.AtticRepository(path)
def info(self):
"""return some infos about the repo (must be opened first)"""

View File

@ -34,7 +34,7 @@ class CryptoTestCase(BaseTestCase):
self.assert_equal(got_data, data)
def test_AES256_CTR_HMAC_SHA256(self):
# this tests the layout as in attic / borg < 1.2 (1 type byte, no aad)
# this tests the layout as in borg < 1.2 (1 type byte, no aad)
mac_key = b"Y" * 32
enc_key = b"X" * 32
iv = 0

View File

@ -102,7 +102,7 @@ class UpgraderFrom12To20:
def upgrade_zlib_and_level(chunk):
if ZLIB_legacy.detect(chunk):
ctype = ZLIB.ID
chunk = ctype + level + bytes(chunk) # get rid of the attic legacy: prepend separate type/level bytes
chunk = ctype + level + bytes(chunk) # get rid of the legacy: prepend separate type/level bytes
else:
ctype = bytes(chunk[0:1])
chunk = ctype + level + bytes(chunk[2:]) # keep type same, but set level