]> git.apps.os.sepia.ceph.com Git - ceph-ansible.git/commitdiff
ceph-config: use 'lvm list' to find num_osds for an existing cluster
authorAndrew Schoen <aschoen@redhat.com>
Tue, 25 Sep 2018 20:25:40 +0000 (15:25 -0500)
committerSébastien Han <seb@redhat.com>
Tue, 9 Oct 2018 14:09:50 +0000 (10:09 -0400)
This makes finding num_osds idempotent for clusters that were deployed
using 'lvm batch'.

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
roles/ceph-config/tasks/main.yml

index 9df56e44b035e388502e144f3178af6e16e7cb52..2f7b8f5877e48ebe7aba492e67f402196dc39b79 100644 (file)
@@ -38,6 +38,7 @@
         report: true
         action: "batch"
       register: lvm_batch_report
+      failed_when: false
       environment:
         CEPH_VOLUME_DEBUG: 1
       when:
       when:
         - devices | default([]) | length > 0
         - osd_scenario == 'lvm'
+        - (lvm_batch_report.stdout | from_json).changed
+
+    - name: run 'ceph-volume lvm list' to see how many osds have already been created
+      ceph_volume:
+        action: "list"
+      register: lvm_list
+      environment:
+        CEPH_VOLUME_DEBUG: 1
+      when:
+        - devices | default([]) | length > 0
+        - osd_scenario == 'lvm'
+        - not (lvm_batch_report.stdout | from_json).changed
+
+    - name: set_fact num_osds from the output of 'ceph-volume lvm list'
+      set_fact:
+        num_osds: "{{ lvm_list.stdout | from_json | length | int }}"
+      when:
+        - devices | default([]) | length > 0
+        - osd_scenario == 'lvm'
+        - not (lvm_batch_report.stdout | from_json).changed
 
     when:
       - inventory_hostname in groups.get(osd_group_name, [])