[pbs-devel] [PATCH proxmox-backup] client: add "delete-groups" param to delete namespace

Gabriel Goller g.goller at proxmox.com
Mon Feb 12 11:43:40 CET 2024


The api parameter "delete-groups" was missing on the
proxmox-backup-client command. This allows the client to remove
non-empty namespaces.

Signed-off-by: Gabriel Goller <g.goller at proxmox.com>
---
 proxmox-backup-client/src/namespace.rs | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/proxmox-backup-client/src/namespace.rs b/proxmox-backup-client/src/namespace.rs
index ce3f113b..abf31ef4 100644
--- a/proxmox-backup-client/src/namespace.rs
+++ b/proxmox-backup-client/src/namespace.rs
@@ -132,11 +132,15 @@ async fn create_namespace(param: Value) -> Result<(), Error> {
                 type: BackupNamespace,
                 optional: true,
             },
+            "delete-groups": {
+                description: "Destroys all groups in the hierarchy.",
+                optional: true,
+            },
         }
     },
 )]
 /// Delete an existing namespace.
-async fn delete_namespace(param: Value) -> Result<(), Error> {
+async fn delete_namespace(param: Value, delete_groups: Option<bool>) -> Result<(), Error> {
     let repo = extract_repository_from_value(&param)?;
     let backup_ns = optional_ns_param(&param)?;
 
@@ -145,7 +149,11 @@ async fn delete_namespace(param: Value) -> Result<(), Error> {
     }
 
     let path = format!("api2/json/admin/datastore/{}/namespace", repo.store());
-    let param = json!({ "ns": backup_ns });
+    let mut param = json!({ "ns": backup_ns });
+
+    if let Some(dg) = delete_groups {
+        param["delete-groups"] = serde_json::to_value(dg)?;
+    }
 
     let client = connect(&repo)?;
 
-- 
2.43.0





More information about the pbs-devel mailing list