[Libguestfs] [PATCH] RFC: v2v: use RHV Setup Tools ISO if available

Tomáš Golembiovský tgolembi at redhat.com
Thu May 24 08:40:22 UTC 2018


On Wed, 23 May 2018 17:19:54 +0200
Pino Toscano <ptoscano at redhat.com> wrote:

> On Wednesday, 23 May 2018 15:42:42 CEST Tomáš Golembiovský wrote:
> > On Fri, 18 May 2018 17:42:15 +0200
> > Pino Toscano <ptoscano at redhat.com> wrote:
> >   
> > > If the RHV Setup Tools ISO is installed, open it, and copy RHEV APT from
> > > there, instead of using (if available) the executable located in the
> > > virt-tools data directory.
> > > 
> > > This way, RHV conversion hosts with the RHV Setup Tools ISO installed
> > > will always install the latest version when convering Windows guests,
> > > no matter which version is (eventually) shipped as virt-tools.
> > > ---
> > >  v2v/convert_windows.ml | 57 ++++++++++++++++++++++++++++++++++++------
> > >  v2v/virt-v2v.pod       | 18 +++++++++++++
> > >  2 files changed, 67 insertions(+), 8 deletions(-)
> > > 
> > > diff --git a/v2v/convert_windows.ml b/v2v/convert_windows.ml
> > > index 163319545..21dafe4f4 100644
> > > --- a/v2v/convert_windows.ml
> > > +++ b/v2v/convert_windows.ml
> > > @@ -27,6 +27,10 @@ open Types
> > >  
> > >  module G = Guestfs
> > >  
> > > +type tool_location =
> > > +  | Local_path of string (* path of file *)
> > > +  | ISO of string * string (* path of ISO, path to look for inside the ISO *)
> > > +
> > >  (* Convert Windows guests.
> > >   *
> > >   * This only does a "pre-conversion", the steps needed to get the
> > > @@ -239,12 +243,15 @@ let convert (g : G.guestfs) inspect source output rcaps =
> > >  
> > >      (* Install RHEV-APT only if appropriate for the output hypervisor. *)
> > >      if output#install_rhev_apt then (
> > > -      let tool_path = virt_tools_data_dir () // "rhev-apt.exe" in
> > > -      if Sys.file_exists tool_path then
> > > -        configure_rhev_apt tool_path
> > > -      else
> > > -        warning (f_"%s is missing, but the output hypervisor is oVirt or RHV.  Installing RHEV-APT in the guest would mean the guest is automatically updated with new drivers etc.  You may wish to install RHEV-APT manually after conversion.")
> > > -                tool_path
> > > +      let rhev_apt =
> > > +        let iso = virt_tools_data_dir () // "rhv-guest-tools-iso" // "rhv-tools-setup.iso" in  
> > 
> > Using virt_tools_data_dir seems wrong, if you meant to use the ISO
> > (actually a symlink) at `/usr/share/rhv-guest-tools-iso/rhv-tools-setup.iso`.  
> 
> virt_tools_data_dir () will be /usr/share when --prefix=/usr, although
> I can hardcode it to /usr/share, since it's where the
> rhv-guest-tools-iso RPM will install it anyway.

Doesn't this line in common/mltools/tools_utils.ml mean it will be
/usr/share/virt-tools?

    with Not_found -> Guestfs_config.datadir // "virt-tools"


> 
> > Still, the ISO is rarely used this way in RHV. Most of the time the ISO
> > is stored somewhere else in storage domain and we pass it's location in
> > VIRTIO_WIN environment variable.
> > 
> > Could you first check the VIRTIO_WIN variable, and fallback to the ISO
> > in /usr?  
> 
> From what I remember, VIRTIO_WIN is usually pointed to the
> virtio-win.iso, not to the RHV Tools ISO.

Not when virt-v2v is run by oVirt/RHV. Of course, nothing prevents the
user to choose virtio-win ISO, but afaik our docs instruct them to use
the guest tools ISO. It contains the drivers as well as tools.

    Tomas

> 
> Am I missing anything?
> 
> -- 
> Pino Toscano


-- 
Tomáš Golembiovský <tgolembi at redhat.com>




More information about the Libguestfs mailing list