ansible/test/integration/targets/order/order.yml
Sam Doran a4b2ce5e13
Add test to ordered integration tests to exercise shuffle code path ()
This is meant to exercise the code path not test for randomness, though it somewhat does that.
2019-03-11 10:14:06 -04:00

39 lines
1.2 KiB
YAML

- 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() }}'
when: myorder | default('inventory') != 'shuffle'
- name: Assert that shuffle worked
assert:
that:
- item.1 != hostlist[item.0] or item.1 in hostlist
- item.1 != hostlist[item.0] or item.1 in hostlist
loop: '{{ lookup("indexed_items", inputlist) }}'
vars:
hostlist: '{{ lookup("file", "hostlist.txt").splitlines() }}'
shostlist: '{{ lookup("file", "shostlist.txt").splitlines() }}'
when: myorder | default('inventory') == 'shuffle'