---
- import_role:
    name: service-precheck
  vars:
    service_precheck_services: "{{ zun_services }}"
    service_name: "{{ project_name }}"

- name: Get container facts
  become: true
  kolla_container_facts:
    action: get_containers
    container_engine: "{{ kolla_container_engine }}"
    name:
      - zun_api
      - zun_wsproxy
      - zun_cni_daemon
  check_mode: false
  register: container_facts

- name: Checking free port for Zun API
  wait_for:
    host: "{{ api_interface_address }}"
    port: "{{ zun_api_port }}"
    connect_timeout: 1
    timeout: 1
    state: stopped
  when:
    - container_facts.containers['zun_api'] is not defined
    - inventory_hostname in groups['zun-api']

- name: Checking free port for Zun WSproxy
  wait_for:
    host: "{{ api_interface_address }}"
    port: "{{ zun_wsproxy_port }}"
    connect_timeout: 1
    timeout: 1
    state: stopped
  when:
    - container_facts.containers['zun_wsproxy'] is not defined
    - inventory_hostname in groups['zun-wsproxy']

- name: Checking free port for zun-cni-daemon
  wait_for:
    host: "{{ api_interface_address }}"
    port: "{{ zun_cni_daemon_port }}"
    connect_timeout: 1
    timeout: 1
    state: stopped
  when:
    - container_facts.containers['zun_cni_daemon'] is not defined
    - inventory_hostname in groups['zun-cni-daemon']

- name: Ensure kuryr enabled for zun
  assert:
    that: enable_kuryr | bool
    fail_msg: "kuryr is required but not enabled"
  run_once: True
  when:
    - enable_zun | bool
