client: add completion callbacks for ns parameters
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
This commit is contained in:
parent
fb840eda4d
commit
4adb574d74
|
@ -15,11 +15,11 @@ use pbs_tools::crypt_config::CryptConfig;
|
||||||
use pbs_tools::json::required_string_param;
|
use pbs_tools::json::required_string_param;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
complete_backup_snapshot, complete_group_or_snapshot, complete_pxar_archive_name,
|
complete_backup_snapshot, complete_group_or_snapshot, complete_namespace,
|
||||||
complete_repository, connect, crypto_parameters, decrypt_key, dir_or_last_from_group,
|
complete_pxar_archive_name, complete_repository, connect, crypto_parameters, decrypt_key,
|
||||||
extract_repository_from_value, format_key_source, optional_ns_param, record_repository,
|
dir_or_last_from_group, extract_repository_from_value, format_key_source, optional_ns_param,
|
||||||
BackupDir, BufferedDynamicReadAt, BufferedDynamicReader, CatalogReader, DynamicIndexReader,
|
record_repository, BackupDir, BufferedDynamicReadAt, BufferedDynamicReader, CatalogReader,
|
||||||
IndexFile, Shell, CATALOG_NAME, KEYFD_SCHEMA, REPO_URL_SCHEMA,
|
DynamicIndexReader, IndexFile, Shell, CATALOG_NAME, KEYFD_SCHEMA, REPO_URL_SCHEMA,
|
||||||
};
|
};
|
||||||
|
|
||||||
#[api(
|
#[api(
|
||||||
|
@ -265,12 +265,14 @@ pub fn catalog_mgmt_cli() -> CliCommandMap {
|
||||||
let catalog_shell_cmd_def = CliCommand::new(&API_METHOD_CATALOG_SHELL)
|
let catalog_shell_cmd_def = CliCommand::new(&API_METHOD_CATALOG_SHELL)
|
||||||
.arg_param(&["snapshot", "archive-name"])
|
.arg_param(&["snapshot", "archive-name"])
|
||||||
.completion_cb("repository", complete_repository)
|
.completion_cb("repository", complete_repository)
|
||||||
|
.completion_cb("ns", complete_namespace)
|
||||||
.completion_cb("archive-name", complete_pxar_archive_name)
|
.completion_cb("archive-name", complete_pxar_archive_name)
|
||||||
.completion_cb("snapshot", complete_group_or_snapshot);
|
.completion_cb("snapshot", complete_group_or_snapshot);
|
||||||
|
|
||||||
let catalog_dump_cmd_def = CliCommand::new(&API_METHOD_DUMP_CATALOG)
|
let catalog_dump_cmd_def = CliCommand::new(&API_METHOD_DUMP_CATALOG)
|
||||||
.arg_param(&["snapshot"])
|
.arg_param(&["snapshot"])
|
||||||
.completion_cb("repository", complete_repository)
|
.completion_cb("repository", complete_repository)
|
||||||
|
.completion_cb("ns", complete_namespace)
|
||||||
.completion_cb("snapshot", complete_backup_snapshot);
|
.completion_cb("snapshot", complete_backup_snapshot);
|
||||||
|
|
||||||
CliCommandMap::new()
|
CliCommandMap::new()
|
||||||
|
|
|
@ -32,8 +32,8 @@ use pbs_client::catalog_shell::Shell;
|
||||||
use pbs_client::tools::{
|
use pbs_client::tools::{
|
||||||
complete_archive_name, complete_auth_id, complete_backup_group, complete_backup_snapshot,
|
complete_archive_name, complete_auth_id, complete_backup_group, complete_backup_snapshot,
|
||||||
complete_backup_source, complete_chunk_size, complete_group_or_snapshot,
|
complete_backup_source, complete_chunk_size, complete_group_or_snapshot,
|
||||||
complete_img_archive_name, complete_pxar_archive_name, complete_repository, connect,
|
complete_img_archive_name, complete_namespace, complete_pxar_archive_name, complete_repository,
|
||||||
connect_rate_limited, extract_repository_from_value,
|
connect, connect_rate_limited, extract_repository_from_value,
|
||||||
key_source::{
|
key_source::{
|
||||||
crypto_parameters, format_key_source, get_encryption_key_password, KEYFD_SCHEMA,
|
crypto_parameters, format_key_source, get_encryption_key_password, KEYFD_SCHEMA,
|
||||||
KEYFILE_SCHEMA, MASTER_PUBKEY_FD_SCHEMA, MASTER_PUBKEY_FILE_SCHEMA,
|
KEYFILE_SCHEMA, MASTER_PUBKEY_FD_SCHEMA, MASTER_PUBKEY_FILE_SCHEMA,
|
||||||
|
@ -1638,6 +1638,7 @@ fn main() {
|
||||||
.completion_cb("keyfile", complete_file_name);
|
.completion_cb("keyfile", complete_file_name);
|
||||||
|
|
||||||
let list_cmd_def = CliCommand::new(&API_METHOD_LIST_BACKUP_GROUPS)
|
let list_cmd_def = CliCommand::new(&API_METHOD_LIST_BACKUP_GROUPS)
|
||||||
|
.completion_cb("ns", complete_namespace)
|
||||||
.completion_cb("repository", complete_repository);
|
.completion_cb("repository", complete_repository);
|
||||||
|
|
||||||
let garbage_collect_cmd_def = CliCommand::new(&API_METHOD_START_GARBAGE_COLLECTION)
|
let garbage_collect_cmd_def = CliCommand::new(&API_METHOD_START_GARBAGE_COLLECTION)
|
||||||
|
@ -1646,12 +1647,14 @@ fn main() {
|
||||||
let restore_cmd_def = CliCommand::new(&API_METHOD_RESTORE)
|
let restore_cmd_def = CliCommand::new(&API_METHOD_RESTORE)
|
||||||
.arg_param(&["snapshot", "archive-name", "target"])
|
.arg_param(&["snapshot", "archive-name", "target"])
|
||||||
.completion_cb("repository", complete_repository)
|
.completion_cb("repository", complete_repository)
|
||||||
|
.completion_cb("ns", complete_namespace)
|
||||||
.completion_cb("snapshot", complete_group_or_snapshot)
|
.completion_cb("snapshot", complete_group_or_snapshot)
|
||||||
.completion_cb("archive-name", complete_archive_name)
|
.completion_cb("archive-name", complete_archive_name)
|
||||||
.completion_cb("target", complete_file_name);
|
.completion_cb("target", complete_file_name);
|
||||||
|
|
||||||
let prune_cmd_def = CliCommand::new(&API_METHOD_PRUNE)
|
let prune_cmd_def = CliCommand::new(&API_METHOD_PRUNE)
|
||||||
.arg_param(&["group"])
|
.arg_param(&["group"])
|
||||||
|
.completion_cb("ns", complete_namespace)
|
||||||
.completion_cb("group", complete_backup_group)
|
.completion_cb("group", complete_backup_group)
|
||||||
.completion_cb("repository", complete_repository);
|
.completion_cb("repository", complete_repository);
|
||||||
|
|
||||||
|
@ -1669,6 +1672,7 @@ fn main() {
|
||||||
|
|
||||||
let change_owner_cmd_def = CliCommand::new(&API_METHOD_CHANGE_BACKUP_OWNER)
|
let change_owner_cmd_def = CliCommand::new(&API_METHOD_CHANGE_BACKUP_OWNER)
|
||||||
.arg_param(&["group", "new-owner"])
|
.arg_param(&["group", "new-owner"])
|
||||||
|
.completion_cb("ns", complete_namespace)
|
||||||
.completion_cb("group", complete_backup_group)
|
.completion_cb("group", complete_backup_group)
|
||||||
.completion_cb("new-owner", complete_auth_id)
|
.completion_cb("new-owner", complete_auth_id)
|
||||||
.completion_cb("repository", complete_repository);
|
.completion_cb("repository", complete_repository);
|
||||||
|
|
|
@ -29,9 +29,10 @@ use pbs_tools::crypt_config::CryptConfig;
|
||||||
use pbs_tools::json::required_string_param;
|
use pbs_tools::json::required_string_param;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
complete_group_or_snapshot, complete_img_archive_name, complete_pxar_archive_name,
|
complete_group_or_snapshot, complete_img_archive_name, complete_namespace,
|
||||||
complete_repository, connect, dir_or_last_from_group, extract_repository_from_value,
|
complete_pxar_archive_name, complete_repository, connect, dir_or_last_from_group,
|
||||||
optional_ns_param, record_repository, BufferedDynamicReadAt, REPO_URL_SCHEMA,
|
extract_repository_from_value, optional_ns_param, record_repository, BufferedDynamicReadAt,
|
||||||
|
REPO_URL_SCHEMA,
|
||||||
};
|
};
|
||||||
|
|
||||||
#[sortable]
|
#[sortable]
|
||||||
|
@ -129,6 +130,7 @@ pub fn mount_cmd_def() -> CliCommand {
|
||||||
CliCommand::new(&API_METHOD_MOUNT)
|
CliCommand::new(&API_METHOD_MOUNT)
|
||||||
.arg_param(&["snapshot", "archive-name", "target"])
|
.arg_param(&["snapshot", "archive-name", "target"])
|
||||||
.completion_cb("repository", complete_repository)
|
.completion_cb("repository", complete_repository)
|
||||||
|
.completion_cb("ns", complete_namespace)
|
||||||
.completion_cb("snapshot", complete_group_or_snapshot)
|
.completion_cb("snapshot", complete_group_or_snapshot)
|
||||||
.completion_cb("archive-name", complete_pxar_archive_name)
|
.completion_cb("archive-name", complete_pxar_archive_name)
|
||||||
.completion_cb("target", complete_file_name)
|
.completion_cb("target", complete_file_name)
|
||||||
|
@ -138,6 +140,7 @@ pub fn map_cmd_def() -> CliCommand {
|
||||||
CliCommand::new(&API_METHOD_MAP)
|
CliCommand::new(&API_METHOD_MAP)
|
||||||
.arg_param(&["snapshot", "archive-name"])
|
.arg_param(&["snapshot", "archive-name"])
|
||||||
.completion_cb("repository", complete_repository)
|
.completion_cb("repository", complete_repository)
|
||||||
|
.completion_cb("ns", complete_namespace)
|
||||||
.completion_cb("snapshot", complete_group_or_snapshot)
|
.completion_cb("snapshot", complete_group_or_snapshot)
|
||||||
.completion_cb("archive-name", complete_img_archive_name)
|
.completion_cb("archive-name", complete_img_archive_name)
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,10 @@ use proxmox_router::cli::{
|
||||||
};
|
};
|
||||||
use proxmox_schema::api;
|
use proxmox_schema::api;
|
||||||
|
|
||||||
use crate::{connect, extract_repository_from_value, optional_ns_param, record_repository};
|
use crate::{
|
||||||
|
complete_namespace, connect, extract_repository_from_value, optional_ns_param,
|
||||||
|
record_repository,
|
||||||
|
};
|
||||||
|
|
||||||
#[api(
|
#[api(
|
||||||
input: {
|
input: {
|
||||||
|
@ -157,14 +160,20 @@ pub fn cli_map() -> CliCommandMap {
|
||||||
CliCommandMap::new()
|
CliCommandMap::new()
|
||||||
.insert(
|
.insert(
|
||||||
"list",
|
"list",
|
||||||
CliCommand::new(&API_METHOD_LIST_NAMESPACES).arg_param(&["ns"]),
|
CliCommand::new(&API_METHOD_LIST_NAMESPACES)
|
||||||
|
.arg_param(&["ns"])
|
||||||
|
.completion_cb("ns", complete_namespace),
|
||||||
)
|
)
|
||||||
.insert(
|
.insert(
|
||||||
"create",
|
"create",
|
||||||
CliCommand::new(&API_METHOD_CREATE_NAMESPACE).arg_param(&["ns"]),
|
CliCommand::new(&API_METHOD_CREATE_NAMESPACE)
|
||||||
|
.arg_param(&["ns"])
|
||||||
|
.completion_cb("ns", complete_namespace),
|
||||||
)
|
)
|
||||||
.insert(
|
.insert(
|
||||||
"delete",
|
"delete",
|
||||||
CliCommand::new(&API_METHOD_DELETE_NAMESPACE).arg_param(&["ns"]),
|
CliCommand::new(&API_METHOD_DELETE_NAMESPACE)
|
||||||
|
.arg_param(&["ns"])
|
||||||
|
.completion_cb("ns", complete_namespace),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,8 +16,9 @@ use pbs_tools::json::required_string_param;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
api_datastore_list_snapshots, complete_backup_group, complete_backup_snapshot,
|
api_datastore_list_snapshots, complete_backup_group, complete_backup_snapshot,
|
||||||
complete_repository, connect, crypto_parameters, extract_repository_from_value,
|
complete_namespace, complete_repository, connect, crypto_parameters,
|
||||||
optional_ns_param, record_repository, BackupDir, KEYFD_SCHEMA, KEYFILE_SCHEMA, REPO_URL_SCHEMA,
|
extract_repository_from_value, optional_ns_param, record_repository, BackupDir, KEYFD_SCHEMA,
|
||||||
|
KEYFILE_SCHEMA, REPO_URL_SCHEMA,
|
||||||
};
|
};
|
||||||
|
|
||||||
fn snapshot_args(ns: &BackupNamespace, snapshot: &BackupDir) -> Result<Value, Error> {
|
fn snapshot_args(ns: &BackupNamespace, snapshot: &BackupDir) -> Result<Value, Error> {
|
||||||
|
@ -480,12 +481,14 @@ fn protected_cli() -> CliCommandMap {
|
||||||
"show",
|
"show",
|
||||||
CliCommand::new(&API_METHOD_SHOW_PROTECTION)
|
CliCommand::new(&API_METHOD_SHOW_PROTECTION)
|
||||||
.arg_param(&["snapshot"])
|
.arg_param(&["snapshot"])
|
||||||
|
.completion_cb("ns", complete_namespace)
|
||||||
.completion_cb("snapshot", complete_backup_snapshot),
|
.completion_cb("snapshot", complete_backup_snapshot),
|
||||||
)
|
)
|
||||||
.insert(
|
.insert(
|
||||||
"update",
|
"update",
|
||||||
CliCommand::new(&API_METHOD_UPDATE_PROTECTION)
|
CliCommand::new(&API_METHOD_UPDATE_PROTECTION)
|
||||||
.arg_param(&["snapshot", "protected"])
|
.arg_param(&["snapshot", "protected"])
|
||||||
|
.completion_cb("ns", complete_namespace)
|
||||||
.completion_cb("snapshot", complete_backup_snapshot),
|
.completion_cb("snapshot", complete_backup_snapshot),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -496,12 +499,14 @@ fn notes_cli() -> CliCommandMap {
|
||||||
"show",
|
"show",
|
||||||
CliCommand::new(&API_METHOD_SHOW_NOTES)
|
CliCommand::new(&API_METHOD_SHOW_NOTES)
|
||||||
.arg_param(&["snapshot"])
|
.arg_param(&["snapshot"])
|
||||||
|
.completion_cb("ns", complete_namespace)
|
||||||
.completion_cb("snapshot", complete_backup_snapshot),
|
.completion_cb("snapshot", complete_backup_snapshot),
|
||||||
)
|
)
|
||||||
.insert(
|
.insert(
|
||||||
"update",
|
"update",
|
||||||
CliCommand::new(&API_METHOD_UPDATE_NOTES)
|
CliCommand::new(&API_METHOD_UPDATE_NOTES)
|
||||||
.arg_param(&["snapshot", "notes"])
|
.arg_param(&["snapshot", "notes"])
|
||||||
|
.completion_cb("ns", complete_namespace)
|
||||||
.completion_cb("snapshot", complete_backup_snapshot),
|
.completion_cb("snapshot", complete_backup_snapshot),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -514,6 +519,7 @@ pub fn snapshot_mgtm_cli() -> CliCommandMap {
|
||||||
"list",
|
"list",
|
||||||
CliCommand::new(&API_METHOD_LIST_SNAPSHOTS)
|
CliCommand::new(&API_METHOD_LIST_SNAPSHOTS)
|
||||||
.arg_param(&["group"])
|
.arg_param(&["group"])
|
||||||
|
.completion_cb("ns", complete_namespace)
|
||||||
.completion_cb("group", complete_backup_group)
|
.completion_cb("group", complete_backup_group)
|
||||||
.completion_cb("repository", complete_repository),
|
.completion_cb("repository", complete_repository),
|
||||||
)
|
)
|
||||||
|
@ -521,6 +527,7 @@ pub fn snapshot_mgtm_cli() -> CliCommandMap {
|
||||||
"files",
|
"files",
|
||||||
CliCommand::new(&API_METHOD_LIST_SNAPSHOT_FILES)
|
CliCommand::new(&API_METHOD_LIST_SNAPSHOT_FILES)
|
||||||
.arg_param(&["snapshot"])
|
.arg_param(&["snapshot"])
|
||||||
|
.completion_cb("ns", complete_namespace)
|
||||||
.completion_cb("repository", complete_repository)
|
.completion_cb("repository", complete_repository)
|
||||||
.completion_cb("snapshot", complete_backup_snapshot),
|
.completion_cb("snapshot", complete_backup_snapshot),
|
||||||
)
|
)
|
||||||
|
@ -528,6 +535,7 @@ pub fn snapshot_mgtm_cli() -> CliCommandMap {
|
||||||
"forget",
|
"forget",
|
||||||
CliCommand::new(&API_METHOD_FORGET_SNAPSHOTS)
|
CliCommand::new(&API_METHOD_FORGET_SNAPSHOTS)
|
||||||
.arg_param(&["snapshot"])
|
.arg_param(&["snapshot"])
|
||||||
|
.completion_cb("ns", complete_namespace)
|
||||||
.completion_cb("repository", complete_repository)
|
.completion_cb("repository", complete_repository)
|
||||||
.completion_cb("snapshot", complete_backup_snapshot),
|
.completion_cb("snapshot", complete_backup_snapshot),
|
||||||
)
|
)
|
||||||
|
@ -535,6 +543,7 @@ pub fn snapshot_mgtm_cli() -> CliCommandMap {
|
||||||
"upload-log",
|
"upload-log",
|
||||||
CliCommand::new(&API_METHOD_UPLOAD_LOG)
|
CliCommand::new(&API_METHOD_UPLOAD_LOG)
|
||||||
.arg_param(&["snapshot", "logfile"])
|
.arg_param(&["snapshot", "logfile"])
|
||||||
|
.completion_cb("ns", complete_namespace)
|
||||||
.completion_cb("snapshot", complete_backup_snapshot)
|
.completion_cb("snapshot", complete_backup_snapshot)
|
||||||
.completion_cb("logfile", complete_file_name)
|
.completion_cb("logfile", complete_file_name)
|
||||||
.completion_cb("keyfile", complete_file_name)
|
.completion_cb("keyfile", complete_file_name)
|
||||||
|
|
Loading…
Reference in New Issue