---
- name: Restart designate-backend-bind9 container
  vars:
    service_name: "designate-backend-bind9"
    service: "{{ designate_services[service_name] }}"
    config_json: "{{ designate_config_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}"
    designate_backend_bind9_container: "{{ check_designate_containers.results|selectattr('item.key', 'equalto', service_name)|first }}"
  become: true
  kolla_docker:
    action: "recreate_or_restart_container"
    common_options: "{{ docker_common_options }}"
    name: "{{ service.container_name }}"
    image: "{{ service.image }}"
    volumes: "{{ service.volumes|reject('equalto', '')|list }}"
    dimensions: "{{ service.dimensions }}"
  when:
    - kolla_action != "config"
    - inventory_hostname in groups[service.group]
    - service.enabled | bool
    - config_json.changed | bool
      or designate_rndc_conf.changed | bool
      or designate_rndc_key_file.changed | bool
      or designate_named.changed | bool
      or designate_backend_bind9_container.changed | bool

- name: Restart designate-api container
  vars:
    service_name: "designate-api"
    service: "{{ designate_services[service_name] }}"
    config_json: "{{ designate_config_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}"
    designate_conf: "{{ designate_confs.results|selectattr('item.key', 'equalto', service_name)|first }}"
    policy_overwriting: "{{ designate_policy_overwriting.results|selectattr('item.key', 'equalto', service_name)|first }}"
    designate_api_container: "{{ check_designate_containers.results|selectattr('item.key', 'equalto', service_name)|first }}"
  become: true
  kolla_docker:
    action: "recreate_or_restart_container"
    common_options: "{{ docker_common_options }}"
    name: "{{ service.container_name }}"
    image: "{{ service.image }}"
    volumes: "{{ service.volumes|reject('equalto', '')|list }}"
    dimensions: "{{ service.dimensions }}"
  when:
    - kolla_action != "config"
    - inventory_hostname in groups[service.group]
    - service.enabled | bool
    - config_json.changed | bool
      or designate_conf.changed | bool
      or policy_overwriting.changed | bool
      or designate_api_container.changed | bool

- name: Restart designate-central container
  vars:
    service_name: "designate-central"
    service: "{{ designate_services[service_name] }}"
    config_json: "{{ designate_config_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}"
    designate_conf: "{{ designate_confs.results|selectattr('item.key', 'equalto', service_name)|first }}"
    policy_overwriting: "{{ designate_policy_overwriting.results|selectattr('item.key', 'equalto', service_name)|first }}"
    designate_central_container: "{{ check_designate_containers.results|selectattr('item.key', 'equalto', service_name)|first }}"
  become: true
  kolla_docker:
    action: "recreate_or_restart_container"
    common_options: "{{ docker_common_options }}"
    name: "{{ service.container_name }}"
    image: "{{ service.image }}"
    volumes: "{{ service.volumes|reject('equalto', '')|list }}"
    dimensions: "{{ service.dimensions }}"
  when:
    - kolla_action != "config"
    - inventory_hostname in groups[service.group]
    - service.enabled | bool
    - config_json.changed | bool
      or designate_conf.changed | bool
      or policy_overwriting.changed | bool
      or designate_central_container.changed | bool

- name: Restart designate-producer container
  vars:
    service_name: "designate-producer"
    service: "{{ designate_services[service_name] }}"
    config_json: "{{ designate_config_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}"
    designate_conf: "{{ designate_confs.results|selectattr('item.key', 'equalto', service_name)|first }}"
    policy_overwriting: "{{ designate_policy_overwriting.results|selectattr('item.key', 'equalto', service_name)|first }}"
    designate_producer_container: "{{ check_designate_containers.results|selectattr('item.key', 'equalto', service_name)|first }}"
  become: true
  kolla_docker:
    action: "recreate_or_restart_container"
    common_options: "{{ docker_common_options }}"
    name: "{{ service.container_name }}"
    image: "{{ service.image }}"
    volumes: "{{ service.volumes|reject('equalto', '')|list }}"
    dimensions: "{{ service.dimensions }}"
  when:
    - kolla_action != "config"
    - inventory_hostname in groups[service.group]
    - service.enabled | bool
    - config_json.changed | bool
      or designate_conf.changed | bool
      or policy_overwriting.changed | bool
      or designate_producer_container.changed | bool

- name: Restart designate-mdns container
  vars:
    service_name: "designate-mdns"
    service: "{{ designate_services[service_name] }}"
    config_json: "{{ designate_config_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}"
    designate_conf: "{{ designate_confs.results|selectattr('item.key', 'equalto', service_name)|first }}"
    policy_overwriting: "{{ designate_policy_overwriting.results|selectattr('item.key', 'equalto', service_name)|first }}"
    designate_mdns_container: "{{ check_designate_containers.results|selectattr('item.key', 'equalto', service_name)|first }}"
  become: true
  kolla_docker:
    action: "recreate_or_restart_container"
    common_options: "{{ docker_common_options }}"
    name: "{{ service.container_name }}"
    image: "{{ service.image }}"
    volumes: "{{ service.volumes|reject('equalto', '')|list }}"
    dimensions: "{{ service.dimensions }}"
  when:
    - kolla_action != "config"
    - inventory_hostname in groups[service.group]
    - service.enabled | bool
    - config_json.changed | bool
      or designate_conf.changed | bool
      or policy_overwriting.changed | bool
      or designate_mdns_container.changed | bool

- name: Restart designate-worker container
  vars:
    service_name: "designate-worker"
    service: "{{ designate_services[service_name] }}"
    config_json: "{{ designate_config_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}"
    designate_conf: "{{ designate_confs.results|selectattr('item.key', 'equalto', service_name)|first }}"
    policy_overwriting: "{{ designate_policy_overwriting.results|selectattr('item.key', 'equalto', service_name)|first }}"
    designate_worker_container: "{{ check_designate_containers.results|selectattr('item.key', 'equalto', service_name)|first }}"
  become: true
  kolla_docker:
    action: "recreate_or_restart_container"
    common_options: "{{ docker_common_options }}"
    name: "{{ service.container_name }}"
    image: "{{ service.image }}"
    volumes: "{{ service.volumes|reject('equalto', '')|list }}"
    dimensions: "{{ service.dimensions }}"
  when:
    - kolla_action != "config"
    - inventory_hostname in groups[service.group]
    - service.enabled | bool
    - config_json.changed | bool
      or designate_conf.changed | bool
      or designate_rndc_conf.changed | bool
      or designate_rndc_key_file.changed | bool
      or policy_overwriting.changed | bool
      or designate_worker_container.changed | bool

- name: Restart designate-sink container
  vars:
    service_name: "designate-sink"
    service: "{{ designate_services[service_name] }}"
    config_json: "{{ designate_config_jsons.results|selectattr('item.key', 'equalto', service_name)|first }}"
    designate_conf: "{{ designate_confs.results|selectattr('item.key', 'equalto', service_name)|first }}"
    policy_overwriting: "{{ designate_policy_overwriting.results|selectattr('item.key', 'equalto', service_name)|first }}"
    designate_sink_container: "{{ check_designate_containers.results|selectattr('item.key', 'equalto', service_name)|first }}"
  become: true
  kolla_docker:
    action: "recreate_or_restart_container"
    common_options: "{{ docker_common_options }}"
    name: "{{ service.container_name }}"
    image: "{{ service.image }}"
    volumes: "{{ service.volumes|reject('equalto', '')|list }}"
    dimensions: "{{ service.dimensions }}"
  when:
    - kolla_action != "config"
    - inventory_hostname in groups[service.group]
    - service.enabled | bool
    - config_json.changed | bool
      or designate_conf.changed | bool
      or policy_overwriting.changed | bool
      or designate_sink_container.changed | bool
