Bug 1461689 - package_availability check get error due to the cockpit-shell rpm package name has been changed
package_availability check get error due to the cockpit-shell rpm package nam...
Status: CLOSED CURRENTRELEASE
Product: OpenShift Container Platform
Classification: Red Hat
Component: Installer (Show other bugs)
3.6.0
Unspecified Unspecified
high Severity high
: ---
: 3.9.0
Assigned To: Scott Dodson
Wenkai Shi
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2017-06-15 04:06 EDT by Wenkai Shi
Modified: 2018-06-18 14:26 EDT (History)
7 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
The package availability checks now account for the cockpit-system dependency change.
Story Points: ---
Clone Of:
Environment:
Last Closed: 2018-06-18 10:37:08 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Wenkai Shi 2017-06-15 04:06:20 EDT
Description of problem:
The cockpit-shell rpm package name has been changed, but still shown in our playbooks. package_availability check will get error cause the name "cockpit-shell".

Version-Release number of selected component (if applicable):
openshift-ansible-3.6.110-1.git.0.58960f7.el7

How reproducible:
100%

Steps to Reproduce:
1. Install OCP
2.
3.

Actual results:
# ansible-playbook -i hosts -v /usr/share/ansible/openshift-ansible/playbooks/byo/config.yml
...
fatal: [openshift.example.com]: FAILED! => {
...
        "package_availability": {
            "failed": true, 
            "invocation": {
                "module_args": {
                    "packages": [
                        "PyYAML", 
                        "atomic-openshift", 
                        "atomic-openshift-clients", 
                        "atomic-openshift-master", 
                        "atomic-openshift-node", 
                        "atomic-openshift-sdn-ovs", 
                        "bash-completion", 
                        "bind", 
                        "ceph-common", 
                        "cockpit-bridge", 
                        "cockpit-docker", 
                        "cockpit-shell", 
                        "cockpit-ws", 
                        "dnsmasq", 
                        "docker", 
                        "etcd", 
                        "firewalld", 
                        "flannel", 
                        "glusterfs-fuse", 
                        "httpd-tools", 
                        "iptables", 
                        "iptables-services", 
                        "iscsi-initiator-utils", 
                        "libselinux-python", 
                        "nfs-utils", 
                        "ntp", 
                        "openssl", 
                        "pyparted", 
                        "python-httplib2", 
                        "yum-utils"
                    ]
                }
            }, 
            "msg": "Cannot install all of the necessary packages. Unavailable:\n  cockpit-shell\nYou may need to enable one or more yum repositories to make this content available."
        }, 
...
}

MSG:

One or more checks failed
...

Expected results:
Installation succeed

Additional info:
BZ #1419718  Rename cockpit-shell to cockpit-system

# yum search cockpit-shell cockpit-system
...
cockpit-system.noarch : Cockpit admin interface package for configuring and troubleshooting a system
...
Warning: No matches found for: cockpit-shell


# grep -nir "cockpit-shell" /usr/share/ansible/openshift-ansible/
./playbooks/adhoc/uninstall.yml:106:        - cockpit-shell
./playbooks/adhoc/uninstall.yml:349:    - cockpit-shell
./roles/cockpit/tasks/main.yml:6:    - cockpit-shell
./roles/openshift_health_checker/openshift_checks/package_availability.py:39:            "cockpit-shell",
Comment 1 Rodolfo Carvalho 2017-06-16 06:01:38 EDT
The cockpit role still tries to install 'cockpit-shell', so the check is consistent with what the installer will try to use.

I found no reference to 'cockpit-system' in openshift-ansible.

$ git grep -n cockpit-shell
playbooks/adhoc/uninstall.yml:106:        - cockpit-shell
playbooks/adhoc/uninstall.yml:349:    - cockpit-shell
roles/cockpit/tasks/main.yml:6:    - cockpit-shell
roles/openshift_health_checker/openshift_checks/package_availability.py:39:            "cockpit-shell",

$ git grep -n cockpit-system
[nothing]



I've opened https://github.com/openshift/openshift-ansible/pull/4474 to update the package name.
Comment 2 Rodolfo Carvalho 2017-06-16 06:09:41 EDT
I believe in this case the check is performing what it is supposed to do -- it fails the install BEFORE spending a lot of time and having the install fail later. Or worse, perhaps part of cockpit was not being properly installed?!


It shouldn't be a TestBlocker because as part of the ansible-playbook output it shows how to disable the check:


# ansible-playbook -i hosts -v /usr/share/ansible/openshift-ansible/playbooks/byo/config.yml -e openshift_disable_check=package_availability
Comment 3 Rodolfo Carvalho 2017-06-27 12:09:56 EDT
The PR https://github.com/openshift/openshift-ansible/pull/4474 is merged.

@Wenkai could you please test this again?
Comment 4 Wenkai Shi 2017-06-28 04:44:08 EDT
Verified with version openshift-ansible-3.6.126.0-1.git.0.f9c47bf.el7, no more cockpit-shell.

# grep -nir "cockpit-shell" /usr/share/ansible/openshift-ansible/
# grep -nir "cockpit-system" /usr/share/ansible/openshift-ansible/
/usr/share/ansible/openshift-ansible/playbooks/adhoc/uninstall.yml:106:        - cockpit-system
/usr/share/ansible/openshift-ansible/playbooks/adhoc/uninstall.yml:350:    - cockpit-system
/usr/share/ansible/openshift-ansible/roles/cockpit/tasks/main.yml:6:    - cockpit-system
/usr/share/ansible/openshift-ansible/roles/openshift_health_checker/openshift_checks/package_availability.py:39:            "cockpit-system",

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