summaryrefslogtreecommitdiffstats
path: root/test/integration/targets/any_errors_fatal
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-14 20:03:01 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-14 20:03:01 +0000
commita453ac31f3428614cceb99027f8efbdb9258a40b (patch)
treef61f87408f32a8511cbd91799f9cececb53e0374 /test/integration/targets/any_errors_fatal
parentInitial commit. (diff)
downloadansible-upstream.tar.xz
ansible-upstream.zip
Adding upstream version 2.10.7+merged+base+2.10.8+dfsg.upstream/2.10.7+merged+base+2.10.8+dfsgupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'test/integration/targets/any_errors_fatal')
-rw-r--r--test/integration/targets/any_errors_fatal/18602.yml21
-rw-r--r--test/integration/targets/any_errors_fatal/aliases1
-rw-r--r--test/integration/targets/any_errors_fatal/always_block.yml27
-rw-r--r--test/integration/targets/any_errors_fatal/inventory6
-rw-r--r--test/integration/targets/any_errors_fatal/on_includes.yml7
-rw-r--r--test/integration/targets/any_errors_fatal/play_level.yml15
-rwxr-xr-xtest/integration/targets/any_errors_fatal/runme.sh23
-rw-r--r--test/integration/targets/any_errors_fatal/test_fatal.yml12
8 files changed, 112 insertions, 0 deletions
diff --git a/test/integration/targets/any_errors_fatal/18602.yml b/test/integration/targets/any_errors_fatal/18602.yml
new file mode 100644
index 00000000..66bcb88b
--- /dev/null
+++ b/test/integration/targets/any_errors_fatal/18602.yml
@@ -0,0 +1,21 @@
+---
+ - hosts: localhost
+ any_errors_fatal: true
+ tasks:
+ - block:
+ - debug: msg='i execute normally'
+ - name: EXPECTED FAILURE primary block command
+ command: /bin/false
+ - debug: msg='i never execute, cause ERROR!'
+ rescue:
+ - name: rescue block debug
+ debug: msg='I caught an error'
+ - name: EXPECTED FAILURE rescue block command
+ command: /bin/false
+ - debug: msg='I also never execute :-('
+ always:
+ - name: A debug task in the always block
+ debug: msg="this always executes"
+
+ - set_fact:
+ always_ran: true
diff --git a/test/integration/targets/any_errors_fatal/aliases b/test/integration/targets/any_errors_fatal/aliases
new file mode 100644
index 00000000..b5983214
--- /dev/null
+++ b/test/integration/targets/any_errors_fatal/aliases
@@ -0,0 +1 @@
+shippable/posix/group3
diff --git a/test/integration/targets/any_errors_fatal/always_block.yml b/test/integration/targets/any_errors_fatal/always_block.yml
new file mode 100644
index 00000000..8c6fbffa
--- /dev/null
+++ b/test/integration/targets/any_errors_fatal/always_block.yml
@@ -0,0 +1,27 @@
+---
+- hosts: testhost
+ gather_facts: false
+ any_errors_fatal: true
+ tasks:
+ - block:
+ - name: initial block debug
+ debug: msg='any_errors_fatal_block, i execute normally'
+
+ - name: EXPECTED FAILURE any_errors_fatal, initial block, bin/false to simulate failure
+ command: /bin/false
+
+ - name: after a task that fails I should never execute
+ debug:
+ msg: 'any_errors_fatal_block_post_fail ... i never execute, cause ERROR!'
+ rescue:
+ - name: any_errors_fatal_rescue_block debug
+ debug: msg='any_errors_fatal_rescue_block_start ... I caught an error'
+
+ - name: EXPECTED FAILURE any_errors_fatal in rescue block, using bin/false to simulate error
+ command: /bin/false
+
+ - name: any_errors_fatal post debug
+ debug: msg='any_errors_fatal_rescue_block_post_fail ... I also never execute :-('
+ always:
+ - name: any errors fatal always block debug
+ debug: msg='any_errors_fatal_always_block_start'
diff --git a/test/integration/targets/any_errors_fatal/inventory b/test/integration/targets/any_errors_fatal/inventory
new file mode 100644
index 00000000..3ae8d9c3
--- /dev/null
+++ b/test/integration/targets/any_errors_fatal/inventory
@@ -0,0 +1,6 @@
+[local]
+testhost ansible_connection=local host_var_role_name=role3
+testhost2 ansible_connection=local host_var_role_name=role2
+
+[local:vars]
+ansible_python_interpreter="{{ ansible_playbook_python }}"
diff --git a/test/integration/targets/any_errors_fatal/on_includes.yml b/test/integration/targets/any_errors_fatal/on_includes.yml
new file mode 100644
index 00000000..981d9f46
--- /dev/null
+++ b/test/integration/targets/any_errors_fatal/on_includes.yml
@@ -0,0 +1,7 @@
+---
+# based on https://github.com/ansible/ansible/issues/22924
+- name: Test any errors fatal
+ hosts: testhost,testhost2
+ any_errors_fatal: True
+ tasks:
+ - include: test_fatal.yml
diff --git a/test/integration/targets/any_errors_fatal/play_level.yml b/test/integration/targets/any_errors_fatal/play_level.yml
new file mode 100644
index 00000000..d5a89206
--- /dev/null
+++ b/test/integration/targets/any_errors_fatal/play_level.yml
@@ -0,0 +1,15 @@
+- hosts: testhost
+ gather_facts: no
+ any_errors_fatal: true
+ tasks:
+ - name: EXPECTED FAILURE shell exe of /bin/false for testhost
+ shell: '{{ "/bin/false" if inventory_hostname == "testhost" else "/bin/true" }}'
+
+ - debug:
+ msg: "any_errors_fatal_play_level_post_fail"
+
+- hosts: testhost
+ any_errors_fatal: true
+ tasks:
+ - debug:
+ msg: "and in another play"
diff --git a/test/integration/targets/any_errors_fatal/runme.sh b/test/integration/targets/any_errors_fatal/runme.sh
new file mode 100755
index 00000000..02cd499f
--- /dev/null
+++ b/test/integration/targets/any_errors_fatal/runme.sh
@@ -0,0 +1,23 @@
+#!/usr/bin/env bash
+
+set -ux
+ansible-playbook -i inventory "$@" play_level.yml| tee out.txt | grep 'any_errors_fatal_play_level_post_fail'
+res=$?
+cat out.txt
+if [ "${res}" -eq 0 ] ; then
+ exit 1
+fi
+
+ansible-playbook -i inventory "$@" on_includes.yml | tee out.txt | grep 'any_errors_fatal_this_should_never_be_reached'
+res=$?
+cat out.txt
+if [ "${res}" -eq 0 ] ; then
+ exit 1
+fi
+
+set -ux
+
+ansible-playbook -i inventory "$@" always_block.yml | tee out.txt | grep 'any_errors_fatal_always_block_start'
+res=$?
+cat out.txt
+exit $res
diff --git a/test/integration/targets/any_errors_fatal/test_fatal.yml b/test/integration/targets/any_errors_fatal/test_fatal.yml
new file mode 100644
index 00000000..a12d741e
--- /dev/null
+++ b/test/integration/targets/any_errors_fatal/test_fatal.yml
@@ -0,0 +1,12 @@
+---
+- name: Setting the fact for 'test' to 'test value'
+ set_fact:
+ test: "test value"
+ when: inventory_hostname == 'testhost2'
+
+- name: EXPECTED FAILURE ejinja eval of a var that should not exist
+ debug: msg="{{ test }}"
+
+- name: testhost should never reach here as testhost2 failure above should end play
+ debug:
+ msg: "any_errors_fatal_this_should_never_be_reached"