Richard W.M. Jones
2023-Jan-26 12:31 UTC
[Libguestfs] [PATCH v2v] -o rhv-upload: Give a nicer error if the storage domain does not exist
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] +except IndexError: + raise RuntimeError("The storage domain ?%s? does not exist" % + params['output_storage']) # Get the cluster. clusters = connection.follow_link(datacenter.clusters) -- 2.39.0
Nir Soffer
2023-Jan-27 11:18 UTC
[Libguestfs] [PATCH v2v] -o rhv-upload: Give a nicer error if the storage domain does not exist
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
Reasonably Related Threads
- [PATCH v2v] -o rhv-upload: Give a nicer error if the storage domain
- [PATCH 3/8] v2v: -o rhv-upload: improve lookup of specified resources (RHBZ#1612653)
- [PATCH 0/8] v2v: various fixed for -o rhv-upload
- [PATCH 4/8] v2v: -o rhv-upload: tell whether a SD actually exists
- [v2v PATCH 0/6] Various Python pycodestyle fixes