Bug 1422361

Summary: [3.4] Advanced installer fails if python-six not available
Product: OpenShift Container Platform Reporter: Marko Myllynen <myllynen>
Component: InstallerAssignee: Scott Dodson <sdodson>
Status: CLOSED ERRATA QA Contact: Gan Huang <ghuang>
Severity: medium Docs Contact:
Priority: medium    
Version: 3.4.0CC: aos-bugs, ghuang, jokerman, mmccomas
Target Milestone: ---   
Target Release: 3.4.z   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Recent changes to improve Python 3 compatibility introduced a dependency on python-six which was not enforced when executing playbooks. python-six has been added as a requirement in all sections of the code which require it ensuring proper installation.
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-03-06 16:39:11 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 Marko Myllynen 2017-02-15 06:05:45 UTC
Description of problem:
...
TASK [openshift_facts : set_fact] **********************************************
ok: [master01.example.com]
ok: [node01.example.com]

TASK [openshift_facts : Ensure PyYaml and yum-utils are installed] *************
ok: [master01.example.com] => (item=[u'PyYAML', u'yum-utils'])
ok: [node01.example.com] => (item=[u'PyYAML', u'yum-utils'])

TASK [openshift_facts : Gather Cluster facts and set is_containerized if needed] ***
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: ImportError: No module named six
fatal: [master01.example.com]: FAILED! => {
    "changed": false, 
    "failed": true, 
    "module_stderr": "Traceback (most recent call last):\n  File \"/tmp/ansible_Nhdmp7/ansible_module_openshift_facts.py\", line 29, in <module>\n    from six import string_types\nImportError: No module named six\n", 
    "module_stdout": ""
}

MSG:

MODULE FAILURE

Manually installing python-six and rerunning allows installation to continue.

Version-Release number of selected component (if applicable):
openshift-ansible-3.4.56-1.git.0.7ba9968.el7.noarch

Comment 1 Johnny Liu 2017-02-15 09:14:27 UTC
python-six will be installed as dependency of ansible, if you are using our official ansible.
 
# rpm -q ansible
ansible-2.2.0.0-1.el7.noarch

# rpm -qR ansible|grep six
python-six


So this should be NOTABUG.

Comment 2 Marko Myllynen 2017-02-15 10:06:30 UTC
This is about the target nodes being installed, not about the bastion host initiating the installation. Thanks.

Comment 3 Scott Dodson 2017-02-15 18:02:56 UTC
https://github.com/openshift/openshift-ansible/pull/3372 backported fix

Comment 6 Gan Huang 2017-02-16 03:32:27 UTC
Tested with origin openshift-ansible-3.4.63-1

1) make sure the packages aren't installed into the RHEL image. iproute is depended by many other packages (NetworkManager, yum-rhn-plugin, etc) so I didn't remove it.

# rpm -qa |grep "iproute\|python-dbus\|python-six\|PyYAML\|yum-utils"
iproute-3.10.0-74.el7.x86_64

2) Trigger the installation with that image

3) Installation succeed and works well

Will test again when openshift-ansible-3.4.63-1 is in puddle.

Comment 7 Gan Huang 2017-02-20 12:05:17 UTC
Verified with rpm package openshift-ansible-3.4.63-1.git.0.54f8923.el7.noarch

Comment 9 errata-xmlrpc 2017-03-06 16:39:11 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, 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-2017:0448