From: Dimitri Savineau Date: Tue, 15 Dec 2020 18:52:43 +0000 (-0500) Subject: ceph-config: fix ceph-volume lvm batch report X-Git-Tag: v4.0.42~14 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=24a5b1bbb59b2a63f544e07500749445772be247;p=ceph-ansible.git ceph-config: fix ceph-volume lvm batch report Since the major ceph-volume lvm batch refactoring, the report value is different. Before the refact, the report was a dict with the OSDs list to be created under the "osds" key. After the refact, the report is a list of dict. Signed-off-by: Dimitri Savineau (cherry picked from commit 827b23353ff389660f393cb36fb36540c362e8cf) --- diff --git a/roles/ceph-config/tasks/main.yml b/roles/ceph-config/tasks/main.yml index ef16fc317..98172c93a 100644 --- a/roles/ceph-config/tasks/main.yml +++ b/roles/ceph-config/tasks/main.yml @@ -58,15 +58,22 @@ CEPH_CONTAINER_BINARY: "{{ container_binary }}" PYTHONIOENCODING: utf-8 when: _devices | default([]) | length > 0 - when: - - devices | default([]) | length > 0 - - name: set_fact num_osds from the output of 'ceph-volume lvm batch --report' - set_fact: - num_osds: "{{ ((lvm_batch_report.stdout | default('{}') | from_json).osds | default([]) | length | int) + (_rejected_devices | default([]) | length | int) }}" + - name: set_fact num_osds from the output of 'ceph-volume lvm batch --report' (legacy report) + set_fact: + num_osds: "{{ ((lvm_batch_report.stdout | default('{}') | from_json).osds | default([]) | length | int) + (_rejected_devices | default([]) | length | int) }}" + when: + - (lvm_batch_report.stdout | default('{}') | from_json) is mapping + - (lvm_batch_report.stdout | default('{}') | from_json).changed | default(true) | bool + + - name: set_fact num_osds from the output of 'ceph-volume lvm batch --report' (new report) + set_fact: + num_osds: "{{ ((lvm_batch_report.stdout | default('{}') | from_json) | default([]) | length | int) + (_rejected_devices | default([]) | length | int) }}" + when: + - (lvm_batch_report.stdout | default('{}') | from_json) is not mapping + - (lvm_batch_report.stdout | default('{}') | from_json).changed | default(true) | bool when: - devices | default([]) | length > 0 - - (lvm_batch_report.stdout | default('{}') | from_json).changed | default(true) | bool - name: run 'ceph-volume lvm list' to see how many osds have already been created ceph_volume: