mirror of https://github.com/ceph/ceph-ansible.git
update: nicer way to wait for clean pgs
More comprhensive and friendly to read. Signed-off-by: Sébastien Han <seb@redhat.com>pull/1958/head
parent
0010979412
commit
68f1f99ee9
|
@ -273,46 +273,31 @@
|
||||||
- ansible_service_mgr == 'systemd'
|
- ansible_service_mgr == 'systemd'
|
||||||
- containerized_deployment
|
- 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...
|
- name: waiting for clean pgs...
|
||||||
shell: |
|
command: ceph --cluster "{{ cluster }}" -s --format json
|
||||||
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"]')"
|
register: ceph_health_post
|
||||||
register: result
|
until: >
|
||||||
until: result.rc == 0
|
((ceph_health_post.stdout | from_json).pgmap.pgs_by_state | length) == 1
|
||||||
|
and
|
||||||
|
(ceph_health_post.stdout | from_json).pgmap.pgs_by_state.0.state_name == "active+clean"
|
||||||
|
delegate_to: "{{ groups[mon_group_name][0] }}"
|
||||||
retries: "{{ health_osd_check_retries }}"
|
retries: "{{ health_osd_check_retries }}"
|
||||||
delay: "{{ health_osd_check_delay }}"
|
delay: "{{ health_osd_check_delay }}"
|
||||||
delegate_to: "{{ groups[mon_group_name][0] }}"
|
|
||||||
when:
|
when:
|
||||||
- not containerized_deployment
|
- 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...
|
- name: container - waiting for clean pgs...
|
||||||
shell: |
|
command: "docker exec ceph-mon-{{ hostvars[groups[mon_group_name][0]]['ansible_hostname'] }} ceph --cluster "{{ cluster }}" -s --format json"
|
||||||
test "[""$(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"])')""]" = "$(docker exec ceph-mon-{{ hostvars[groups[mon_group_name][0]]['ansible_hostname'] }} 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"]')"
|
register: ceph_health_post
|
||||||
register: result
|
until: >
|
||||||
until: result.rc == 0
|
((ceph_health_post.stdout | from_json).pgmap.pgs_by_state | length) == 1
|
||||||
|
and
|
||||||
|
(ceph_health_post.stdout | from_json).pgmap.pgs_by_state.0.state_name == "active+clean"
|
||||||
|
delegate_to: "{{ groups[mon_group_name][0] }}"
|
||||||
retries: "{{ health_osd_check_retries }}"
|
retries: "{{ health_osd_check_retries }}"
|
||||||
delay: "{{ health_osd_check_delay }}"
|
delay: "{{ health_osd_check_delay }}"
|
||||||
delegate_to: "{{ groups[mon_group_name][0] }}"
|
|
||||||
when:
|
when:
|
||||||
- containerized_deployment
|
- not containerized_deployment
|
||||||
- container_num_pgs.stdout != "0"
|
|
||||||
|
|
||||||
|
|
||||||
- name: unset osd flags
|
- name: unset osd flags
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue