]> git.apps.os.sepia.ceph.com Git - ceph-ansible.git/commitdiff
rolling update: skip pg check if num_pgs = 0 1795/head
authorSébastien Han <seb@redhat.com>
Wed, 23 Aug 2017 10:31:15 +0000 (12:31 +0200)
committerSébastien Han <seb@redhat.com>
Thu, 24 Aug 2017 06:50:49 +0000 (08:50 +0200)
In our test case we don't have any pgs, thus the check fails. The check
always returns an empty array, which makes the comparaison failing.

Signed-off-by: Sébastien Han <seb@redhat.com>
infrastructure-playbooks/rolling_update.yml

index 9ddd4a77c571ea0a2c7ce6a560c097b35f58fff5..e54012f5249dc03a09707817039e3ec15982b94b 100644 (file)
         - ansible_service_mgr == 'systemd'
         - containerized_deployment
 
+    - name: get pg num
+      shell: |
+        ceph --cluster {{ cluster }} -s -f json | python -c 'import sys, json; print(json.load(sys.stdin)["pgmap"]["num_pgs"])'
+      delegate_to: "{{ groups[mon_group_name][0] }}"
+      register: num_pgs
+      when:
+        - not containerized_deployment
+
     - name: waiting for clean pgs...
       shell: |
         test "[""$(ceph --cluster {{ cluster }} -s -f json | python -c 'import sys, json; print(json.load(sys.stdin)["pgmap"]["num_pgs"])')""]" = "$(ceph --cluster {{ cluster }} -s -f json | python -c 'import sys, json; print [ i["count"] for i in json.load(sys.stdin)["pgmap"]["pgs_by_state"] if i["state_name"] == "active+clean"]')"
       retries: "{{ health_osd_check_retries }}"
       delay: "{{ health_osd_check_delay }}"
       delegate_to: "{{ groups[mon_group_name][0] }}"
-      when: not containerized_deployment
+      when:
+        - not containerized_deployment
+        - num_pgs.stdout != "0"
+
+    - name: container - get pg num
+      shell: |
+        docker exec ceph-mon-{{ hostvars[groups[mon_group_name][0]]['ansible_hostname'] }} ceph --cluster {{ cluster }} -s -f json | python -c 'import sys, json; print(json.load(sys.stdin)["pgmap"]["num_pgs"])'
+      delegate_to: "{{ groups[mon_group_name][0] }}"
+      register: container_num_pgs
+      when:
+        - containerized_deployment
 
     - name: container - waiting for clean pgs...
       shell: |
       retries: "{{ health_osd_check_retries }}"
       delay: "{{ health_osd_check_delay }}"
       delegate_to: "{{ groups[mon_group_name][0] }}"
-      when: containerized_deployment
+      when:
+        - containerized_deployment
+        - container_num_pgs.stdout != "0"
 
     - name: unset osd flags
       command: ceph osd unset {{ item }} --cluster {{ cluster }}