Bug 1461689 - package_availability check get error due to the cockpit-shell rpm package name has been changed
Summary: package_availability check get error due to the cockpit-shell rpm package nam...
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: OpenShift Container Platform
Classification: Red Hat
Component: Installer
Version: 3.6.0
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: ---
: 3.9.0
Assignee: Scott Dodson
QA Contact: Wenkai Shi
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2017-06-15 08:06 UTC by Wenkai Shi
Modified: 2018-06-18 18:26 UTC (History)
7 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
The package availability checks now account for the cockpit-system dependency change.
Clone Of:
Environment:
Last Closed: 2018-06-18 14:37:08 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description Wenkai Shi 2017-06-15 08:06:20 UTC
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 10:01:38 UTC
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 10:09:41 UTC
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 16:09:56 UTC
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 08:44:08 UTC
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.