mirror of https://github.com/ansible/ansible.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.3 KiB
Bash
37 lines
1.3 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
set -eux
|
|
|
|
export ANSIBLE_INVENTORY_ENABLED=advanced_host_list
|
|
|
|
# A few things to make it easier to grep against adhoc
|
|
export ANSIBLE_LOAD_CALLBACK_PLUGINS=True
|
|
export ANSIBLE_STDOUT_CALLBACK=oneline
|
|
|
|
adhoc="$(ansible -i 'local[0:10],' -m ping --connection=local -e ansible_python_interpreter="{{ ansible_playbook_python }}" all -v)"
|
|
|
|
for i in $(seq 0 10); do
|
|
grep -qE "local${i} \| SUCCESS.*\"ping\": \"pong\"" <<< "$adhoc"
|
|
done
|
|
|
|
set +e
|
|
parse_fail="$(ansible -i 'local[1:j],' -m ping --connection=local all -v 2>&1)"
|
|
set -e
|
|
|
|
grep -q "Failed to parse local\[1:j\], with advanced_host_list" <<< "$parse_fail"
|
|
|
|
# Intentionally missing comma, ensure we don't fatal.
|
|
no_comma="$(ansible -i 'local[1:5]' -m ping --connection=local all -v 2>&1)"
|
|
grep -q "No inventory was parsed" <<< "$no_comma"
|
|
|
|
# Intentionally botched range (missing end number), ensure we don't fatal.
|
|
no_end="$(ansible -i 'local[1:],' -m ping --connection=local -e ansible_python_interpreter="{{ ansible_playbook_python }}" all -vvv 2>&1)"
|
|
grep -q "Unable to parse address from hostname, leaving unchanged:" <<< "$no_end"
|
|
grep -q "host range must specify end value" <<< "$no_end"
|
|
grep -q "local\[3:\] \| SUCCESS" <<< "$no_end"
|
|
|
|
# Unset adhoc stuff
|
|
unset ANSIBLE_LOAD_CALLBACK_PLUGINS ANSIBLE_STDOUT_CALLBACK
|
|
|
|
ansible-playbook -i 'local100,local[100:110:2]' test_advanced_host_list.yml -v "$@"
|