This service will be undergoing maintenance at 00:00 UTC, 2016-08-01. It is expected to last about 1 hours
Bug 726440 - fact for virt.host_type is incorrectly getting set to Unknown on a bare-metal host (side affect of bug 722248)
fact for virt.host_type is incorrectly getting set to Unknown on a bare-metal...
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: subscription-manager (Show other bugs)
Unspecified Unspecified
unspecified Severity low
: rc
: ---
Assigned To: Bryan Kearney
John Sefler
Depends On:
Blocks: rhsm-rhel62
  Show dependency treegraph
Reported: 2011-07-28 11:25 EDT by John Sefler
Modified: 2011-12-06 12:22 EST (History)
1 user (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2011-12-06 12:22:52 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:

Attachments (Terms of Use)

  None (edit)
Description John Sefler 2011-07-28 11:25:50 EDT
Description of problem:
A side affect of commit 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 ...

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

^^^ These results were correct

On a bare metal machine after commit ...

# 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

277     def getVirtInfo(self):
278         virt_dict = {}
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'
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
Comment 1 Bryan Kearney 2011-07-29 15:31:11 EDT
Fixed in 1cbe0073910033eb27d271fbebf0992c17f3143e in master.
Comment 3 John Sefler 2011-08-01 10:12:38 EDT
Verifying Version....
[root@jsefler-onprem-62server tmp]# rpm -q subscription-manager

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 12:22:52 EST
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.

Note You need to log in before you can comment on or make changes to this bug.