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(a)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