diff options
author | Jan Chaloupka <jchaloup@redhat.com> | 2017-04-04 14:57:12 +0200 |
---|---|---|
committer | Jan Chaloupka <jchaloup@redhat.com> | 2017-06-17 10:03:13 +0200 |
commit | 0fc47e5030577479be08126818dd2b5b5ccdf995 (patch) | |
tree | 3c3aacc376d8c03b91d93d60acd643b64474de5a /roles/etcd_migrate/tasks/check_cluster_status.yml | |
parent | 1f36c9f6cbd9bc44e16ab2e0eb13aa95761c2e11 (diff) | |
download | openshift-0fc47e5030577479be08126818dd2b5b5ccdf995.tar.gz openshift-0fc47e5030577479be08126818dd2b5b5ccdf995.tar.bz2 openshift-0fc47e5030577479be08126818dd2b5b5ccdf995.tar.xz openshift-0fc47e5030577479be08126818dd2b5b5ccdf995.zip |
Introduce etcd migrate role
Diffstat (limited to 'roles/etcd_migrate/tasks/check_cluster_status.yml')
-rw-r--r-- | roles/etcd_migrate/tasks/check_cluster_status.yml | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/roles/etcd_migrate/tasks/check_cluster_status.yml b/roles/etcd_migrate/tasks/check_cluster_status.yml new file mode 100644 index 000000000..90fe385c1 --- /dev/null +++ b/roles/etcd_migrate/tasks/check_cluster_status.yml @@ -0,0 +1,32 @@ +--- +# etcd_ip originates from etcd_common role +- name: Check cluster status + command: > + etcdctl --cert /etc/etcd/peer.crt --key /etc/etcd/peer.key --cacert /etc/etcd/ca.crt --endpoints 'https://{{ etcd_peer }}:2379' -w json endpoint status + environment: + ETCDCTL_API: 3 + register: l_etcd_cluster_status + +- name: Retrieve raftIndex + set_fact: + etcd_member_raft_index: "{{ (l_etcd_cluster_status.stdout | from_json)[0]['Status']['raftIndex'] }}" + +- block: + # http://docs.ansible.com/ansible/playbooks_filters.html#extracting-values-from-containers + - name: Group all raftIndices into a list + set_fact: + etcd_members_raft_indices: "{{ groups['oo_etcd_to_config'] | map('extract', hostvars, 'etcd_member_raft_index') | list | unique }}" + + - name: Check the minimum and the maximum of raftIndices is at most 1 + set_fact: + etcd_members_raft_indices_diff: "{{ ((etcd_members_raft_indices | max | int) - (etcd_members_raft_indices | min | int)) | int }}" + + - debug: + msg: "Raft indices difference: {{ etcd_members_raft_indices_diff }}" + + when: inventory_hostname in groups.oo_etcd_to_config[0] + +# The cluster raft status is ok if the difference of the max and min raft index is at most 1 +- name: capture the status + set_fact: + l_etcd_cluster_status_ok: "{{ hostvars[groups.oo_etcd_to_config[0]]['etcd_members_raft_indices_diff'] | int < 2 }}" |