]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ansible.git/commitdiff
ceph-config: fix ceph-volume lvm batch report
authorDimitri Savineau <dsavinea@redhat.com>
Tue, 15 Dec 2020 18:52:43 +0000 (13:52 -0500)
committerGuillaume Abrioux <gabrioux@redhat.com>
Tue, 15 Dec 2020 20:19:04 +0000 (21:19 +0100)
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 <dsavinea@redhat.com>
roles/ceph-config/tasks/main.yml

index faffcc3d71ce82f993f02f3f1c27835a8e081eef..8e7e3ff40341711cd9c1a9c0313867633890c4cd 100644 (file)
           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: