[Libguestfs] [PATCH v2] v2v: rhv plugin - find suitable host
Richard W.M. Jones
rjones at redhat.com
Thu Jul 5 20:37:06 UTC 2018
On Thu, Jul 05, 2018 at 11:17:19PM +0300, Nir Soffer wrote:
> On Thu, Jul 5, 2018 at 8:24 PM Daniel Erez <derez at redhat.com> wrote:
>
> > For direct upload, a suitable host must be in status 'Up'
> > and belong to the same datacenter as the created disk.
> > Added these criteria to the host search query.
> > ---
> > v2v/rhv-upload-plugin.py | 28 ++++++++++++++++++++++++----
> > 1 file changed, 24 insertions(+), 4 deletions(-)
> >
> > diff --git a/v2v/rhv-upload-plugin.py b/v2v/rhv-upload-plugin.py
> > index da309e288..931fcfaa2 100644
> > --- a/v2v/rhv-upload-plugin.py
> > +++ b/v2v/rhv-upload-plugin.py
> > @@ -69,14 +69,34 @@ def find_host(connection):
> >
> > debug("hw_id = %r" % vdsm_id)
> >
> > - hosts_service = connection.system_service().hosts_service()
> > + system_service = connection.system_service()
> > + storage_name = params['output_storage']
> > + data_centers = system_service.data_centers_service().list(
> > + search='storage=%s' % storage_name,
> > + case_sensitive=False,
> > + )
> > + if len(data_centers) == 0:
> > + # The storage domain is not attached to a datacenter
> > + # (shouldn't happen, would fail on disk creation).
> > + debug("storange domain (%s) is not attached to a DC" %
> > storage_name)
> > + return None
> > +
> > + datacenter = data_centers[0]
> > + debug("datacenter = %s" % datacenter.name)
> > +
> > + hosts_service = system_service.hosts_service()
> > hosts = hosts_service.list(
> > - search="hw_id=%s" % vdsm_id,
> > + search="hw_id=%s and datacenter=%s and status=Up" % (vdsm_id,
> > datacenter.name),
> > case_sensitive=False,
> > )
> > if len(hosts) == 0:
> > - # This oVirt host is not registered with engine.
> > - debug("cannot find host with hw_id=%r, using any host" % vdsm_id)
> > + # Couldn't find a host that's fulfilling the following criteria:
> > + # - 'hw_id' equals to 'vdsm_id'
> > + # - Its status is 'Up'
> > + # - Belongs to the storage domain's datacenter
> > + debug("cannot find a running host with hw_id=%r, " \
> > + "that belongs to datacenter '%s', " \
> > + "using any host" % (vdsm_id, datacenter.name))
> > return None
> >
> > host = hosts[0]
> >
>
> Looks good.
>
> This fixes both https://bugzilla.redhat.com/1596810 and
> https://bugzilla.redhat.com/1596851 so we need to backport
> the patch to RHEL 7.6.
Thanks, I've pushed this upstream and set the bugs in the right
state for RHEL 7.6.
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-p2v converts physical machines to virtual machines. Boot with a
live CD or over the network (PXE) and turn machines into KVM guests.
http://libguestfs.org/virt-v2v
More information about the Libguestfs
mailing list