[pbs-devel] [PATCH proxmox-backup 03/17] api/datastore: move snapshot deletion into dedicated datastore helper
Christian Ebner
c.ebner at proxmox.com
Mon Nov 3 12:31:06 CET 2025
In an effort to move all datastore backend related logic to the
datastore itself.
Signed-off-by: Christian Ebner <c.ebner at proxmox.com>
---
pbs-datastore/src/datastore.rs | 9 +++++++++
src/api2/admin/datastore.rs | 25 ++++++++-----------------
2 files changed, 17 insertions(+), 17 deletions(-)
diff --git a/pbs-datastore/src/datastore.rs b/pbs-datastore/src/datastore.rs
index 45f315aeb..46600a88c 100644
--- a/pbs-datastore/src/datastore.rs
+++ b/pbs-datastore/src/datastore.rs
@@ -2444,4 +2444,13 @@ impl DataStore {
.context("failed to replace group notes file")?;
Ok(())
}
+
+ /// Delete a backup snapshot from the datastore.
+ /// Acquires exclusive lock on the backup snapshot.
+ pub fn delete_snapshot(self: &Arc<Self>, snapshot: &BackupDir) -> Result<(), Error> {
+ let backend = self.backend().context("failed to get backend")?;
+ // acquires exclusive lock on snapshot before removal
+ snapshot.destroy(false, &backend)?;
+ Ok(())
+ }
}
diff --git a/src/api2/admin/datastore.rs b/src/api2/admin/datastore.rs
index 131cdae51..763440df9 100644
--- a/src/api2/admin/datastore.rs
+++ b/src/api2/admin/datastore.rs
@@ -378,9 +378,9 @@ pub async fn delete_snapshot(
)?;
let snapshot = datastore.backup_dir(ns, backup_dir)?;
-
- snapshot.destroy(false, &datastore.backend()?)?;
-
+ datastore
+ .delete_snapshot(&snapshot)
+ .map_err(|err| format_err!("failed to delete snapshot - {err:#?}"))?;
Ok(Value::Null)
})
.await?
@@ -986,21 +986,12 @@ pub fn prune(
});
if !keep {
- match datastore.backend() {
- Ok(backend) => {
- if let Err(err) = backup_dir.destroy(false, &backend) {
- warn!(
- "failed to remove dir {:?}: {}",
- backup_dir.relative_path(),
- err,
- );
- }
- }
- Err(err) => warn!(
- "failed to remove dir {:?}: {err}",
+ if let Err(err) = datastore.delete_snapshot(backup_dir) {
+ warn!(
+ "failed to remove dir {:?}: {err:#?}",
backup_dir.relative_path()
- ),
- };
+ );
+ }
}
}
prune_result
--
2.47.3
More information about the pbs-devel
mailing list