Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
This project is now read‑only. Starting Monday, February 2, please use https://ibm-ceph.atlassian.net/ for all bug tracking management.

Bug 1489099

Summary: OSP11 -> OSP12 upgrade: switch-from-non-containerized-to-containerized-ceph-daemons.yml fails with: "'list object' has no attribute 'stdout_lines'"
Product: [Red Hat Storage] Red Hat Ceph Storage Reporter: Marius Cornea <mcornea>
Component: Ceph-AnsibleAssignee: seb
Status: CLOSED ERRATA QA Contact: Marius Cornea <mcornea>
Severity: urgent Docs Contact:
Priority: urgent    
Version: 2.3CC: adeza, aschoen, ceph-eng-bugs, dbecker, gfidente, gmeno, hnallurv, mburns, mcornea, morazi, nthomas, rhel-osp-director-maint, sankarshan
Target Milestone: rcKeywords: Triaged
Target Release: 3.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: RHEL: ceph-ansible-3.0.0-0.1.rc7.el7cp Ubuntu: ceph-ansible_3.0.0~rc7-2redhat1 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-12-05 23:42:05 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:
Attachments:
Description Flags
ceph-install-workflow.log
none
extra_vars.txt none

Description Marius Cornea 2017-09-06 17:01:18 UTC
Created attachment 1322757 [details]
ceph-install-workflow.log

Description of problem:
OSP11 -> OSP12 upgrade: switch-from-non-containerized-to-containerized-ceph-daemons.yml fails with: "'list object' has no attribute 'stdout_lines'":


2017-09-06 12:52:13,691 p=17740 u=mistral |  TASK [check if containerized osds are already running] *************************
2017-09-06 12:52:13,703 p=17740 u=mistral |  fatal: [192.168.24.9]: FAILED! => {"failed": true, "msg": "'list object' has no attribute 'stdout_lines'"}
2017-09-06 12:52:13,704 p=17740 u=mistral |  PLAY RECAP *********************************************************************
2017-09-06 12:52:13,705 p=17740 u=mistral |  192.168.24.14              : ok=59   changed=6    unreachable=0    failed=0   
2017-09-06 12:52:13,705 p=17740 u=mistral |  192.168.24.15              : ok=50   changed=5    unreachable=0    failed=0   
2017-09-06 12:52:13,705 p=17740 u=mistral |  192.168.24.16              : ok=4    changed=0    unreachable=0    failed=0   
2017-09-06 12:52:13,705 p=17740 u=mistral |  192.168.24.18              : ok=52   changed=7    unreachable=0    failed=0   
2017-09-06 12:52:13,705 p=17740 u=mistral |  192.168.24.6               : ok=4    changed=0    unreachable=0    failed=0   
2017-09-06 12:52:13,705 p=17740 u=mistral |  192.168.24.9               : ok=12   changed=0    unreachable=0    failed=1   
2017-09-06 12:52:13,705 p=17740 u=mistral |  localhost                  : ok=0    changed=0    unreachable=0    failed=0   

We can see that the 'devices' var in https://github.com/ceph/ceph-ansible/blob/master/infrastructure-playbooks/switch-from-non-containerized-to-containerized-ceph-daemons.yml#L178-L182 doesn't have any stdout_lines attribute:

2017-09-06 12:52:13,665 p=17740 u=mistral |  TASK [debug] *******************************************************************
2017-09-06 12:52:13,685 p=17740 u=mistral |  ok: [192.168.24.9] => {
    "msg": [
        "/dev/vdb"
    ]
}


Version-Release number of selected component (if applicable):
ceph-ansible-3.0.0-0.rc6.4.g0d9489f.el7.noarch
openstack-tripleo-heat-templates-7.0.0-0.20170901051303.0rc1.el7ost.noarch

How reproducible:
100%

Steps to Reproduce:
1. Deploy OSP11 with 3 ctrls, 1 compute, 3 ceph osd nodes
2. Upgrade to OSP12 using ceph-ansible

Actual results:
Upgrade fails when running the  switch-from-non-containerized-to-containerized-ceph-daemons.yml  playbook.

Expected results:
Upgrade doesn't fail.

Additional info:
I am attaching /var/log/mistral/ceph-install-workflow.log. 
Note: before the 'check if containerized osds are already running' task i added a debug step for the devies var:
    - debug: msg="{{ devices }}"

Comment 2 seb 2017-09-07 06:54:38 UTC
I need to see the variables you are passing to execute your playbook, I suspect that 'devices' is already declared as an extra var. This might explain why there is no stdout_lines. Still it's strange, even if the var exist if should be overwritten by the set_fact.

Comment 3 Giulio Fidente 2017-09-07 06:58:46 UTC
(In reply to seb from comment #2)
> I need to see the variables you are passing to execute your playbook, I
> suspect that 'devices' is already declared as an extra var. This might
> explain why there is no stdout_lines. Still it's strange, even if the var
> exist if should be overwritten by the set_fact.

devices is passed as extra_vars yes; attaching full list.

Comment 4 Giulio Fidente 2017-09-07 06:59:19 UTC
Created attachment 1322922 [details]
extra_vars.txt

Comment 5 seb 2017-09-08 07:40:12 UTC
Fix merge upstream

Comment 8 Harish NV Rao 2017-09-12 07:01:32 UTC
@Marius @Giulio, if you are verifying this bug fix, could you please provide the qa_ack?

Comment 12 errata-xmlrpc 2017-12-05 23:42:05 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/RHBA-2017:3387