2
0
Эх сурвалжийг харах

Merge pull request #8420 from ThomasWaldmann/catch-be-error

catch BackendError raised by Store(), see #8373
TW 8 сар өмнө
parent
commit
84615385ce

+ 2 - 2
docs/changes.rst

@@ -57,8 +57,8 @@ Compatibility notes:
   - or, if the command makes sense for an arbitrary amount of archives, archives
     can be selected using a glob pattern, like:
 
-    - borg delete -a 'sh:myarchive-2024-*'
-    - borg recreate -a 'sh:myarchive-2024-*'
+    - borg delete -a 'sh:myarchive-2024-??-??'
+    - borg recreate -a 'sh:myarchive-2024-??-??'
   - some borg 1.x commands that supported working on a repo AND on an archive
     were split into 2 commands, some others were renamed:
 

+ 5 - 1
src/borg/repository.py

@@ -3,6 +3,7 @@ import time
 
 from borgstore.store import Store
 from borgstore.store import ObjectNotFound as StoreObjectNotFound
+from borgstore.backends.errors import BackendError as StoreBackendError
 from borgstore.backends.errors import BackendDoesNotExist as StoreBackendDoesNotExist
 
 from .checksums import xxh64
@@ -116,7 +117,10 @@ class Repository:
             location = Location(url)
         self._location = location
         # use a Store with flat config storage and 2-levels-nested data storage
-        self.store = Store(url, levels={"config/": [0], "data/": [2]})
+        try:
+            self.store = Store(url, levels={"config/": [0], "data/": [2]})
+        except StoreBackendError as e:
+            raise Error(str(e))
         self.version = None
         # long-running repository methods which emit log or progress output are responsible for calling
         # the ._send_log method periodically to get log and progress output transferred to the borg client