Add tests for merging and replacing vars from inventory sources (#73181)

This commit is contained in:
Sloane Hertel 2021-01-11 17:37:34 -05:00 committed by GitHub
parent be59caa59b
commit 9de2da8a7e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 62 additions and 0 deletions

View file

@ -6,3 +6,6 @@ JSON_ARG='{"test_hash":{"extra_args":"this is an extra arg"}}'
ANSIBLE_HASH_BEHAVIOUR=replace ansible-playbook test_hash.yml -i ../../inventory -v "$@" -e "${JSON_ARG}"
ANSIBLE_HASH_BEHAVIOUR=merge ansible-playbook test_hash.yml -i ../../inventory -v "$@" -e "${JSON_ARG}"
ANSIBLE_HASH_BEHAVIOUR=replace ansible-playbook test_inventory_hash.yml -i test_inv1.yml -i test_inv2.yml -v "$@"
ANSIBLE_HASH_BEHAVIOUR=merge ansible-playbook test_inventory_hash.yml -i test_inv1.yml -i test_inv2.yml -v "$@"

View file

@ -0,0 +1,10 @@
all:
hosts:
host1:
test_inventory_host_hash:
host_var1: "inventory 1"
host_var2: "inventory 1"
vars:
test_inventory_group_hash:
group_var1: "inventory 1"
group_var2: "inventory 1"

View file

@ -0,0 +1,8 @@
all:
hosts:
host1:
test_inventory_host_hash:
host_var1: "inventory 2"
vars:
test_inventory_group_hash:
group_var1: "inventory 2"

View file

@ -0,0 +1,41 @@
---
- hosts: localhost
gather_facts: no
vars:
host_hash_merged: {'host_var1': 'inventory 2', 'host_var2': 'inventory 1'}
host_hash_replaced: {'host_var1': 'inventory 2'}
group_hash_merged: {'group_var1': 'inventory 2', 'group_var2': 'inventory 1'}
group_hash_replaced: {'group_var1': 'inventory 2'}
tasks:
- name: debug hash behaviour result
debug:
var: "{{ lookup('env', 'ANSIBLE_HASH_BEHAVIOUR') }}"
verbosity: 2
- name: assert hash behaviour is merge or replace
assert:
that:
- lookup('env', 'ANSIBLE_HASH_BEHAVIOUR') in ('merge', 'replace')
- name: debug test_inventory_host_hash
debug:
var: hostvars['host1']['test_inventory_host_hash']
verbosity: 2
- name: debug test_inventory_group_hash
debug:
var: test_inventory_group_hash
verbosity: 2
- assert:
that:
- hostvars['host1']['test_inventory_host_hash'] == host_hash_replaced
- test_inventory_group_hash == group_hash_replaced
when: "lookup('env', 'ANSIBLE_HASH_BEHAVIOUR') == 'replace'"
- assert:
that:
- hostvars['host1']['test_inventory_host_hash'] == host_hash_merged
- test_inventory_group_hash == group_hash_merged
when: "lookup('env', 'ANSIBLE_HASH_BEHAVIOUR') == 'merge'"