Explorar o código

do not show archive name in error msgs referring to repository (#6023)

do not show archive name in repo error msgs, fix #6014
sw9719 %!s(int64=3) %!d(string=hai) anos
pai
achega
fec3568cba
Modificáronse 3 ficheiros con 13 adicións e 1 borrados
  1. 1 1
      src/borg/archiver.py
  2. 6 0
      src/borg/helpers/parseformat.py
  3. 6 0
      src/borg/testsuite/helpers.py

+ 1 - 1
src/borg/archiver.py

@@ -158,7 +158,7 @@ def with_repository(fake=False, invert_fake=False, create=False, lock=True,
             if argument(args, fake) ^ invert_fake:
                 return method(self, args, repository=None, **kwargs)
             elif location.proto == 'ssh':
-                repository = RemoteRepository(location, create=create, exclusive=argument(args, exclusive),
+                repository = RemoteRepository(location.omit_archive(), create=create, exclusive=argument(args, exclusive),
                                               lock_wait=self.lock_wait, lock=lock, append_only=append_only,
                                               make_parent_dirs=make_parent_dirs, args=args)
             else:

+ 6 - 0
src/borg/helpers/parseformat.py

@@ -492,6 +492,12 @@ class Location:
             'utcnow': DatetimeWrapper(timestamp),
         })
 
+    def omit_archive(self):
+        loc = Location(self.orig)
+        loc.archive = None
+        loc.orig = loc.orig.split("::")[0]
+        return loc
+
 
 def location_validator(archive=None, proto=None):
     def validator(text):

+ 6 - 0
src/borg/testsuite/helpers.py

@@ -234,6 +234,12 @@ class TestLocationWithoutEnv:
             # this is invalid due to the 2nd colon, correct: 'ssh://user@host/path'
             Location('ssh://user@host:/path')
 
+    def test_omit_archive(self):
+        loc = Location('ssh://user@host:1234/some/path::archive')
+        loc_without_archive = loc.omit_archive()
+        assert loc_without_archive.archive is None
+        assert loc_without_archive.orig == "ssh://user@host:1234/some/path"
+
 
 class TestLocationWithEnv:
     def test_ssh(self, monkeypatch):