On 3/7/23 20:40, Andrey Drobyshev wrote: > From: "Richard W.M. Jones" <rjo...@redhat.com> > > When injecting a block VirtIO driver during conversion, we rely on the > predefined list of names of such drivers. Order in this list denotes the > priority (see common/mlcustomize/inject_virtio_win.ml). > > This commit introduces the "block_driver" convert option, setting its > value to the default Virtio_blk and making sure it's being properly passed > to the conversion functions. Along with the means of altering the drivers > list (introduced in a separate commit in the common submodule), this option > will be brought to command line, giving us the opportunity to choose the > block driver to be used on conversion. > > Originally-by: Richard W.M. Jones <rjo...@redhat.com> > Signed-off-by: Andrey Drobyshev <andrey.drobys...@virtuozzo.com> > --- > convert/convert.ml | 9 ++++++--- > convert/convert.mli | 1 + > convert/convert_linux.ml | 2 +- > convert/convert_linux.mli | 3 ++- > convert/convert_windows.ml | 2 +- > convert/convert_windows.mli | 3 ++- > in-place/in_place.ml | 3 ++- > inspector/inspector.ml | 3 ++- > v2v/v2v.ml | 3 ++- > 9 files changed, 19 insertions(+), 10 deletions(-) > > diff --git a/convert/convert.ml b/convert/convert.ml > index 084619c8..9c76f76d 100644 > --- a/convert/convert.ml > +++ b/convert/convert.ml > @@ -31,6 +31,7 @@ open Utils > module G = Guestfs > > type options = { > + block_driver : guestcaps_block_type; > keep_serial_console : bool; > ks : key_store; > network_map : Networks.t; > @@ -88,7 +89,7 @@ let rec convert dir options source = > (* Conversion. *) > let guestcaps = > do_convert g source inspect i_firmware > - options.keep_serial_console options.static_ips in > + options.block_driver options.keep_serial_console options.static_ips in > > g#umount_all (); > > @@ -221,7 +222,8 @@ and do_fstrim g inspect = > ) fses > > (* Conversion. *) > -and do_convert g source inspect i_firmware keep_serial_console interfaces = > +and do_convert g source inspect i_firmware > + block_driver keep_serial_console interfaces = > (match inspect.i_product_name with > | "unknown" -> > message (f_"Converting the guest to run on KVM") > @@ -246,7 +248,8 @@ and do_convert g source inspect i_firmware > keep_serial_console interfaces = > inspect.i_type inspect.i_distro in > debug "picked conversion module %s" conversion_name; > let guestcaps = > - convert g source inspect i_firmware keep_serial_console interfaces in > + convert g source inspect i_firmware > + block_driver keep_serial_console interfaces in > debug "%s" (string_of_guestcaps guestcaps); > > (* Did we manage to install virtio drivers? *) > diff --git a/convert/convert.mli b/convert/convert.mli > index 3bd39e2d..c63bf6f0 100644 > --- a/convert/convert.mli > +++ b/convert/convert.mli > @@ -17,6 +17,7 @@ > *) > > type options = { > + block_driver : Types.guestcaps_block_type; (** [--block-driver] option *) > keep_serial_console : bool; > ks : Tools_utils.key_store; (** [--key] option *) > network_map : Networks.t; (** [-b] and [-n] options *) > diff --git a/convert/convert_linux.ml b/convert/convert_linux.ml > index dab4f36d..8d702084 100644 > --- a/convert/convert_linux.ml > +++ b/convert/convert_linux.ml > @@ -34,7 +34,7 @@ open Linux_kernels > module G = Guestfs > > (* The conversion function. *) > -let convert (g : G.guestfs) source inspect i_firmware keep_serial_console _ = > +let convert (g : G.guestfs) source inspect i_firmware _ keep_serial_console > _ = > (*----------------------------------------------------------------------*) > (* Inspect the guest first. We already did some basic inspection in > * the common v2v.ml code, but that has to deal with generic guests > diff --git a/convert/convert_linux.mli b/convert/convert_linux.mli > index 6eb272e9..dc6968fe 100644 > --- a/convert/convert_linux.mli > +++ b/convert/convert_linux.mli > @@ -23,5 +23,6 @@ > Mint and Kali are supported by this module. *) > > val convert : Guestfs.guestfs -> Types.source -> Types.inspect -> > - Firmware.i_firmware -> bool -> Types.static_ip list -> > + Firmware.i_firmware -> Types.guestcaps_block_type -> > + bool -> Types.static_ip list -> > Types.guestcaps > diff --git a/convert/convert_windows.ml b/convert/convert_windows.ml > index 4f672487..1ace2948 100644 > --- a/convert/convert_windows.ml > +++ b/convert/convert_windows.ml > @@ -38,7 +38,7 @@ module G = Guestfs > * time the Windows VM is booted on KVM. > *) > > -let convert (g : G.guestfs) _ inspect i_firmware _ static_ips = > +let convert (g : G.guestfs) _ inspect i_firmware block_driver _ static_ips = > (*----------------------------------------------------------------------*) > (* Inspect the Windows guest. *) > > diff --git a/convert/convert_windows.mli b/convert/convert_windows.mli > index 42dac9f5..33a14f65 100644 > --- a/convert/convert_windows.mli > +++ b/convert/convert_windows.mli > @@ -21,5 +21,6 @@ > This module converts a Windows guest to run on KVM. *) > > val convert : Guestfs.guestfs -> Types.source -> Types.inspect -> > - Firmware.i_firmware -> bool -> Types.static_ip list -> > + Firmware.i_firmware -> Types.guestcaps_block_type -> > + bool -> Types.static_ip list -> > Types.guestcaps > diff --git a/in-place/in_place.ml b/in-place/in_place.ml > index 68ef9965..2049db16 100644 > --- a/in-place/in_place.ml > +++ b/in-place/in_place.ml > @@ -294,7 +294,8 @@ read the man page virt-v2v-in-place(1). > > (* Get the conversion options. *) > let conv_options = { > - Convert.keep_serial_console = true; > + Convert.block_driver = Virtio_blk; > + keep_serial_console = true; > ks = opthandle.ks; > network_map; > root_choice; > diff --git a/inspector/inspector.ml b/inspector/inspector.ml > index a6428946..02d1a0e7 100644 > --- a/inspector/inspector.ml > +++ b/inspector/inspector.ml > @@ -324,7 +324,8 @@ read the man page virt-v2v-inspector(1). > > (* Get the conversion options. *) > let conv_options = { > - Convert.keep_serial_console = true; > + Convert.block_driver = Virtio_blk; > + keep_serial_console = true; > ks = opthandle.ks; > network_map; > root_choice; > diff --git a/v2v/v2v.ml b/v2v/v2v.ml > index 13fe477a..22f7c631 100644 > --- a/v2v/v2v.ml > +++ b/v2v/v2v.ml > @@ -524,7 +524,8 @@ read the man page virt-v2v(1). > > (* Get the conversion options. *) > let conv_options = { > - Convert.keep_serial_console = not remove_serial_console; > + Convert.block_driver = Virtio_blk; > + keep_serial_console = not remove_serial_console; > ks = opthandle.ks; > network_map; > root_choice;
Acked-by: Laszlo Ersek <ler...@redhat.com> _______________________________________________ Libguestfs mailing list Libguestfs@redhat.com https://listman.redhat.com/mailman/listinfo/libguestfs