From 3aafa6136203955b49737e9fc8e83bca7b42ad19 Mon Sep 17 00:00:00 2001 From: Thomas Lamprecht Date: Sun, 15 May 2022 16:32:46 +0200 Subject: [PATCH] namespace deletion: propagate delete-groups=false but ENOTEMPTY as error after all we couldn't delete all that got requested, ideally this should become a task where we can log what got deleted and what not... Signed-off-by: Thomas Lamprecht --- pbs-datastore/src/datastore.rs | 1 + src/api2/admin/namespace.rs | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/pbs-datastore/src/datastore.rs b/pbs-datastore/src/datastore.rs index d745be39..5af8a295 100644 --- a/pbs-datastore/src/datastore.rs +++ b/pbs-datastore/src/datastore.rs @@ -487,6 +487,7 @@ impl DataStore { log::debug!("namespace {ns} already removed") } Err(nix::Error::Sys(nix::errno::Errno::ENOTEMPTY)) if !delete_groups => { + removed_all_requested = false; log::debug!("skip removal of non-empty namespace {ns}") } Err(err) => { diff --git a/src/api2/admin/namespace.rs b/src/api2/admin/namespace.rs index 1f524cb0..20db97d6 100644 --- a/src/api2/admin/namespace.rs +++ b/src/api2/admin/namespace.rs @@ -168,7 +168,11 @@ pub fn delete_namespace( let datastore = DataStore::lookup_datastore(&store, Some(Operation::Write))?; if !datastore.remove_namespace_recursive(&ns, delete_groups)? { - bail!("group only partially deleted due to protected snapshots"); + if delete_groups { + bail!("group only partially deleted due to protected snapshots"); + } else { + bail!("only partially deleted due to existing groups but `delete-groups` not true "); + } } Ok(Value::Null)