aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMichal Arbet <michal.arbet@ultimum.io>2024-12-07 17:33:55 +0100
committerMichal Arbet <michal.arbet@ultimum.io>2024-12-07 20:46:31 +0100
commit0298699a4b33bf810862bf61691f9c127a1ea3c2 (patch)
tree9e47bdb6f3dc7c3d348c5b3e104f3e96b5fc9d1c /tests
parentecdd7462aa82e06bd89a7eaf3d13ec8d9ab67d79 (diff)
downloadkolla-ansible-0298699a4b33bf810862bf61691f9c127a1ea3c2.tar.gz
kolla-ansible-0298699a4b33bf810862bf61691f9c127a1ea3c2.zip
[CI] Fix testing inventory template due Ansible 2.16.14 breakage
Ansible 2.16.14 includes a fix for CVE-2024-11079 [1], which results in the following error: jinja2.exceptions.UndefinedError: 'ansible.vars.hostvars.HostVarsVars object' has no attribute 'ansible_host' This issue occurs because Ansible now includes `localhost` in `hostvars` without the `ansible_host` variable set, which unexpectedly breaks our test inventory rendering. This patch adds a filter to exclude `localhost` during the rendering process, as it is irrelevant for our purposes. [1] https://github.com/ansible/ansible/pull/84353 Change-Id: Ie7ae47e5a624da31cf6cc5cd3c9239450487b8ed
Diffstat (limited to 'tests')
-rw-r--r--tests/templates/inventory.j214
1 files changed, 7 insertions, 7 deletions
diff --git a/tests/templates/inventory.j2 b/tests/templates/inventory.j2
index c0b48ce73..b5aadacd6 100644
--- a/tests/templates/inventory.j2
+++ b/tests/templates/inventory.j2
@@ -11,7 +11,7 @@
{{ host }} ansible_host={{ hostvars[host]['ansible_host'] }}
{% endfor %}
{% else %}
-{% for host in hostvars %}
+{% for host in hostvars | reject('equalto', 'localhost') %}
{{ host }} ansible_host={{ hostvars[host]['ansible_host'] }}
{% endfor %}
{% endif %}
@@ -31,28 +31,28 @@ control
{{ host }} ansible_host={{ hostvars[host]['ansible_host'] }}
{% endfor %}
{% else %}
-{% for host in hostvars %}
+{% for host in hostvars | reject('equalto', 'localhost') %}
{{ host }} ansible_host={{ hostvars[host]['ansible_host'] }}
{% endfor %}
{% endif %}
[storage]
-{% for host in hostvars %}
+{% for host in hostvars | reject('equalto', 'localhost') %}
{{ host }} ansible_host={{ hostvars[host]['ansible_host'] }}
{% endfor %}
[monitoring]
-{% for host in hostvars %}
+{% for host in hostvars | reject('equalto', 'localhost') %}
{{ host }} ansible_host={{ hostvars[host]['ansible_host'] }}
{% endfor %}
[deployment]
-{% for host in hostvars %}
+{% for host in hostvars | reject('equalto', 'localhost') %}
{{ host }} ansible_host={{ hostvars[host]['ansible_host'] }}
{% endfor %}
{% if scenario == 'cells' %}
-{% for host in hostvars %}
+{% for host in hostvars | reject('equalto', 'localhost') %}
{% set cell_name = 'cell' ~ loop.index %}
[{{ cell_name }}]
{{ host }} ansible_host={{ hostvars[host]['ansible_host'] }} mariadb_shard_id={{ loop.index0 % 2 }}
@@ -123,7 +123,7 @@ storage
# In CI we want Pacemaker to run on primary and secondary (to test with HA).
[hacluster]
-{% for host in hostvars %}
+{% for host in hostvars | reject('equalto', 'localhost') %}
{% if host in ['primary', 'secondary'] %}
{{ host }} ansible_host={{ hostvars[host]['ansible_host'] }}
{% endif %}