From 61205f00fbb70a94b98f5addb0e63f6363ecb9bb Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Wed, 25 Nov 2020 06:47:18 +0100 Subject: [PATCH] cli: rename command "files" to "snapshot files" --- src/bin/proxmox-backup-client.rs | 59 +-------------------- src/bin/proxmox_backup_client/snapshot.rs | 62 ++++++++++++++++++++++- 2 files changed, 62 insertions(+), 59 deletions(-) diff --git a/src/bin/proxmox-backup-client.rs b/src/bin/proxmox-backup-client.rs index cd424c0a..b1f56867 100644 --- a/src/bin/proxmox-backup-client.rs +++ b/src/bin/proxmox-backup-client.rs @@ -586,58 +586,6 @@ async fn api_version(param: Value) -> Result<(), Error> { Ok(()) } - -#[api( - input: { - properties: { - repository: { - schema: REPO_URL_SCHEMA, - optional: true, - }, - snapshot: { - type: String, - description: "Snapshot path.", - }, - "output-format": { - schema: OUTPUT_FORMAT, - optional: true, - }, - } - } -)] -/// List snapshot files. -async fn list_snapshot_files(param: Value) -> Result { - - let repo = extract_repository_from_value(¶m)?; - - let path = tools::required_string_param(¶m, "snapshot")?; - let snapshot: BackupDir = path.parse()?; - - let output_format = get_output_format(¶m); - - let client = connect(&repo)?; - - let path = format!("api2/json/admin/datastore/{}/files", repo.store()); - - let mut result = client.get(&path, Some(json!({ - "backup-type": snapshot.group().backup_type(), - "backup-id": snapshot.group().backup_id(), - "backup-time": snapshot.backup_time(), - }))).await?; - - record_repository(&repo); - - let info = &proxmox_backup::api2::admin::datastore::API_RETURN_SCHEMA_LIST_SNAPSHOT_FILES; - - let mut data: Value = result["data"].take(); - - let options = default_table_format_options(); - - format_and_print_result_full(&mut data, info, &output_format, &options); - - Ok(Value::Null) -} - #[api( input: { properties: { @@ -1997,11 +1945,6 @@ fn main() { .completion_cb("archive-name", complete_archive_name) .completion_cb("target", tools::complete_file_name); - let files_cmd_def = CliCommand::new(&API_METHOD_LIST_SNAPSHOT_FILES) - .arg_param(&["snapshot"]) - .completion_cb("repository", complete_repository) - .completion_cb("snapshot", complete_backup_snapshot); - let prune_cmd_def = CliCommand::new(&API_METHOD_PRUNE) .arg_param(&["group"]) .completion_cb("group", complete_backup_group) @@ -2036,7 +1979,6 @@ fn main() { .insert("prune", prune_cmd_def) .insert("restore", restore_cmd_def) .insert("snapshot", snapshot_mgtm_cli()) - .insert("files", files_cmd_def) .insert("status", status_cmd_def) .insert("key", key::cli()) .insert("mount", mount_cmd_def()) @@ -2048,6 +1990,7 @@ fn main() { .insert("benchmark", benchmark_cmd_def) .insert("change-owner", change_owner_cmd_def) + .alias(&["files"], &["snapshot", "files"]) .alias(&["snapshots"], &["snapshot", "list"]) ; diff --git a/src/bin/proxmox_backup_client/snapshot.rs b/src/bin/proxmox_backup_client/snapshot.rs index 55c4de63..4e48a864 100644 --- a/src/bin/proxmox_backup_client/snapshot.rs +++ b/src/bin/proxmox_backup_client/snapshot.rs @@ -91,6 +91,57 @@ async fn list_snapshots(param: Value) -> Result { Ok(Value::Null) } +#[api( + input: { + properties: { + repository: { + schema: REPO_URL_SCHEMA, + optional: true, + }, + snapshot: { + type: String, + description: "Snapshot path.", + }, + "output-format": { + schema: OUTPUT_FORMAT, + optional: true, + }, + } + } +)] +/// List snapshot files. +async fn list_snapshot_files(param: Value) -> Result { + + let repo = extract_repository_from_value(¶m)?; + + let path = tools::required_string_param(¶m, "snapshot")?; + let snapshot: BackupDir = path.parse()?; + + let output_format = get_output_format(¶m); + + let client = connect(&repo)?; + + let path = format!("api2/json/admin/datastore/{}/files", repo.store()); + + let mut result = client.get(&path, Some(json!({ + "backup-type": snapshot.group().backup_type(), + "backup-id": snapshot.group().backup_id(), + "backup-time": snapshot.backup_time(), + }))).await?; + + record_repository(&repo); + + let info = &proxmox_backup::api2::admin::datastore::API_RETURN_SCHEMA_LIST_SNAPSHOT_FILES; + + let mut data: Value = result["data"].take(); + + let options = default_table_format_options(); + + format_and_print_result_full(&mut data, info, &output_format, &options); + + Ok(Value::Null) +} + #[api( input: { properties: { @@ -208,9 +259,18 @@ pub fn snapshot_mgtm_cli() -> CliCommandMap { CliCommandMap::new() .insert("notes", notes_cli()) .insert( - "list", CliCommand::new(&API_METHOD_LIST_SNAPSHOTS) + "list", + CliCommand::new(&API_METHOD_LIST_SNAPSHOTS) .arg_param(&["group"]) .completion_cb("group", complete_backup_group) .completion_cb("repository", complete_repository) ) + .insert( + "files", + CliCommand::new(&API_METHOD_LIST_SNAPSHOT_FILES) + .arg_param(&["snapshot"]) + .completion_cb("repository", complete_repository) + .completion_cb("snapshot", complete_backup_snapshot) + ) + }