[python docker-py/docker package conflict]Contrail-command provisioning is failing

Bug #1797952 reported by manishkn
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Juniper Openstack
Won't Fix
Critical
manishkn
R5.0
Won't Fix
Critical
manishkn
Trunk
Won't Fix
Critical
manishkn

Bug Description

Attaching the email thread

Hi Bharath,

After removing docker-py

Could you pls take a look at 10.87.74.151

TASK [launch_containers : remove contrail mysql container] ********************************************************************************************
fatal: [10.87.74.151]: FAILED! => {"changed": false, "msg": "Failed to import docker-py - No module named docker. Try `pip install docker-py`"}
                to retry, use: --limit @/var/tmp/contrail-commander/deploy.retry

PLAY RECAP ********************************************************************************************************************************************
10.87.74.151 : ok=37 changed=9 unreachable=0 failed=1
localhost : ok=4 changed=2 unreachable=0 failed=0

Thanks
Manish Krishnan

From: Leela Bharath Kumar Kassetti <email address hidden>
Date: Saturday, October 13, 2018 at 12:02 PM
To: Ignatious Johnson <email address hidden>, Nitish Krishna Kaveri Poompatnam <email address hidden>
Cc: Ramprakash Ram Mohan <email address hidden>, Manish Krishnan <email address hidden>, Abhay Joshi <email address hidden>
Subject: Re: mysql container bring-up failure

Hi Manish/Ignatious,

We have removed installation of “docker-py” which is an obsolete python package. Please uninstall “docker-py” on the setup before running any playbooks.

This has been clearly mentioned as a pre-requisite in the Wiki link below.

Wiki:
https://github.com/Juniper/contrail-command-deployer/wiki/Using-Ansible-to-launch-the-Contrail-Command-Containers
“We are not installing docker-py anymore as it is obsolete. Remove docker-py from all the nodes where Contrail-Command (UI) is being installed as it conflicts with other packages.”

pip uninstall docker-py

Regards,
Bharath Kassetti.
From: Ignatious Johnson <email address hidden>
Date: Friday, October 12, 2018 at 8:25 PM
To: Leela Bharath Kumar Kassetti <email address hidden>, Nitish Krishna Kaveri Poompatnam <email address hidden>
Cc: Ramprakash Ram Mohan <email address hidden>, Manish Krishnan <email address hidden>
Subject: mysql container bring-up failure

Hi Team,

Manish is facing issue with latest contrail-command-deployer.
Setup 10.87.74.151 root/c0ntrail123

Can one of you take a look, following is the verbose failure logs, while executing (ansible-playbook playbooks/deploy.yml –vvv)

TASK [launch_containers : debug] *************************************************************************************************************
task path: /root/contrail-command-deployer/playbooks/roles/launch_containers/tasks/launch_containers.yml:8
ok: [10.87.74.151] => {
    "database_container_name": "contrail_mysql"
}
Read vars_file '{{ hostvars['localhost'].config_file }}'

TASK [launch_containers : remove contrail mysql container] ***********************************************************************************
task path: /root/contrail-command-deployer/playbooks/roles/launch_containers/tasks/launch_containers.yml:11
Using module file /usr/lib/python2.7/site-packages/ansible/modules/cloud/docker/docker_container.py
<10.87.74.151> ESTABLISH SSH CONNECTION FOR USER: root
<10.87.74.151> SSH: EXEC sshpass -d13 ssh -C -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no -o User=root -o ConnectTimeout=10 -o ControlPath=/root/.ansible/cp/8aa0ddab98 10.87.74.151 '/bin/sh -c '"'"'echo ~ && sleep 0'"'"''
<10.87.74.151> (0, '/root\n', '')
<10.87.74.151> ESTABLISH SSH CONNECTION FOR USER: root
<10.87.74.151> SSH: EXEC sshpass -d13 ssh -C -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no -o User=root -o ConnectTimeout=10 -o ControlPath=/root/.ansible/cp/8aa0ddab98 10.87.74.151 '/bin/sh -c '"'"'( umask 77 && mkdir -p "` echo /root/.ansible/tmp/ansible-tmp-1539400867.88-48654982701767 `" && echo ansible-tmp-1539400867.88-48654982701767="` echo /root/.ansible/tmp/ansible-tmp-1539400867.88-48654982701767 `" ) && sleep 0'"'"''
<10.87.74.151> (0, 'ansible-tmp-1539400867.88-48654982701767=/root/.ansible/tmp/ansible-tmp-1539400867.88-48654982701767\n', '')
<10.87.74.151> PUT /tmp/tmpLiuYyq TO /root/.ansible/tmp/ansible-tmp-1539400867.88-48654982701767/docker_container.py
<10.87.74.151> SSH: EXEC sshpass -d13 sftp -o BatchMode=no -b - -C -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no -o User=root -o ConnectTimeout=10 -o ControlPath=/root/.ansible/cp/8aa0ddab98 '[10.87.74.151]'
<10.87.74.151> (0, 'sftp> put /tmp/tmpLiuYyq /root/.ansible/tmp/ansible-tmp-1539400867.88-48654982701767/docker_container.py\n', '')
<10.87.74.151> ESTABLISH SSH CONNECTION FOR USER: root
<10.87.74.151> SSH: EXEC sshpass -d13 ssh -C -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no -o User=root -o ConnectTimeout=10 -o ControlPath=/root/.ansible/cp/8aa0ddab98 10.87.74.151 '/bin/sh -c '"'"'chmod u+x /root/.ansible/tmp/ansible-tmp-1539400867.88-48654982701767/ /root/.ansible/tmp/ansible-tmp-1539400867.88-48654982701767/docker_container.py && sleep 0'"'"''
<10.87.74.151> (0, '', '')
<10.87.74.151> ESTABLISH SSH CONNECTION FOR USER: root
<10.87.74.151> SSH: EXEC sshpass -d13 ssh -C -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no -o User=root -o ConnectTimeout=10 -o ControlPath=/root/.ansible/cp/8aa0ddab98 -tt 10.87.74.151 '/bin/sh -c '"'"'/usr/bin/python /root/.ansible/tmp/ansible-tmp-1539400867.88-48654982701767/docker_container.py; rm -rf "/root/.ansible/tmp/ansible-tmp-1539400867.88-48654982701767/" > /dev/null 2>&1 && sleep 0'"'"''
<10.87.74.151> (0, '\r\n{"msg": "Error connecting: load_config() got an unexpected keyword argument \'config_dict\'", "failed": true, "exception": " File \\"/tmp/ansible_ehs13e/ansible_modlib.zip/ansible/module_utils/docker_common.py\\", line 153, in __init__\\n super(AnsibleDockerClient, self).__init__(**self._connect_params)\\n File \\"/usr/lib/python2.7/site-packages/docker/api/client.py\\", line 113, in __init__\\n config_dict=self._general_configs\\n", "invocation": {"module_args": {"tty": false, "dns_servers": null, "links": null, "oom_score_adj": null, "volumes": null, "restart_policy": null, "image": null, "recreate": false, "command": null, "ipc_mode": null, "paused": false, "docker_host": null, "keep_volumes": false, "stop_timeout": null, "security_opts": null, "force_kill": true, "pid_mode": null, "env_file": null, "networks": null, "cpu_quota": null, "filter_logger": false, "tmpfs": null, "cpuset_mems": null, "dns_opts": null, "user": null, "hostname": null, "working_dir": null, "capabilities": null, "mac_address": null, "state": "absent", "cleanup": false, "entrypoint": null, "restart": false, "env": null, "memory": "0", "volumes_from": null, "published_ports": null, "log_options": null, "privileged": false, "api_version": null, "key_path": null, "exposed_ports": null, "read_only": false, "labels": null, "log_driver": null, "oom_killer": null, "shm_size": null, "auto_remove": false, "memory_swappiness": null, "kill_signal": null, "network_mode": null, "tls_hostname": null, "volume_driver": null, "kernel_memory": null, "restart_retries": null, "groups": null, "cert_path": null, "detach": true, "memory_swap": null, "tls": null, "pull": false, "cpu_period": null, "name": "contrail_mysql", "cacert_path": null, "tls_verify": null, "stop_signal": null, "blkio_weight": null, "trust_image_content": false, "ssl_version": null, "ignore_image": false, "devices": null, "etc_hosts": null, "uts": null, "sysctls": null, "cpuset_cpus": null, "memory_reservation": null, "timeout": null, "debug": false, "dns_search_domains": null, "purge_networks": false, "cpu_shares": null, "ulimits": null, "interactive": false}}}\r\n', 'Shared connection to 10.87.74.151 closed.\r\n')
The full traceback is:
  File "/tmp/ansible_ehs13e/ansible_modlib.zip/ansible/module_utils/docker_common.py", line 153, in __init__
    super(AnsibleDockerClient, self).__init__(**self._connect_params)
  File "/usr/lib/python2.7/site-packages/docker/api/client.py", line 113, in __init__
    config_dict=self._general_configs

fatal: [10.87.74.151]: FAILED! => {
    "changed": false,
    "invocation": {
        "module_args": {
            "api_version": null,
            "auto_remove": false,
            "blkio_weight": null,
            "cacert_path": null,
            "capabilities": null,
            "cert_path": null,
            "cleanup": false,
            "command": null,
            "cpu_period": null,
            "cpu_quota": null,
            "cpu_shares": null,
            "cpuset_cpus": null,
            "cpuset_mems": null,
            "debug": false,
            "detach": true,
            "devices": null,
            "dns_opts": null,
            "dns_search_domains": null,
            "dns_servers": null,
            "docker_host": null,
            "entrypoint": null,
            "env": null,
            "env_file": null,
            "etc_hosts": null,
            "exposed_ports": null,
            "filter_logger": false,
            "force_kill": true,
            "groups": null,
            "hostname": null,
            "ignore_image": false,
            "image": null,
            "interactive": false,
            "ipc_mode": null,
            "keep_volumes": false,
            "kernel_memory": null,
            "key_path": null,
            "kill_signal": null,
            "labels": null,
            "links": null,
            "log_driver": null,
            "log_options": null,
            "mac_address": null,
            "memory": "0",
            "memory_reservation": null,
            "memory_swap": null,
            "memory_swappiness": null,
            "name": "contrail_mysql",
            "network_mode": null,
            "networks": null,
            "oom_killer": null,
            "oom_score_adj": null,
            "paused": false,
            "pid_mode": null,
            "privileged": false,
            "published_ports": null,
            "pull": false,
            "purge_networks": false,
            "read_only": false,
            "recreate": false,
            "restart": false,
            "restart_policy": null,
            "restart_retries": null,
            "security_opts": null,
            "shm_size": null,
            "ssl_version": null,
            "state": "absent",
            "stop_signal": null,
            "stop_timeout": null,
            "sysctls": null,
            "timeout": null,
            "tls": null,
            "tls_hostname": null,
            "tls_verify": null,
            "tmpfs": null,
            "trust_image_content": false,
            "tty": false,
            "ulimits": null,
            "user": null,
            "uts": null,
            "volume_driver": null,
            "volumes": null,
            "volumes_from": null,
            "working_dir": null
        }
    },
    "msg": "Error connecting: load_config() got an unexpected keyword argument 'config_dict'"
}
to retry, use: --limit @/var/tmp/contrail-commander/deploy.retry

PLAY RECAP ***********************************************************************************************************************************
10.87.74.151 : ok=37 changed=8 unreachable=0 failed=1
localhost : ok=4 changed=2 unreachable=0 failed=0

[root@5c3s29-2-vm2 contrail-command-deployer]#

manishkn (manishkn)
tags: added: blocker
summary: - Contrail-command provisioning is failing
+ [python docker-py/docker package conflict]Contrail-command provisioning
+ is failing
manishkn (manishkn)
tags: removed: blocker
Revision history for this message
Leela Bharath Kumar Kassetti (klbharat) wrote :

We are not installing "docker-py" python package anymore as it is obsolete now instead we are installing "docker" python package. Installation of both “docker-py” and “docker” python packages will write to the same location (/usr/lib/python<VERSION>/docker).

To avoid package conflict, remove "docker-py" and "docker" python packages from all the nodes where Contrail-Command (UI) is being installed before deployment.

Run below command (pre-requisite):
pip uninstall docker-py docker

tags: added: releasenote
Jeba Paulaiyan (jebap)
Changed in juniperopenstack:
status: New → Won't Fix
Revision history for this message
Jeba Paulaiyan (jebap) wrote :

Notes:

Before running play books for provisioning the user need to make sure docker-py package is not present on the system. If it is present, it can be removed by the following command:

pip uninstall docker-py docker

tags: added: provisioning
removed: releasenote
tags: added: releasenote
Jeba Paulaiyan (jebap)
information type: Proprietary → Public
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.