---
- name: Ensuring config directory exists
  vars:
    services_need_directory:
      - "cinder-volume"
      - "cinder-backup"
  file:
    path: "{{ node_config_directory }}/{{ item.key }}"
    state: "directory"
    owner: "{{ config_owner_user }}"
    group: "{{ config_owner_group }}"
    mode: "0770"
  become: true
  when:
    - item.value.enabled | bool
    - inventory_hostname in groups[item.value.group]
    - item.key in services_need_directory
  with_dict: "{{ cinder_services }}"

- name: Copying over ceph.conf(s)
  vars:
    services_need_config:
      - "cinder-volume"
      - "cinder-backup"
  merge_configs:
    sources:
      - "{{ role_path }}/../ceph/templates/ceph.conf.j2"
      - "{{ node_custom_config }}/ceph.conf"
      - "{{ node_custom_config }}/ceph/{{ inventory_hostname }}/ceph.conf"
    dest: "{{ node_config_directory }}/{{ item.key }}/ceph.conf"
    mode: "0660"
  become: true
  when:
    - item.value.enabled | bool
    - inventory_hostname in groups[item.value.group]
    - item.key in services_need_config
  with_dict: "{{ cinder_services }}"

- include: ../../ceph_pools.yml
  vars:
    pool_name: "{{ cinder_pool_name }}"
    pool_type: "{{ cinder_pool_type }}"
    cache_mode: "{{ cinder_cache_mode }}"
    pool_pg_num: "{{ cinder_pool_pg_num }}"
    pool_pgp_num: "{{ cinder_pool_pgp_num }}"
    pool_application: "rbd"

- include: ../../ceph_pools.yml
  vars:
    pool_name: "{{ cinder_backup_pool_name }}"
    pool_type: "{{ cinder_backup_pool_type }}"
    cache_mode: "{{ cinder_backup_cache_mode }}"
    pool_pg_num: "{{ cinder_backup_pool_pg_num }}"
    pool_pgp_num: "{{ cinder_backup_pool_pgp_num }}"
    pool_application: "rbd"

- name: Pulling cephx keyring for cinder
  kolla_ceph_keyring:
    name: client.cinder
    caps: "{{ ceph_client_cinder_keyring_caps }}"
  register: cephx_key_cinder
  delegate_to: "{{ groups['ceph-mon'][0] }}"
  run_once: True

- name: Pulling cephx keyring for cinder-backup
  kolla_ceph_keyring:
    name: client.cinder-backup
    caps: "{{ ceph_client_cinder_backup_keyring_caps }}"
  register: cephx_key_cinder_backup
  delegate_to: "{{ groups['ceph-mon'][0] }}"
  run_once: True

- name: Pushing cephx keyring
  copy:
    content: |
      [client.{{ item.key_name }}]
          key = {{ item.key }}
    dest: "{{ node_config_directory }}/{{ item.service_name }}/ceph.client.{{ item.key_name }}.keyring"
    mode: "0600"
  become: true
  with_items:
    - { service_name: "cinder-volume", key_name: "cinder", key: "{{ cephx_key_cinder.keyring.key }}" }
    - { service_name: "cinder-backup", key_name: "cinder", key: "{{ cephx_key_cinder.keyring.key }}" }
    - { service_name: "cinder-backup", key_name: "cinder-backup", key: "{{ cephx_key_cinder_backup.keyring.key }}" }
  when:
    - inventory_hostname in groups[item.service_name]
    - cinder_services[item.service_name].enabled | bool
