[pbs-devel] [PATCH proxmox-backup v2 3/4] proxmox-tape: add 'catalog' option to 'proxmox-tape inventory'

Wolfgang Bumiller w.bumiller at proxmox.com
Tue Oct 18 10:20:27 CEST 2022


On Thu, Oct 06, 2022 at 01:36:09PM +0200, Dominik Csapak wrote:
> Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
> ---
>  src/bin/proxmox-tape.rs | 16 ++++++++++++----
>  1 file changed, 12 insertions(+), 4 deletions(-)
> 
> diff --git a/src/bin/proxmox-tape.rs b/src/bin/proxmox-tape.rs
> index 9cb3978f..5508dfc5 100644
> --- a/src/bin/proxmox-tape.rs
> +++ b/src/bin/proxmox-tape.rs
> @@ -444,6 +444,12 @@ async fn read_label(mut param: Value) -> Result<(), Error> {
>                  type: bool,
>                  optional: true,

^ I think we could declare the default here as well

>              },
> +            "catalog": {
> +                description: "Try to restore catalogs from tapes.",
> +                type: bool,
> +                default: false,
> +                optional: true,
> +            }
>          },
>      },
>  )]
> @@ -451,6 +457,7 @@ async fn read_label(mut param: Value) -> Result<(), Error> {
>  async fn inventory(
>      read_labels: Option<bool>,
>      read_all_labels: Option<bool>,
> +    catalog: Option<bool>,

^ and, as in patch 2, drop the `Option<>` here.

>      mut param: Value,
>  ) -> Result<(), Error> {
>      let output_format = extract_output_format(&mut param);
> @@ -458,7 +465,9 @@ async fn inventory(
>      let (config, _digest) = pbs_config::drive::config()?;
>      let drive = extract_drive_name(&mut param, &config)?;
>  
> -    let do_read = read_labels.unwrap_or(false) || read_all_labels.unwrap_or(false);
> +    let read_all_labels = read_all_labels.unwrap_or(false);
> +    let catalog = catalog.unwrap_or(false);
> +    let do_read = read_labels.unwrap_or(false) || read_all_labels || catalog;
>  
>      let client = connect_to_localhost()?;
>  
> @@ -466,9 +475,8 @@ async fn inventory(
>  
>      if do_read {
>          let mut param = json!({});
> -        if let Some(true) = read_all_labels {
> -            param["read-all-labels"] = true.into();
> -        }
> +        param["read-all-labels"] = read_all_labels.into();
> +        param["catalog"] = catalog.into();
>  
>          let result = client.put(&path, Some(param)).await?; // update inventory
>          view_task_result(&client, result, &output_format).await?;
> -- 
> 2.30.2





More information about the pbs-devel mailing list