---
- name: Ensuring config directories exist
  become: true
  file:
    path: "{{ node_config_directory }}/neutron-openvswitch-agent-fake-{{ item }}"
    state: "directory"
    recurse: yes
    mode: "0770"
  with_sequence: start=1 end={{ num_nova_fake_per_node }}
  when: inventory_hostname in groups['compute']

- name: Copying over config.json files for services
  become: true
  template:
    src: "neutron-openvswitch-agent.json.j2"
    dest: "{{ node_config_directory }}/neutron-openvswitch-agent-fake-{{ item }}/config.json"
    mode: "0660"
  with_sequence: start=1 end={{ num_nova_fake_per_node }}
  when:
    - inventory_hostname in groups['compute']
    - neutron_plugin_agent == "openvswitch"
  notify:
    - Restart fake neutron-openvswitch-agent container

- name: Copying over neutron.conf
  become: true
  vars:
    service_name: "{{ item }}"
  merge_configs:
    sources:
      - "{{ role_path }}/templates/neutron.conf.j2"
      - "{{ node_custom_config }}/global.conf"
      - "{{ node_custom_config }}/neutron.conf"
      - "{{ node_custom_config }}/neutron/{{ item }}.conf"
      - "{{ node_custom_config }}/neutron/{{ inventory_hostname }}/neutron.conf"
    dest: "{{ node_config_directory }}/neutron-openvswitch-agent-fake-{{ item }}/neutron.conf"
    mode: "0660"
  with_sequence: start=1 end={{ num_nova_fake_per_node }}
  when:
    - inventory_hostname in groups['compute']
    - neutron_plugin_agent == "openvswitch"
  notify:
    - Restart fake neutron-openvswitch-agent container

- name: Copying over openvswitch_agent.ini
  become: true
  vars:
    service_name: "{{ item }}"
  merge_configs:
    sources:
      - "{{ role_path }}/templates/openvswitch_agent.ini.j2"
      - "{{ node_custom_config }}/neutron/openvswitch_agent.ini"
      - "{{ node_custom_config }}/neutron/{{ inventory_hostname }}/openvswitch_agent.ini"
    dest: "{{ node_config_directory }}/neutron-openvswitch-agent-fake-{{ item }}/openvswitch_agent.ini"
    mode: "0660"
  with_sequence: start=1 end={{ num_nova_fake_per_node }}
  when:
    - inventory_hostname in groups['compute']
    - neutron_plugin_agent == "openvswitch"
  notify:
    - Restart fake neutron-openvswitch-agent container

- name: Checking neutron-openvswitch-agent container for nova fake node
  vars:
    neutron_openvswitch_agent: "{{ neutron_services['neutron-openvswitch-agent'] }}"
  become: true
  kolla_container:
    action: "compare_container"
    common_options: "{{ docker_common_options }}"
    name: "{{ neutron_openvswitch_agent.container_name }}"
    image: "{{ neutron_openvswitch_agent.image }}"
    privileged: "{{ neutron_openvswitch_agent.privileged | default(False) }}"
    volumes: "{{ neutron_openvswitch_agent.volumes }}"
  when:
    - kolla_action != "config"
    - enable_nova_fake | bool
    - neutron_plugin_agent == "openvswitch"
    - inventory_hostname in groups["compute"]
  with_sequence: "start=1 end={{ num_nova_fake_per_node }}"
  notify:
    - Restart fake neutron-openvswitch-agent container

- name: Ensuring config directory has correct owner and permission
  become: true
  file:
    path: "{{ node_config_directory }}/neutron-openvswitch-agent-fake-{{ item }}"
    recurse: yes
    owner: "{{ config_owner_user }}"
    group: "{{ config_owner_group }}"
  when: inventory_hostname in groups['compute']
  with_sequence: start=1 end={{ num_nova_fake_per_node }}
