From 179aadc5ccf3a83c3ff4053152e6cbc6836e31a6 Mon Sep 17 00:00:00 2001 From: Thomas Waldmann Date: Sat, 2 Nov 2024 11:33:31 +0100 Subject: [PATCH] repository: add store_move for soft-delete --- src/borg/remote.py | 5 +++++ src/borg/repository.py | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/src/borg/remote.py b/src/borg/remote.py index 27ec9f68b..150a58068 100644 --- a/src/borg/remote.py +++ b/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 @@ def store_store(self, name, value): 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. diff --git a/src/borg/repository.py b/src/borg/repository.py index 93c5a4f74..8b52f45ca 100644 --- a/src/borg/repository.py +++ b/src/borg/repository.py @@ -537,3 +537,7 @@ def store_store(self, name, value): 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)