mirror of
https://github.com/ansible-collections/community.general.git
synced 2026-05-06 13:22:48 +00:00
Ensure play order is obeyed (#49897)
* Ensure play order is obeyed it was being ignored depending on other options also added tests for each order (except shuffle) both serial and not fixes #49846
This commit is contained in:
3
test/integration/targets/order/aliases
Normal file
3
test/integration/targets/order/aliases
Normal file
@@ -0,0 +1,3 @@
|
||||
shippable/posix/group1
|
||||
shippable/posix/group2
|
||||
shippable/posix/group3
|
||||
9
test/integration/targets/order/inventory
Normal file
9
test/integration/targets/order/inventory
Normal file
@@ -0,0 +1,9 @@
|
||||
[incremental]
|
||||
hostB
|
||||
hostA
|
||||
hostD
|
||||
hostC
|
||||
|
||||
[incremental:vars]
|
||||
ansible_connection=local
|
||||
ansible_python_interpreter='{{ansible_playbook_python}}'
|
||||
27
test/integration/targets/order/order.yml
Normal file
27
test/integration/targets/order/order.yml
Normal file
@@ -0,0 +1,27 @@
|
||||
- name: just plain order
|
||||
hosts: all
|
||||
gather_facts: false
|
||||
order: '{{ myorder|default("inventory")}}'
|
||||
tasks:
|
||||
- shell: echo '{{inventory_hostname}}' >> hostlist.txt
|
||||
|
||||
- name: with serial
|
||||
hosts: all
|
||||
gather_facts: false
|
||||
serial: 1
|
||||
order: '{{ myorder|default("inventory")}}'
|
||||
tasks:
|
||||
- shell: echo '{{inventory_hostname}}' >> shostlist.txt
|
||||
|
||||
- name: ensure everything works
|
||||
hosts: localhost
|
||||
gather_facts: false
|
||||
tasks:
|
||||
- assert:
|
||||
that:
|
||||
- item.1 == hostlist[item.0]
|
||||
- item.1 == shostlist[item.0]
|
||||
loop: '{{ lookup("indexed_items", inputlist) }}'
|
||||
vars:
|
||||
hostlist: '{{lookup("file", "hostlist.txt").splitlines()}}'
|
||||
shostlist: '{{lookup("file", "shostlist.txt").splitlines()}}'
|
||||
13
test/integration/targets/order/runme.sh
Executable file
13
test/integration/targets/order/runme.sh
Executable file
@@ -0,0 +1,13 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -eux
|
||||
|
||||
for EXTRA in '{"inputlist": ["hostB", "hostA", "hostD", "hostC"]}' \
|
||||
'{"myorder": "inventory", "inputlist": ["hostB", "hostA", "hostD", "hostC"]}' \
|
||||
'{"myorder": "sorted", "inputlist": ["hostA", "hostB", "hostC", "hostD"]}' \
|
||||
'{"myorder": "reverse_sorted", "inputlist": ["hostD", "hostC", "hostB", "hostA"]}' \
|
||||
'{"myorder": "reverse_inventory", "inputlist": ["hostC", "hostD", "hostA", "hostB"]}'
|
||||
do
|
||||
rm shostlist.txt hostlist.txt || true
|
||||
ansible-playbook order.yml --forks 1 -i inventory -e "$EXTRA" "$@"
|
||||
done
|
||||
Reference in New Issue
Block a user