Bug 726440

Summary: fact for virt.host_type is incorrectly getting set to Unknown on a bare-metal host (side affect of bug 722248)
Product: Red Hat Enterprise Linux 6 Reporter: John Sefler <jsefler>
Component: subscription-managerAssignee: Bryan Kearney <bkearney>
Status: CLOSED ERRATA QA Contact: John Sefler <jsefler>
Severity: low Docs Contact:
Priority: unspecified    
Version: 6.2CC: spandey
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-12-06 17:22:52 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 682238    

Description John Sefler 2011-07-28 15:25:50 UTC
Description of problem:
A side affect of commit https://bugzilla.redhat.com/show_bug.cgi?id=722248#c1 is that on a bare metal host machine, the fact for virt.host_type is getting set to "Unknown" when the the value of "" returned from virt-what is actually a good value implying that this is NOT a virtual guest.  (see man virt-what)

On a bare metal machine prior to commit https://bugzilla.redhat.com/show_bug.cgi?id=722248#c1 ...


# subscription-manager facts --list | egrep "virt\."
virt.host_type: 
virt.is_guest: False

^^^ These results were correct


On a bare metal machine after commit https://bugzilla.redhat.com/show_bug.cgi?id=722248#c1 ...

# subscription-manager facts --list | egrep "virt\."
virt.host_type: Unknown
virt.is_guest: False

^^^ These results are wrong


I beleive the best fix for this bug is to make the following code change to hwprobe.py:


277     def getVirtInfo(self):
278         virt_dict = {}
279 
280         try:
281             host_type = self._get_output('virt-what')
282             virt_dict['virt.host_type'] = host_type
283             # If this is blank, then not a guest
284             virt_dict['virt.is_guest'] = bool(host_type)
285 #jsefler suggests these 2 lines as a fix for this bug
286             if host_type == "":
287                 virt_dict['virt.host_type'] = "Not Applicable"
288         # TODO:  Should this only catch OSErrors?
289         except:
290             # Otherwise there was an error running virt-what - who knows
291             virt_dict['virt.is_guest'] = 'Unknown'
292 
293         self.allhw.update(virt_dict)
294         return virt_dict


On a bare metal machine after jsefler's suggested fix ...

# subscription-manager facts --list | egrep "virt\."
virt.host_type: Not Applicable
virt.is_guest: False



NOTE: this fix is also translated to the subscription-manager-gui facts

Version-Release number of selected component (if applicable):
[root@jsefler-onprem-62server sbin]# rpm -q subscription-manager
subscription-manager-0.96.4-1.git.66.43ed963.el6.x86_64

Comment 1 Bryan Kearney 2011-07-29 19:31:11 UTC
Fixed in 1cbe0073910033eb27d271fbebf0992c17f3143e in master.

Comment 3 John Sefler 2011-08-01 14:12:38 UTC
Verifying Version....
[root@jsefler-onprem-62server tmp]# rpm -q subscription-manager
subscription-manager-0.96.4-1.git.70.a18d152.el6.x86_64


On a kvm guest...
[root@jsefler-onprem-62server ~]# subscription-manager facts --list | egrep ^virt
virt.host_type: kvm
virt.is_guest: True
virt.uuid: d5cbb7ab-542c-36c6-d2b8-116c085061ba

When virt-what return a zero exit code with stdout="" (simulates bare metal)...
[root@jsefler-onprem-62server ~]# subscription-manager facts --list | egrep ^virt
virt.host_type: Not Applicable
virt.is_guest: False

When virt-what return a non-zero exit code (simulates an error in virt-what)...
[root@jsefler-onprem-62server ~]# subscription-manager facts --list | egrep ^virt
virt.is_guest: Unknown
virt.uuid: Unknown


moving to VERIFIED

Comment 4 errata-xmlrpc 2011-12-06 17:22:52 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.

http://rhn.redhat.com/errata/RHBA-2011-1695.html