From 391f49c949998d010694a11511209f9dda50e2a9 Mon Sep 17 00:00:00 2001
From: Erik Berg <openstack@slipsprogrammor.no>
Date: Mon, 9 Jan 2023 18:59:42 +0100
Subject: [PATCH] neutron: 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: I3e396f1c605d5d2644e757bbb3d954efe537b65e
---
 ansible/roles/neutron/tasks/precheck.yml | 25 ++++++++++++------------
 1 file changed, 12 insertions(+), 13 deletions(-)

diff --git a/ansible/roles/neutron/tasks/precheck.yml b/ansible/roles/neutron/tasks/precheck.yml
index 36804ae794..119dd6d9e0 100644
--- a/ansible/roles/neutron/tasks/precheck.yml
+++ b/ansible/roles/neutron/tasks/precheck.yml
@@ -25,31 +25,30 @@
     - inventory_hostname in groups['neutron-server']
 
 - name: Checking number of network agents
-  fail:
-    msg: "Number of network agents are less than two when enabling agent ha"
+  assert:
+    that:
+      - groups['neutron-dhcp-agent'] | length > 1
+      - groups['neutron-l3-agent'] | length > 1
+    fail_msg: "Number of network agents are less than two when enabling agent ha"
   changed_when: false
   run_once: True
   when:
     - enable_neutron_agent_ha | bool
-    - groups['neutron-dhcp-agent'] | length < 2
-      or groups['neutron-l3-agent'] | length < 2
 
 - name: Checking tenant network types
+  assert:
+    that: item in type_drivers
+    fail_msg: "Tenant network type '{{ item }}' is not in type drivers [{{ neutron_type_drivers }}]"
+  with_items: "{{ tenant_network_types }}"
   vars:
     type_drivers: "{{ neutron_type_drivers.replace(' ', '').split(',') | reject('equalto', '') | list }}"
     tenant_network_types: "{{ neutron_tenant_network_types.replace(' ', '').split(',') | reject('equalto', '') | list }}"
-  fail:
-    msg: "Tenant network type '{{ item }}' is not in type drivers [{{ neutron_type_drivers }}]"
-  changed_when: false
-  when: item not in type_drivers
   run_once: true
-  with_items: "{{ tenant_network_types }}"
 
 - name: Checking whether Ironic enabled
-  fail:
-    msg: "Ironic must be enabled when using networking-baremetal/ironic-neutron-agent"
-  changed_when: false
+  assert:
+    that: enable_ironic | bool
+    fail_msg: "Ironic must be enabled when using networking-baremetal/ironic-neutron-agent"
   run_once: True
   when:
     - enable_ironic_neutron_agent | bool
-    - not (enable_ironic | bool)
-- 
GitLab