[Libguestfs] [PATCH v2v] -o rhv-upload: Give a nicer error if the storage domain does not exist

Nir Soffer nsoffer at redhat.com
Fri Jan 27 11:18:21 UTC 2023


On Thu, Jan 26, 2023 at 2:31 PM Richard W.M. Jones <rjones at redhat.com> wrote:
>
> Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1986386
> Reported-by: Junqin Zhou
> ---
>  output/rhv-upload-precheck.py | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/output/rhv-upload-precheck.py b/output/rhv-upload-precheck.py
> index 1dc1b8498a..35ea021032 100644
> --- a/output/rhv-upload-precheck.py
> +++ b/output/rhv-upload-precheck.py
> @@ -81,7 +81,12 @@ datacenter = data_centers[0]
>
>  # Get the storage domain.
>  storage_domains = connection.follow_link(datacenter.storage_domains)
> -storage_domain = [sd for sd in storage_domains if sd.name == params['output_storage']][0]
> +try:
> +    storage_domain = [sd for sd in storage_domains \
> +                      if sd.name == params['output_storage']][0]

Using `\` may work but it is needed. You can do this:

    storage_domain = [sd for sd in storage_domains
                                   if sd.name == params['output_storage']][0]

This is also the common way to indent list comprehension that
makes the expression more clear.

> +except IndexError:
> +    raise RuntimeError("The storage domain ‘%s’ does not exist" %
> +                       params['output_storage'])

The fix is safe and makes sense.

Not sure why we list all storage domains when we already know the name,
maybe Albert would like to clean up this mess later.

Nir



More information about the Libguestfs mailing list