Bug 1884796

Summary: os_release field is showing "()" for vmWare hypervisors in report JSON
Product: Red Hat Satellite Reporter: Mike McCune <mmccune>
Component: RH Cloud - InventoryAssignee: Shimon Shtein <sshtein>
Status: CLOSED ERRATA QA Contact: Mirek Długosz <mzalewsk>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 6.7.0CC: apatel, aruzicka, cmarinea, egolov, kgaikwad, tlestach
Target Milestone: 6.9.0Keywords: SubscriptionWatch, Triaged
Target Release: Unused   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: tfm-rubygem-foreman_rh_cloud-2.0.13 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-04-21 13:18:20 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:
Embargoed:

Description Mike McCune 2020-10-02 19:54:05 UTC
On the hypervisor JSON data for the hypervisors in VMWare based inventory we are getting blank OS fields:


 {
            "fqdn": "virt-who-esxi4.lab.eng.rdu2.redhat.com-1",
            "account": "540155",
                ],
            "os_release": "  ()",


eg:

[root@wallsat67 reports]# cat 4db85b5e-fd5a-4b8b-a4aa-46edaf8bef40.json |json_reformat | grep os_release             │········································
                "bios_release_date": "12/12/2018",                                                                   │········································
                "os_release": "Red Hat Enterprise Linux Server 7.5 (Maipo)",                                         │········································
                "bios_release_date": "09/03/2014",                                                                   │········································
                "os_release": "Red Hat Enterprise Linux Server 7.8 (Maipo)",                                         │········································
                "os_release": "  ()",                                                                                │········································
                "os_release": "  ()",                                                                                │········································
                "os_release": "  ()",                                                                                │········································
                "bios_release_date": "12/12/2018",                                                                   │········································
                "os_release": "Red Hat Enterprise Linux Server 7.5 (Maipo)",                                         │········································
                "os_release": "  ()",                                                                                │········································
                "os_release": "  ()",                                                                                │········································
                "os_release": "  ()",                                                                                │········································
                "os_release": "  ()",                                                                                │········································
                "os_release": "  ()",                                                                                │········································
                "os_release": "  ()",                                                                                │········································
                "os_release": "  ()",                    

we are theorizing this may cause hypervisors being dropped on the cloud.redhat.com side after uploading, possibly resulting in miscalculated subscription accounting.

Discovered after filing:

https://bugzilla.redhat.com/show_bug.cgi?id=1884785

Comment 2 Mike McCune 2020-10-02 19:55:33 UTC
report generated from version:

tfm-rubygem-foreman_rh_cloud-1.0.6-1.el7sat.noarch

Comment 6 Mirek Długosz 2020-11-25 13:06:29 UTC
os_release is constructed from "distribution::name", "distribution::version" and "distribution::id" host facts. If any field is omitted, "os_release" key will still be present, just missing some data (so you can get values like "Red Hat Enterprise Linux Server 7.9 ()" or " 7.9 (Maipo)"). If all fields are omitted, "os_release" key will not be present at all.

Under normal circumstances, it's not possible to register host with all fields missing to Satellite - Satellite will throw error 500 at subscription-manager when trying to extract major version from "distribution::version" fact.


Tested on:
Satellite 6.9 snap 2
satellite-6.9.0-0.1.beta.el7sat.noarch
pulp-server-2.21.4-1.el7sat.noarch
foreman-2.3.0-0.7.rc2.el7sat.noarch
katello-3.18.0-0.1.rc1.el7sat.noarch
tfm-rubygem-foreman_rh_cloud-2.0.13.1-1.el7sat.noarch

Comment 9 errata-xmlrpc 2021-04-21 13:18:20 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 (Moderate: Satellite 6.9 Release), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2021:1313