From edebd52374bca2e1576f36186346571f8534311a Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Wed, 25 Nov 2020 06:51:23 +0100 Subject: [PATCH] cli: rename command "forget" to "snapshot forget" --- src/bin/proxmox-backup-client.rs | 44 +--------------------- src/bin/proxmox_backup_client/snapshot.rs | 45 ++++++++++++++++++++++- 2 files changed, 45 insertions(+), 44 deletions(-) diff --git a/src/bin/proxmox-backup-client.rs b/src/bin/proxmox-backup-client.rs index b1f56867..6e4c709a 100644 --- a/src/bin/proxmox-backup-client.rs +++ b/src/bin/proxmox-backup-client.rs @@ -456,43 +456,6 @@ async fn change_backup_owner(group: String, mut param: Value) -> Result<(), Erro Ok(()) } -#[api( - input: { - properties: { - repository: { - schema: REPO_URL_SCHEMA, - optional: true, - }, - snapshot: { - type: String, - description: "Snapshot path.", - }, - } - } -)] -/// Forget (remove) backup snapshots. -async fn forget_snapshots(param: Value) -> Result { - - let repo = extract_repository_from_value(¶m)?; - - let path = tools::required_string_param(¶m, "snapshot")?; - let snapshot: BackupDir = path.parse()?; - - let mut client = connect(&repo)?; - - let path = format!("api2/json/admin/datastore/{}/snapshots", repo.store()); - - let result = client.delete(&path, Some(json!({ - "backup-type": snapshot.group().backup_type(), - "backup-id": snapshot.group().backup_id(), - "backup-time": snapshot.backup_time(), - }))).await?; - - record_repository(&repo); - - Ok(result) -} - #[api( input: { properties: { @@ -1930,11 +1893,6 @@ fn main() { let list_cmd_def = CliCommand::new(&API_METHOD_LIST_BACKUP_GROUPS) .completion_cb("repository", complete_repository); - let forget_cmd_def = CliCommand::new(&API_METHOD_FORGET_SNAPSHOTS) - .arg_param(&["snapshot"]) - .completion_cb("repository", complete_repository) - .completion_cb("snapshot", complete_backup_snapshot); - let garbage_collect_cmd_def = CliCommand::new(&API_METHOD_START_GARBAGE_COLLECTION) .completion_cb("repository", complete_repository); @@ -1971,7 +1929,6 @@ fn main() { let cmd_def = CliCommandMap::new() .insert("backup", backup_cmd_def) .insert("upload-log", upload_log_cmd_def) - .insert("forget", forget_cmd_def) .insert("garbage-collect", garbage_collect_cmd_def) .insert("list", list_cmd_def) .insert("login", login_cmd_def) @@ -1991,6 +1948,7 @@ fn main() { .insert("change-owner", change_owner_cmd_def) .alias(&["files"], &["snapshot", "files"]) + .alias(&["forget"], &["snapshot", "forget"]) .alias(&["snapshots"], &["snapshot", "list"]) ; diff --git a/src/bin/proxmox_backup_client/snapshot.rs b/src/bin/proxmox_backup_client/snapshot.rs index 4e48a864..0f537553 100644 --- a/src/bin/proxmox_backup_client/snapshot.rs +++ b/src/bin/proxmox_backup_client/snapshot.rs @@ -142,6 +142,43 @@ async fn list_snapshot_files(param: Value) -> Result { Ok(Value::Null) } +#[api( + input: { + properties: { + repository: { + schema: REPO_URL_SCHEMA, + optional: true, + }, + snapshot: { + type: String, + description: "Snapshot path.", + }, + } + } +)] +/// Forget (remove) backup snapshots. +async fn forget_snapshots(param: Value) -> Result { + + let repo = extract_repository_from_value(¶m)?; + + let path = tools::required_string_param(¶m, "snapshot")?; + let snapshot: BackupDir = path.parse()?; + + let mut client = connect(&repo)?; + + let path = format!("api2/json/admin/datastore/{}/snapshots", repo.store()); + + let result = client.delete(&path, Some(json!({ + "backup-type": snapshot.group().backup_type(), + "backup-id": snapshot.group().backup_id(), + "backup-time": snapshot.backup_time(), + }))).await?; + + record_repository(&repo); + + Ok(result) +} + #[api( input: { properties: { @@ -272,5 +309,11 @@ pub fn snapshot_mgtm_cli() -> CliCommandMap { .completion_cb("repository", complete_repository) .completion_cb("snapshot", complete_backup_snapshot) ) - + .insert( + "forget", + CliCommand::new(&API_METHOD_FORGET_SNAPSHOTS) + .arg_param(&["snapshot"]) + .completion_cb("repository", complete_repository) + .completion_cb("snapshot", complete_backup_snapshot) + ) }