src/bin/proxmox-backup-manager.rs: add dns sub command

Also improved the DNS api, added a --delete option.
This commit is contained in:
Dietmar Maurer
2020-04-26 08:23:23 +02:00
parent 76227a6acd
commit 14627d671a
2 changed files with 120 additions and 25 deletions

View File

@ -365,6 +365,57 @@ fn network_commands() -> CommandLineInterface {
cmd_def.into()
}
#[api(
input: {
properties: {
"output-format": {
schema: OUTPUT_FORMAT,
optional: true,
},
}
}
)]
/// Read DNS settings
fn get_dns(mut param: Value, rpcenv: &mut dyn RpcEnvironment) -> Result<Value, Error> {
let output_format = get_output_format(&param);
param["node"] = "localhost".into();
let info = &api2::node::dns::API_METHOD_GET_DNS;
let mut data = match info.handler {
ApiHandler::Sync(handler) => (handler)(param, info, rpcenv)?,
_ => unreachable!(),
};
let options = default_table_format_options()
.column(ColumnConfig::new("search"))
.column(ColumnConfig::new("dns1"))
.column(ColumnConfig::new("dns2"))
.column(ColumnConfig::new("dns3"));
format_and_print_result_full(&mut data, info.returns, &output_format, &options);
Ok(Value::Null)
}
fn dns_commands() -> CommandLineInterface {
let cmd_def = CliCommandMap::new()
.insert(
"get",
CliCommand::new(&API_METHOD_GET_DNS)
)
.insert(
"set",
CliCommand::new(&api2::node::dns::API_METHOD_UPDATE_DNS)
.fixed_param("node", String::from("localhost"))
);
cmd_def.into()
}
#[api(
input: {
properties: {
@ -766,6 +817,7 @@ fn main() {
let cmd_def = CliCommandMap::new()
.insert("acl", acl_commands())
.insert("datastore", datastore_commands())
.insert("dns", dns_commands())
.insert("network", network_commands())
.insert("user", user_commands())
.insert("remote", remote_commands())