---
- name: Get currently-deployed etcd version
  command: "{{ bin_dir }}/etcd --version"
  register: etcd_current_host_version
  # There's a chance this play could run before etcd is installed at all
  # TODO: figure out whether this happens. "A chance" is not enough information
  ignore_errors: true
  when: etcd_cluster_setup

- name: Restart etcd if necessary
  command: /bin/true
  notify: Restart etcd
  when:
    - etcd_cluster_setup
    - etcd_version not in etcd_current_host_version.stdout | default('')

- name: Restart etcd-events if necessary
  command: /bin/true
  notify: Restart etcd-events
  when:
    - etcd_events_cluster_setup
    - etcd_version not in etcd_current_host_version.stdout | default('')

- name: Get currently-deployed etcd version as x.y.z format
  set_fact:
    etcd_current_version: "{{ (etcd_current_host_version.stdout | regex_search('etcd Version: ([0-9]+\\.[0-9]+\\.[0-9]+)', '\\1'))[0] | default('') }}"
  when: etcd_cluster_setup

- name: Cleanup v2 store data
  import_tasks: clean_v2_store.yml

- name: Install | Copy etcd binary from download dir
  copy:
    src: "{{ local_release_dir }}/etcd-v{{ etcd_version }}-linux-{{ host_architecture }}/{{ item }}"
    dest: "{{ bin_dir }}/{{ item }}"
    mode: "0755"
    remote_src: true
  with_items:
    - etcd
  when: etcd_cluster_setup
