---
- name: Fetching Ceph keyrings
  command: docker exec ceph_mon fetch_ceph_keys.py
  register: ceph_files_json
  changed_when: (ceph_files_json.stdout | from_json).changed
  failed_when: (ceph_files_json.stdout | from_json).failed
  delegate_to: "{{ delegate_host }}"
  run_once: True

- name: Reading json from variable
  set_fact:
    ceph_files: "{{ (ceph_files_json.stdout | from_json) }}"

- name: Pushing Ceph keyring for OSDs
  become: true
  bslurp:
    src: "{{ item.content }}"
    dest: "{{ node_config_directory }}/ceph-osd/{{ item.filename }}"
    sha1: "{{ item.sha1 }}"
    mode: 0600
  with_items:
    - "{{ ceph_files['ceph.client.admin.keyring'] }}"
  when: inventory_hostname in groups['ceph-osd']

- name: Pushing Ceph keyrings for Mons
  become: true
  bslurp:
    src: "{{ item.content }}"
    dest: "{{ node_config_directory }}/ceph-mon/{{ item.filename }}"
    sha1: "{{ item.sha1 }}"
    mode: 0600
  with_items:
    - "{{ ceph_files['ceph.client.admin.keyring'] }}"
    - "{{ ceph_files['ceph.client.mon.keyring'] }}"
    - "{{ ceph_files['ceph.client.radosgw.keyring'] }}"
    - "{{ ceph_files['ceph.monmap'] }}"
  when: inventory_hostname in groups['ceph-mon']

- name: Pushing Ceph keyrings for Mgrs
  become: true
  bslurp:
    src: "{{ item.content }}"
    dest: "{{ node_config_directory }}/ceph-mgr/{{ item.filename }}"
    sha1: "{{ item.sha1 }}"
    mode: 0600
  with_items:
    - "{{ ceph_files['ceph.client.admin.keyring'] }}"
  when: inventory_hostname in groups['ceph-mgr']

- name: Pushing Ceph keyrings for RGWs
  become: true
  bslurp:
    src: "{{ item.content }}"
    dest: "{{ node_config_directory }}/ceph-rgw/{{ item.filename }}"
    sha1: "{{ item.sha1 }}"
    mode: 0600
  with_items:
    - "{{ ceph_files['ceph.client.admin.keyring'] }}"
    - "{{ ceph_files['ceph.client.radosgw.keyring'] }}"
  when: inventory_hostname in groups['ceph-rgw']
