*virt-who* now reads the 'address' field provided by RHEVM to discover and report the correct host name
Previously, if the *virt-who* utility reported on a Red Hat Virtualization (RHV) host and the "hypervisor_id=hostname" option was used, *virt-who* displayed an incorrect host name value. This update ensures that *virt-who* reads the correct field value in the described circumstances and as a result, the proper host name is displayed.
Description of problem:
virt-who is using the 'name' field of the RHEV-produced xml inventory. Since that is a user-definable field, it causes issues when reporting back to Satellite 6.2 . Satellite 6.2 introduces strict hostname verification and then a FQDN should be provided by virt-who, as well as filter out underscore characters "_" .
Version-Release number of selected component (if applicable):
Always, as follows
Steps to Reproduce:
1. Add a RHEV hypervisor and set their name to "my_host_name".
2. Verify that virt-who uses that field instead of "address" XML field
3. Verify that virt-who fails to report to Satellite 6.2 as "my_host_name" fails strict validation.
virt-who should report the 'address' field, which contains the DNS hostname of the hypervisor.
virt-who can be easily fixed by ammending the /usr/lib/python2.7/site-packages/virtwho/virt/rhevm/rhevm.py :
146 elif self.config.hypervisor_id == 'hostname':
147 host_id = host.find('address').text
168 hosts[id] = virt.Hypervisor(hypervisorId=host_id, name=host.find('address').text, facts=facts)
We need to validate what versions of RHEV this is valid for.
*** Bug 1412862 has been marked as a duplicate of this bug. ***
Just checked this is valid for 3.5 to 4.1. I'd say this is also valid in all RHEV 3.x series and given it'll EOL in September, we're won't be introducing any breaking change.
Is there anything else required to fix this?
The bug still exists with virt-who-0.21.0-1.el7.noarch against RHEVM4.1
Created attachment 1376131 [details]
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.