From 984612f08439ac7fccdd0332cf6056aba69fafe9 Mon Sep 17 00:00:00 2001 From: Erik Berg Date: Mon, 9 Jan 2023 18:56:24 +0100 Subject: [PATCH] loadbalancer: Use assert on checks for readability assert will also fail when we're not meeting the conditions, makes clear what we're actually testing, and isn't listed as a skipped task when the condition is ok. Change-Id: Ia72c7052d7f9b8c7d86d74a15dcd9e003178972b --- ansible/roles/loadbalancer/tasks/precheck.yml | 26 ++++++++++--------- .../prechecks/tasks/inventory_checks.yml | 11 ++++---- 2 files changed, 20 insertions(+), 17 deletions(-) diff --git a/ansible/roles/loadbalancer/tasks/precheck.yml b/ansible/roles/loadbalancer/tasks/precheck.yml index 615fcd5782..c334897b67 100644 --- a/ansible/roles/loadbalancer/tasks/precheck.yml +++ b/ansible/roles/loadbalancer/tasks/precheck.yml @@ -61,14 +61,14 @@ - not kolla_externally_managed_cert | bool - kolla_enable_tls_external | bool -- name: Fail if external haproxy certificate is absent +- name: Assert that external haproxy certificate exists run_once: true - fail: - msg: "External haproxy certificate file is not found. It is configured via 'kolla_external_fqdn_cert'" + assert: + that: haproxy_cert_file.stat.exists + fail_msg: "External haproxy certificate file is not found. It is configured via 'kolla_external_fqdn_cert'" when: - not kolla_externally_managed_cert | bool - kolla_enable_tls_external | bool - - not haproxy_cert_file.stat.exists - name: Checking if internal haproxy certificate exists run_once: true @@ -81,26 +81,28 @@ - not kolla_externally_managed_cert | bool - kolla_enable_tls_internal | bool -- name: Fail if internal haproxy certificate is absent +- name: Assert that internal haproxy certificate exists run_once: true - fail: - msg: "Internal haproxy certificate file is not found. It is configured via 'kolla_internal_fqdn_cert'" + assert: + that: haproxy_internal_cert_file.stat.exists + fail_msg: "Internal haproxy certificate file is not found. It is configured via 'kolla_internal_fqdn_cert'" when: - not kolla_externally_managed_cert | bool - kolla_enable_tls_internal | bool - - not haproxy_internal_cert_file.stat.exists - name: Checking the kolla_external_vip_interface is present - fail: "msg='Please check the kolla_external_vip_interface property - interface {{ kolla_external_vip_interface }} not found'" + assert: + that: kolla_external_vip_interface in ansible_facts.interfaces + fail_msg: "Please check the kolla_external_vip_interface property - interface {{ kolla_external_vip_interface }} not found" when: - haproxy_enable_external_vip | bool - - kolla_external_vip_interface not in ansible_facts.interfaces - name: Checking the kolla_external_vip_interface is active - fail: "msg='Please check the kolla_external_vip_interface settings - interface {{ kolla_external_vip_interface }} is not active'" + assert: + that: hostvars[inventory_hostname].ansible_facts[kolla_external_vip_interface]['active'] + fail_msg: "Please check the kolla_external_vip_interface settings - interface {{ kolla_external_vip_interface }} is not active" when: - haproxy_enable_external_vip | bool - - not hostvars[inventory_hostname].ansible_facts[kolla_external_vip_interface]['active'] # NOTE(hrw): let assume that each supported host OS has ping with ipv4/v6 support - name: Checking if kolla_internal_vip_address and kolla_external_vip_address are not pingable from any node diff --git a/ansible/roles/prechecks/tasks/inventory_checks.yml b/ansible/roles/prechecks/tasks/inventory_checks.yml index f8688f966f..29d917f5c5 100644 --- a/ansible/roles/prechecks/tasks/inventory_checks.yml +++ b/ansible/roles/prechecks/tasks/inventory_checks.yml @@ -1,11 +1,12 @@ --- -- name: Fail if group loadbalancer not exists or it is empty - fail: - msg: >- +- name: Checking loadbalancer group + assert: + that: + - groups['loadbalancer'] is defined + - groups['loadbalancer'] | length > 0 + fail_msg: >- Inventory's group loadbalancer does not exist or it is empty. Please update inventory, as haproxy group was renamed to loadbalancer in the Xena release. when: - enable_loadbalancer | bool - - groups['loadbalancer'] is not defined or - groups['loadbalancer'] | length < 1