Bug 1389729

Summary: virt-who incorrectly reports 'name' instead of 'hostname' for RHEV hosts
Product: Red Hat Enterprise Linux 7 Reporter: Francisco Garcia <fgarciad>
Component: virt-whoAssignee: Chris Snyder <csnyder>
Status: CLOSED ERRATA QA Contact: Eko <hsun>
Severity: high Docs Contact: Jiri Herrmann <jherrman>
Priority: high    
Version: 7.2CC: csnyder, hsun, jherrman, jhnidek, khowell, sgao, yuefliu
Target Milestone: rcKeywords: Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Fixed In Version: Doc Type: Release Note
Doc Text:
*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.
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-04-10 16:19:53 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On:    
Bug Blocks: 1473733    
Description Flags
screenshot-Address none

Description Francisco Garcia 2016-10-28 10:44:32 UTC
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):
virt-who  0.17-9.el7sat

How reproducible:
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.

Actual results:

Expected results:
virt-who should report the 'address' field, which contains the DNS hostname of the hypervisor.

Additional info:

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)

Comment 2 Kevin Howell 2016-12-12 20:29:31 UTC
We need to validate what versions of RHEV this is valid for.

Comment 3 Chris Snyder 2017-05-11 21:13:41 UTC
*** Bug 1412862 has been marked as a duplicate of this bug. ***

Comment 4 Francisco Garcia 2017-06-02 11:25:12 UTC
hi Kevin,

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?


Comment 6 yuefliu 2017-11-02 10:32:28 UTC
The bug still exists with virt-who-0.21.0-1.el7.noarch against RHEVM4.1

Comment 8 yuefliu 2018-01-03 05:47:43 UTC
Created attachment 1376131 [details]

Comment 17 errata-xmlrpc 2018-04-10 16:19:53 UTC
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.