---
- name: Creating Cloudkitty database
  become: true
  kolla_toolbox:
    container_engine: "{{ kolla_container_engine }}"
    module_name: mysql_db
    module_args:
      login_host: "{{ database_address }}"
      login_port: "{{ database_port }}"
      login_user: "{{ cloudkitty_database_shard_root_user }}"
      login_password: "{{ database_password }}"
      name: "{{ cloudkitty_database_name }}"
  run_once: True
  delegate_to: "{{ groups['cloudkitty-api'][0] }}"
  when:
    - not use_preconfigured_databases | bool

- name: Creating Cloudkitty database user and setting permissions
  become: true
  kolla_toolbox:
    container_engine: "{{ kolla_container_engine }}"
    module_name: mysql_user
    module_args:
      login_host: "{{ database_address }}"
      login_port: "{{ database_port }}"
      login_user: "{{ cloudkitty_database_shard_root_user }}"
      login_password: "{{ database_password }}"
      name: "{{ cloudkitty_database_user }}"
      password: "{{ cloudkitty_database_password }}"
      host: "%"
      priv: "{{ cloudkitty_database_name }}.*:ALL"
      append_privs: "yes"
  run_once: True
  delegate_to: "{{ groups['cloudkitty-api'][0] }}"
  when:
    - not use_preconfigured_databases | bool

- name: Creating Cloudkitty influxdb database
  become: true
  kolla_toolbox:
    container_engine: "{{ kolla_container_engine }}"
    module_name: influxdb_database
    module_args:
      hostname: "{{ influxdb_address }}"
      port: "{{ influxdb_http_port }}"
      ssl: "{{ cloudkitty_influxdb_use_ssl | bool }}"
      database_name: "{{ cloudkitty_influxdb_name }}"
      # The influxdb_database module and the InfluxDB 1.x Python client don't
      # support specifying a CA certificate file.
      validate_certs: False
  run_once: True
  delegate_to: "{{ groups['cloudkitty-api'][0] }}"
  when: cloudkitty_storage_backend == 'influxdb'

- name: Checking if Cloudkitty elasticsearch index exists
  become: true
  kolla_toolbox:
    container_engine: "{{ kolla_container_engine }}"
    module_name: uri
    module_args:
      url: "{{ cloudkitty_elasticsearch_url }}/{{ cloudkitty_elasticsearch_index_name }}"
      status_code: 200, 404
  run_once: true
  delegate_to: "{{ groups['cloudkitty-api'][0] }}"
  register: cloudkitty_index
  when: cloudkitty_storage_backend == 'elasticsearch'

- name: Creating Cloudkitty elasticsearch index
  become: true
  kolla_toolbox:
    container_engine: "{{ kolla_container_engine }}"
    module_name: uri
    module_args:
      url: "{{ cloudkitty_elasticsearch_url }}/{{ cloudkitty_elasticsearch_index_name }}"
      method: PUT
      status_code: 200
      return_content: yes
      body: |
        {}
      body_format: json
  run_once: True
  delegate_to: "{{ groups['cloudkitty-api'][0] }}"
  when:
    - cloudkitty_storage_backend == 'elasticsearch'
    - cloudkitty_index.get('status') != 200

- import_tasks: bootstrap_service.yml
