浏览代码

repository: add store_move for soft-delete

Thomas Waldmann 7 月之前
父节点
当前提交
179aadc5cc
共有 2 个文件被更改,包括 9 次插入0 次删除
  1. 5 0
      src/borg/remote.py
  2. 4 0
      src/borg/repository.py

+ 5 - 0
src/borg/remote.py

@@ -180,6 +180,7 @@ class RepositoryServer:  # pragma: no cover
         "store_load",
         "store_store",
         "store_delete",
+        "store_move",
     )
 
     def __init__(self, restrict_to_paths, restrict_to_repositories, append_only, storage_quota, use_socket):
@@ -1093,6 +1094,10 @@ class RemoteRepository:
     def store_delete(self, name):
         """actual remoting is done via self.call in the @api decorator"""
 
+    @api(since=parse_version("2.0.0b13"))  # TODO -> b14
+    def store_move(self, name, new_name=None, *, delete=False, undelete=False, deleted=False):
+        """actual remoting is done via self.call in the @api decorator"""
+
 
 class RepositoryNoCache:
     """A not caching Repository wrapper, passes through to repository.

+ 4 - 0
src/borg/repository.py

@@ -537,3 +537,7 @@ class Repository:
     def store_delete(self, name):
         self._lock_refresh()
         return self.store.delete(name)
+
+    def store_move(self, name, new_name=None, *, delete=False, undelete=False, deleted=False):
+        self._lock_refresh()
+        return self.store.move(name, new_name, delete=delete, undelete=undelete, deleted=deleted)