---
- name: Gather and set facts for node hosts
  hosts: oo_nodes_to_config
  roles:
  - openshift_facts
  tasks:
  - shell:
      getent ahostsv4 {{ openshift.common.hostname }} | head -n 1 | awk '{ print $1 }'
    register: lookupip
    changed_when: false
    failed_when: false
  - name: Warn user about bad openshift_hostname values
    pause:
      prompt: "The hostname \"{{ openshift.common.hostname }}\" for \"{{ ansible_nodename }}\" doesn't resolve to an ip address owned by this host. Please set openshift_hostname variable to a hostname that when resolved on the host in question resolves to an IP address matching an interface on this host. This host will fail liveness checks for pods utilizing hostPorts, press ENTER to continue or CTRL-C to abort."
      seconds: "{{ 10 if openshift_override_hostname_check | default(false) | bool else omit }}"
    when: lookupip.stdout not in ansible_all_ipv4_addresses

---
- name: Gather and set facts for node hosts
  hosts: oo_nodes_to_config
  roles:
  - openshift_facts
  tasks:
  - shell:
      getent ahostsv4 {{ openshift.common.hostname }} | head -n 1 | awk '{ print $1 }'
    register: lookupip
    changed_when: false
    failed_when: false
  - name: Warn user about bad openshift_hostname values
    pause:
      prompt: "The hostname \"{{ openshift.common.hostname }}\" for \"{{ ansible_nodename }}\" doesn't resolve to an ip address owned by this host. Please set openshift_hostname variable to a hostname that when resolved on the host in question resolves to an IP address matching an interface on this host. This host will fail liveness checks for pods utilizing hostPorts, press ENTER to continue or CTRL-C to abort."
      seconds: "{{ 10 if openshift_override_hostname_check | default(false) | bool else omit }}"
    when:
    - lookupip.stdout != '127.0.0.1'
    - lookupip.stdout not in ansible_all_ipv4_addresses

Allow a hostname to resolve to 127.0.0.1 during validation
Allow a hostname to resolve to 127.0.0.1 during validation

127.0.0.1 does not end up in "ansible_all_ipv4_addresses" and should
be considered valid.
For example, a hostname could be resolving to a public address that is
not bound to the actual server.
Or the host could resolve to 127.0.0.1 from the perspective of
the host since the hostname is set up in /etc/hosts.
