[pbs-devel] [PATCH backup] fix #3336: cleanup when deleting last snapshot
Maximiliano Sandoval
m.sandoval at proxmox.com
Thu Mar 6 13:08:10 CET 2025
When the last snapshot from a group is deleted we clear the entire
group, this in turn cleans the owner for the group.
Without this change, the user is unable to change the owner of the group
after the last snapshot has been deleted. This would prevent a new
backups to the same group from a different owner.
Signed-off-by: Maximiliano Sandoval <m.sandoval at proxmox.com>
---
src/api2/admin/datastore.rs | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/src/api2/admin/datastore.rs b/src/api2/admin/datastore.rs
index dbb7ae47..305673f1 100644
--- a/src/api2/admin/datastore.rs
+++ b/src/api2/admin/datastore.rs
@@ -423,10 +423,20 @@ pub async fn delete_snapshot(
&backup_dir.group,
)?;
- let snapshot = datastore.backup_dir(ns, backup_dir)?;
+ let snapshot = datastore.backup_dir(ns.clone(), backup_dir)?;
snapshot.destroy(false)?;
+ let group = BackupGroup::from(snapshot);
+ if group.list_backups().is_ok_and(|backups| backups.is_empty()) {
+ if let Err(err) = datastore.remove_backup_group(&ns, group.as_ref()) {
+ log::error!(
+ "error while cleaning group {path:?} - {err}",
+ path = group.full_group_path()
+ );
+ }
+ }
+
Ok(Value::Null)
})
.await?
--
2.39.5
More information about the pbs-devel
mailing list