validate: add checks for interfaces

Check if the interface provided:

* exists in the gathered facts (thus on the system)
* is active
* has an IP address (depending on ip_version )

Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1600227
Signed-off-by: Sébastien Han <seb@redhat.com>
pull/2928/head
Sébastien Han 2018-07-23 16:02:43 +02:00 committed by Guillaume Abrioux
parent b3266c5be2
commit 235d1b3f55
3 changed files with 69 additions and 1 deletions

View File

@ -0,0 +1,26 @@
---
- name: "fail if {{ monitor_interface }} does not exist on {{ inventory_hostname }}"
fail:
msg: "{{ monitor_interface }} does not exist on {{ inventory_hostname }}"
when:
- monitor_interface not in ansible_interfaces
- name: "fail if {{ monitor_interface }} is not active on {{ inventory_hostname }}"
fail:
msg: "{{ monitor_interface }} is not active on {{ inventory_hostname }}"
when:
- not hostvars[inventory_hostname]['ansible_' + monitor_interface]['active']
- name: "fail if {{ monitor_interface }} does not have any ip v4 address on {{ inventory_hostname }}"
fail:
msg: "{{ monitor_interface }} does not have any IPv4 address on {{ inventory_hostname }}"
when:
- ip_version == "ipv4"
- hostvars[inventory_hostname]['ansible_' + monitor_interface]['ipv4'] is not defined
- name: "fail if {{ monitor_interface }} does not have any ip v6 address on {{ inventory_hostname }}"
fail:
msg: "{{ monitor_interface }} does not have any IPv6 address on {{ inventory_hostname }}"
when:
- ip_version == "ipv6"
- hostvars[inventory_hostname]['ansible_' + monitor_interface]['ipv6'] is not defined

View File

@ -0,0 +1,26 @@
---
- name: "fail if {{ radosgw_interface }} does not exist on {{ inventory_hostname }}"
fail:
msg: "{{ radosgw_interface }} does not exist on {{ inventory_hostname }}"
when:
- radosgw_interface not in ansible_interfaces
- name: "fail if {{ radosgw_interface }} is not active on {{ inventory_hostname }}"
fail:
msg: "{{ radosgw_interface }} is not active on {{ inventory_hostname }}"
when:
- hostvars[inventory_hostname]['ansible_' + radosgw_interface]['active'] == "false"
- name: "fail if {{ radosgw_interface }} does not have any ip v4 address on {{ inventory_hostname }}"
fail:
msg: "{{ radosgw_interface }} does not have any IPv4 address on {{ inventory_hostname }}"
when:
- ip_version == "ipv4"
- hostvars[inventory_hostname]['ansible_' + radosgw_interface]['ipv4'] is not defined
- name: "fail if {{ radosgw_interface }} does not have any ip v6 address on {{ inventory_hostname }}"
fail:
msg: "{{ radosgw_interface }} does not have any IPv6 address on {{ inventory_hostname }}"
when:
- ip_version == "ipv6"
- hostvars[inventory_hostname]['ansible_' + radosgw_interface]['ipv6'] is not defined

View File

@ -59,3 +59,19 @@
- osd_group_name in group_names
- not osd_auto_discovery | default(False)
- osd_scenario != "lvm"
- name: include check_eth_mon.yml
include: check_eth_mon.yml
when:
- mon_group_name in group_names
- monitor_interface != "dummy"
- monitor_address == "0.0.0.0"
- monitor_address_block == "subnet"
- name: include check_eth_rgw.yml
include: check_eth_rgw.yml
when:
- rgw_group_name in group_names
- radosgw_interface != "dummy"
- radosgw_address == "0.0.0.0"
- radosgw_address_block == "subnet"