shrink-osd: various fixes

This handles missing /etc/ceph/osd, by ensuring we actually found files in
`/etc/ceph/osd` before trying to slurp their content.

This also add a missing `| default(False)` to avoid fowlloing error:

```
fatal: [ceph01]: FAILED! =>
  msg: |-
    The conditional check 'ceph_osd_data_json[item.2]['encrypted'] | bool' failed. The error was: error while evaluating conditional (ceph_osd_data_json[item.2]['encrypted'] | bool): 'dict object' has no attribute 'encrypted'
```

Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1862416

Signed-off-by: Benoît Knecht <bknecht@protonmail.ch>
(cherry picked from commit fe8fbd3ee2)
pull/5259/head
Benoît Knecht 2020-07-28 13:47:26 +02:00 committed by Guillaume Abrioux
parent 7e81ea7d5f
commit 4052ab29f2
1 changed files with 4 additions and 2 deletions

View File

@ -123,7 +123,9 @@
delegate_to: "{{ item.item.0 }}" delegate_to: "{{ item.item.0 }}"
register: ceph_osd_files_content register: ceph_osd_files_content
loop: "{{ ceph_osd_data.results }}" loop: "{{ ceph_osd_data.results }}"
when: item.skipped is undefined when:
- item.skipped is undefined
- item.matched > 0
- name: set_fact ceph_osd_files_json - name: set_fact ceph_osd_files_json
set_fact: set_fact:
@ -191,7 +193,7 @@
until: result is succeeded until: result is succeeded
when: when:
- item.2 not in _lvm_list.keys() - item.2 not in _lvm_list.keys()
- ceph_osd_data_json[item.2]['encrypted'] | bool - ceph_osd_data_json[item.2]['encrypted'] | default(False) | bool
- ceph_osd_data_json[item.2][item.3] is defined - ceph_osd_data_json[item.2][item.3] is defined
- name: use ceph-volume lvm zap to destroy all partitions - name: use ceph-volume lvm zap to destroy all partitions