Bug 1942806 - AttributeError occured when run python 3 bootstrap.py on RHEL9.0 Alpha
Summary: AttributeError occured when run python 3 bootstrap.py on RHEL9.0 Alpha
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Satellite
Classification: Red Hat
Component: Bootstrap
Version: 6.9.0
Hardware: Unspecified
OS: Unspecified
unspecified
medium
Target Milestone: 6.11.0
Assignee: Evgeni Golov
QA Contact: Stephen Wadeley
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2021-03-25 03:36 UTC by yanpliu
Modified: 2022-07-05 14:29 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2022-07-05 14:28:51 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Github Katello katello-client-bootstrap pull 345 0 None open support python 3.8 which has no platform.distribution anymore 2021-03-25 06:42:03 UTC
Red Hat Product Errata RHSA-2022:5498 0 None None None 2022-07-05 14:29:21 UTC

Description yanpliu 2021-03-25 03:36:46 UTC
Description of problem:
AttributeError  occured when run python 3 bootstrap.py on RHEL9.0 Aplha.
Satellite6.9.0 Satellite 6.8.4 Satellite6.7.5 all have this issue.



Version-Release number of selected component (if applicable):
RHEL Compose: RHEL-9.0.0-20210316.8
subscription-manager-1.29.7-1.el9.x86_64
package dnf-plugin-subscription-manager is not installed
subscription-manager-cockpit-1.29.7-1.el9.noarch
python3-subscription-manager-rhsm-1.29.7-1.el9.x86_64
subscription-manager-rhsm-certificates-1.29.7-1.el9.x86_64

Satellite6.7.5
tfm-rubygem-katello-3.14.0.32-1.el7sat.noarch
katello-3.14.0-6.el7sat.noarch
candlepin-2.9.30-1.el7sat.noarch

Satellite6.9.0
tfm-rubygem-katello-3.18.1.20-1.el7sat.noarch
katello-3.18.1-3.el7sat.noarch
candlepin-3.1.26-1.el7sat.noarch

Satellite6.8.4
tfm-rubygem-katello-3.16.0.20-1.el7sat.noarch
katello-3.16.0-1.el7sat.noarch
candlepin-3.1.24-1.el7sat.noarch


How reproducible:
100%

Steps to Reproduce:
1. Get bootstrap.py for Satellite
# curl -o /root/bootstrap.py http://hpe-magnycours-01.hpe2.lab.eng.bos.redhat.com/pub/bootstrap.py; chmod +x bootstrap.py
2. Run python3 bootstrap.py
python3 /root/bootstrap.py --login=admin --password=admin --server=hpe-magnycours-01.hpe2.lab.eng.bos.redhat.com --location='Default Location' --organization='Default Organization' --hostgroup=hg --activationkey=RH00069_key --add-domain --force
rhsm-integrate: INFO: <<<Return Code: 1
rhsm-integrate: INFO: <<<Output:
Foreman Bootstrap Script
This script is designed to register new systems or to migrate an existing system to a Foreman server with Katello
Traceback (most recent call last):
  File "/root/bootstrap.py", line 1180, in <module>
    RELEASE = platform.linux_distribution()[1]
AttributeError: module 'platform' has no attribute 'linux_distribution'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/root/bootstrap.py", line 1183, in <module>
    RELEASE = platform.dist()[1]
AttributeError: module 'platform' has no attribute 'dist'



Actual results:
AttributeError  occured when run python 3 bootstrap.py on RHEL9.0 Aplha.

Expected results:
It should be successful to register by bootstrap.py
For example:
# python3 /root/bootstrap.py --login=admin --password=admin --server=intel-waimeabay-hedt-01.ml3.eng.bos.redhat.com --location='Default Location' --organization='Default Organization' --hostgroup=hg --activationkey=RH00069_key --add-domain --force
19:03:28 2021-03-15 06:45:06,193 [INFO]: <<<Return Code: 1
19:03:28 2021-03-15 06:45:06,194 [INFO]: <<<Output:
19:03:28 Foreman Bootstrap Script
19:03:28 This script is designed to register new systems or to migrate an existing system to a Foreman server with Katello
19:03:28 [NOTIFICATION], [2021-03-15 12:03:05], [This system is not registered to RHN. Attempting to register via subscription-manager]
19:03:28 [NOTIFICATION], [2021-03-15 12:03:05], [Checking subscription manager prerequisites]
19:03:28 [[94mRUNNING[0m], [2021-03-15 12:03:05], [/usr/bin/yum -y remove subscription-manager-gnome]
19:03:28 Updating Subscription Management repositories.
19:03:28 Unable to read consumer identity
19:03:28 
19:03:28 This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
19:03:28 
19:03:28 No match for argument: subscription-manager-gnome
19:03:28 No packages marked for removal.
19:03:28 Dependencies resolved.
19:03:28 Nothing to do.
19:03:28 Complete!
.......
19:03:28 [[94mRUNNING[0m], [2021-03-15 12:03:18], [/usr/sbin/subscription-manager register --org 'Default_Organization' --name 'kvm-02-guest03.hv2.lab.eng.bos.redhat.com' --activationkey 'RH00069_key'  --serverurl=https://intel-waimeabay-hedt-01.ml3.eng.bos.redhat.com:443/rhsm --baseurl=https://intel-waimeabay-hedt-01.ml3.eng.bos.redhat.com/pulp/repos --force]
19:03:28 The system has been registered with ID: 6c9c0ff6-67ba-4b09-8715-6619eaeed6b4
19:03:28 The registered system name is: kvm-02-guest03.hv2.lab.eng.bos.redhat.com
19:03:28 Installed Product Current Status:
19:03:28 Product Name: Red Hat Enterprise Linux for x86_64 Beta
19:03:28 Status:       Subscribed
19:03:28 
19:03:28 [[92mSUCCESS[0m], [2021-03-15 12:03:24], [/usr/sbin/subscription-manager register --org 'Default_Organization' --name 'kvm-02-guest03.hv2.lab.eng.bos.redhat.com' --activationkey 'RH00069_key'  --serverurl=https://intel-waimeabay-hedt-01.ml3.eng.bos.redhat.com:443/rhsm --baseurl=https://intel-waimeabay-hedt-01.ml3.eng.bos.redhat.com/pulp/repos --force], completed successfully.

Additional info:

Comment 5 Claudio 2022-06-16 15:04:59 UTC
Same issue (Red Hat Satellite 6.9.4 and RHEL9.0)

According to a comment found here (https://github.com/FabriceSalvaire/CodeReview/issues/48)

- "platform.dist" is deprecated since python version 2.6.
- "platform.linux_distribution" was the successor but is deprecated since Python 3.5 and removed in Python 3.8
This seem to be the successor: https://pypi.org/project/distro/

Kind Regards,
Claudio

Comment 6 Claudio 2022-06-16 15:08:14 UTC
Moreover i see in Foreman GitHub this code block:

    try:
        # pylint:disable=deprecated-method
        RELEASE = platform.linux_distribution()[1]
    except AttributeError:
        try:
            # pylint:disable=deprecated-method,no-member
            RELEASE = platform.dist()[1]
        except AttributeError:
            RELEASE = release_from_etc()

In "release_from_etc()" function there' a note: "Used on systems with Python 3.8+ which doesn't provide that in the platform module anymore."

We need the backport for RedHat Satellite 6.9+ (possibly)

Comment 9 errata-xmlrpc 2022-07-05 14:28:51 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.11 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-2022:5498


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