src/bin/proxmox-backup-manager.rs: improve network list output format

This commit is contained in:
Dietmar Maurer 2020-04-23 06:44:55 +02:00
parent b1564af25a
commit 4cb6bd894c
1 changed files with 30 additions and 5 deletions

View File

@ -254,16 +254,41 @@ fn list_network_devices(param: Value, rpcenv: &mut dyn RpcEnvironment) -> Result
_ => unreachable!(), _ => unreachable!(),
}; };
fn render_address(_value: &Value, record: &Value) -> Result<String, Error> {
let mut text = String::new();
if let Some(cidr) = record["cidr_v4"].as_str() {
text.push_str(cidr);
}
if let Some(cidr) = record["cidr_v6"].as_str() {
if !text.is_empty() { text.push('\n'); }
text.push_str(cidr);
}
Ok(text)
}
fn render_gateway(_value: &Value, record: &Value) -> Result<String, Error> {
let mut text = String::new();
if let Some(gateway) = record["gateway_v4"].as_str() {
text.push_str(gateway);
}
if let Some(gateway) = record["gateway_v6"].as_str() {
if !text.is_empty() { text.push('\n'); }
text.push_str(gateway);
}
Ok(text)
}
let options = default_table_format_options() let options = default_table_format_options()
.column(ColumnConfig::new("name")) .column(ColumnConfig::new("name"))
.column(ColumnConfig::new("auto")) .column(ColumnConfig::new("auto"))
.column(ColumnConfig::new("method_v4")) .column(ColumnConfig::new("method_v4"))
.column(ColumnConfig::new("method_v6")) .column(ColumnConfig::new("method_v6"))
.column(ColumnConfig::new("cidr_v4")) .column(ColumnConfig::new("cidr_v4").header("address").renderer(render_address))
.column(ColumnConfig::new("gateway_v4")) .column(ColumnConfig::new("gateway_v4").header("gateway").renderer(render_gateway));
.column(ColumnConfig::new("cidr_v6"))
.column(ColumnConfig::new("gateway_v6"))
;
format_and_print_result_full(&mut data, info.returns, &output_format, &options); format_and_print_result_full(&mut data, info.returns, &output_format, &options);