---
- name: Ensuring config directories exist
  file:
    path: "{{ node_config_directory }}/{{ project_name }}"
    state: "directory"
    owner: "{{ config_owner_user }}"
    group: "{{ config_owner_group }}"
    mode: "0770"
  become: true
  when:
    - inventory_hostname in groups[item.value.group]
    - item.value.enabled | bool
  with_dict: "{{ rabbitmq_services }}"

- name: Copying over config.json files for services
  template:
    src: "{{ item.key }}.json.j2"
    dest: "{{ node_config_directory }}/{{ project_name }}/config.json"
    mode: "0660"
  become: true
  when:
    - inventory_hostname in groups[item.value.group]
    - item.value.enabled | bool
  with_dict: "{{ rabbitmq_services }}"
  notify:
    - Restart rabbitmq container

- name: Copying over rabbitmq-env.conf
  become: true
  vars:
    service: "{{ rabbitmq_services['rabbitmq'] }}"
  template:
    src: "{{ item }}"
    dest: "{{ node_config_directory }}/{{ project_name }}/rabbitmq-env.conf"
    mode: "0660"
  with_first_found:
    - "{{ node_custom_config }}/rabbitmq/{{ inventory_hostname }}/rabbitmq-env.conf"
    - "{{ node_custom_config }}/rabbitmq/rabbitmq-env.conf"
    - "rabbitmq-env.conf.j2"
  when:
    - inventory_hostname in groups[service.group]
    - service.enabled | bool
  notify:
    - Restart rabbitmq container

- name: Copying over rabbitmq.conf
  become: true
  vars:
    service: "{{ rabbitmq_services['rabbitmq'] }}"
  template:
    src: "{{ item }}"
    dest: "{{ node_config_directory }}/{{ project_name }}/rabbitmq.conf"
    mode: "0660"
  with_first_found:
    - "{{ node_custom_config }}/rabbitmq/{{ inventory_hostname }}/rabbitmq.conf"
    - "{{ node_custom_config }}/rabbitmq/rabbitmq.conf"
    - "rabbitmq.conf.j2"
  when:
    - inventory_hostname in groups[service.group]
    - service.enabled | bool
  notify:
    - Restart rabbitmq container

- name: Copying over erl_inetrc
  become: true
  vars:
    service: "{{ rabbitmq_services['rabbitmq'] }}"
  template:
    src: "{{ item }}"
    dest: "{{ node_config_directory }}/{{ project_name }}/erl_inetrc"
    mode: "0660"
  with_first_found:
    - "{{ node_custom_config }}/rabbitmq/{{ inventory_hostname }}/erl_inetrc"
    - "{{ node_custom_config }}/rabbitmq/erl_inetrc"
    - "erl_inetrc.j2"
  when:
    - inventory_hostname in groups[service.group]
    - service.enabled | bool
  notify:
    - Restart rabbitmq container

- name: Copying over advanced.config
  become: true
  vars:
    service: "{{ rabbitmq_services['rabbitmq'] }}"
  template:
    src: "{{ item }}"
    dest: "{{ node_config_directory }}/{{ project_name }}/advanced.config"
    mode: "0660"
  with_first_found:
    - "{{ node_custom_config }}/rabbitmq/{{ inventory_hostname }}/advanced.config"
    - "{{ node_custom_config }}/rabbitmq/advanced.config"
    - "advanced.config.j2"
  when:
    - inventory_hostname in groups[service.group]
    - service.enabled | bool
  notify:
    - Restart rabbitmq container

- name: Copying over definitions.json
  become: true
  vars:
    service: "{{ rabbitmq_services['rabbitmq'] }}"
  template:
    src: "{{ item }}"
    dest: "{{ node_config_directory }}/{{ project_name }}/definitions.json"
    mode: "0660"
  with_first_found:
    - "{{ node_custom_config }}/rabbitmq/{{ inventory_hostname }}/definitions.json"
    - "{{ node_custom_config }}/rabbitmq/definitions.json"
    - "definitions.json.j2"
  when:
    - inventory_hostname in groups[service.group]
    - service.enabled | bool
  notify:
    - Restart rabbitmq container

- name: Copying over enabled_plugins
  become: true
  vars:
    service: "{{ rabbitmq_services['rabbitmq'] }}"
  template:
    src: "{{ item }}"
    dest: "{{ node_config_directory }}/{{ project_name }}/enabled_plugins"
    mode: "0660"
  with_first_found:
    - "{{ node_custom_config }}/rabbitmq/{{ inventory_hostname }}/enabled_plugins"
    - "{{ node_custom_config }}/rabbitmq/enabled_plugins"
    - "enabled_plugins.j2"
  when:
    - inventory_hostname in groups[service.group]
    - service.enabled | bool
  notify:
    - Restart rabbitmq container

- include_tasks: copy-certs.yml
  when: rabbitmq_enable_tls | bool
