From: Benoît Knecht Date: Mon, 13 Dec 2021 12:59:17 +0000 (+0100) Subject: ceph-osd: Fix start_osds.yml in check mode X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=0b3a608216708e8005ed4fc34122f0fc61d0d459;p=ceph-ansible.git ceph-osd: Fix start_osds.yml in check mode This construct doesn't work as intended since ansible/ansible#74212: ``` ceph_osd_ids.stdout | default('{}') | from_json ``` That PR made the `command` module return `stdout` even in check mode (setting it to the empty string), so `default()` has no effect in that case and `from_json()` fails to parse an empty string. Instead, `default()` needs to be invoked with its second argument set to `True`, so that it replaces any `False` value (such as an empty string) with its first argument: ``` ceph_osd_ids.stdout | default('{}', True) | from_json ``` Signed-off-by: Benoît Knecht --- diff --git a/roles/ceph-osd/tasks/start_osds.yml b/roles/ceph-osd/tasks/start_osds.yml index a0a646800..9eb4d8c50 100644 --- a/roles/ceph-osd/tasks/start_osds.yml +++ b/roles/ceph-osd/tasks/start_osds.yml @@ -46,7 +46,7 @@ mode: "{{ ceph_directories_mode }}" owner: "{{ ceph_uid if containerized_deployment | bool else 'ceph' }}" group: "{{ ceph_uid if containerized_deployment | bool else 'ceph' }}" - with_items: "{{ ((ceph_osd_ids.stdout | default('{}') | from_json).keys() | list) | union(osd_ids_non_container.stdout_lines | default([])) }}" + with_items: "{{ ((ceph_osd_ids.stdout | default('{}', True) | from_json).keys() | list) | union(osd_ids_non_container.stdout_lines | default([])) }}" - name: systemd start osd systemd: @@ -55,4 +55,4 @@ enabled: yes masked: no daemon_reload: yes - with_items: "{{ ((ceph_osd_ids.stdout | default('{}') | from_json).keys() | list) | union(osd_ids_non_container.stdout_lines | default([])) }}" + with_items: "{{ ((ceph_osd_ids.stdout | default('{}', True) | from_json).keys() | list) | union(osd_ids_non_container.stdout_lines | default([])) }}"