---
- name: Checking the api_interface is present
  fail: "msg='Please check the api_interface property - interface {{ api_interface }} not found'"
  when: api_interface not in ansible_interfaces

- name: Checking the api_interface is active
  fail: "msg='Please check the api_interface settings - interface {{ api_interface }} is not active'"
  when: hostvars[inventory_hostname]['ansible_' + api_interface]['active'] != True

- name: Checking the api_interface configuration
  fail: "msg='Please check the api_interface settings - interface {{ api_interface }} configuration missing'"
  when: hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4'] is not defined

- name: Checking the api_interface ip address configuration
  fail: "msg='Please check the api_interface settings - interface {{ api_interface }} ip address problem'"
  when: hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] is not defined

- name: Checking if kolla_internal_vip_address and kolla_external_vip_address are not pingable from any node
  command: ping -c 3 {{ item }}
  register: ping_output
  changed_when: false
  with_items:
    - "{{ kolla_internal_vip_address }}"
    - "{{ kolla_external_vip_address }}"
  failed_when: ping_output.rc != 1
  when: enable_haproxy | bool

- name: Checking if kolla_internal_vip_address is in the same network as api_interface on all nodes
  command: ip -4 -o addr show dev {{ api_interface }}
  register: ip_addr_output
  changed_when: false
  failed_when: "'169.254.' not in kolla_internal_vip_address and \
                kolla_internal_vip_address | ipaddr(ip_addr_output.stdout.split()[3]) is none"
  when: enable_haproxy | bool

- name: Checking free port for HAProxy stats
  wait_for:
    host: "{{ kolla_internal_vip_address }}"
    port: "{{ haproxy_stats_port }}"
    connect_timeout: 1
    state: stopped
  when:
    - enable_haproxy | bool
    - inventory_hostname in groups['haproxy']

- name: Checking free port for Rsync
  wait_for:
    host: "{{ hostvars[inventory_hostname]['ansible_' + storage_interface]['ipv4']['address'] }}"
    port: "873"
    connect_timeout: 1
    state: stopped
  when:
    - inventory_hostname in groups['swift-object-server']
    - enable_swift | bool