On Wed, Apr 13, 2022 at 09:05:34AM +0200, Laszlo Ersek wrote: > The openstack output module currently passes the "--non-bootable" and > "--read-write" options to the "openstack volume create" command. There is > a bug in the "openstack" utility however (that is, in the > python-openstackclient project @ dabaec5a7b1b) where it assumes that the > image creation API blocks, and as soon as it completes, the readonly and > bootable flags can be tweaked with the APIs that exist for those purposes. > > The image creation API does not block however, and when the "openstack" > command line utility tries to set the readonly & bootable flags, those > APIs fail because image creation is still in progress. This results in an > obscure error message on the virt-v2v standard error: > > > [ 322.8] Initializing the target -o openstack > > openstack [...] volume create -f json --size 20 --description virt-v2v > > temporary volume for esx6.7-win2016-x86_64 --non-bootable --read-write > > esx6.7-win2016-x86_64-sda > > Failed to set volume read-only access mode flag: Invalid volume: Volume > > 009dc6bd-2f80-4ac3-b5e7-771863aca237 status must be available to update > > readonly flag, but current status is: creating. (HTTP 400) (Request-ID: > > req-6f56ce4c-249b-4112-9c52-dd91b7f5aae9) > > Given that "--non-bootable" and "--read-write" are both defaults for VM > image creation, according to > <https://docs.openstack.org/python-openstackclient/yoga/cli/command-objects/volume.html>, > work the symptom around by simply not passing these options. > > (Tested only with "make check"; I don't have an Openstack setup.) > > Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2074801 > Signed-off-by: Laszlo Ersek <[email protected]> > --- > output/output_openstack.ml | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) > > diff --git a/output/output_openstack.ml b/output/output_openstack.ml > index d0af2ac79e7e..aa01d5a67c50 100644 > --- a/output/output_openstack.ml > +++ b/output/output_openstack.ml > @@ -277,9 +277,7 @@ The os-* parameters and environment variables are > optional. > List.push_back_list args [ "volume"; "create"; > "-f"; "json"; > "--size"; size_gb; > - "--description"; description; > - "--non-bootable"; > - "--read-write" ]; > + "--description"; description ]; > Option.may ( > fun os -> List.push_back_list args [ "--type"; os ] > ) output_storage;
Looks sensible, so: Reviewed-by: Richard W.M. Jones <[email protected]> Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com Fedora Windows cross-compiler. Compile Windows programs, test, and build Windows installers. Over 100 libraries supported. http://fedoraproject.org/wiki/MinGW _______________________________________________ Libguestfs mailing list [email protected] https://listman.redhat.com/mailman/listinfo/libguestfs
