diff options
Diffstat (limited to 'test/integration/targets/gathering_facts/test_module_defaults.yml')
-rw-r--r-- | test/integration/targets/gathering_facts/test_module_defaults.yml | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/test/integration/targets/gathering_facts/test_module_defaults.yml b/test/integration/targets/gathering_facts/test_module_defaults.yml new file mode 100644 index 0000000..038b8ec --- /dev/null +++ b/test/integration/targets/gathering_facts/test_module_defaults.yml @@ -0,0 +1,130 @@ +--- +- hosts: localhost + # The gather_facts keyword has default values for its + # options so module_defaults doesn't have much affect. + gather_facts: no + tags: + - default_fact_module + tasks: + - name: set defaults for the action plugin + gather_facts: + module_defaults: + gather_facts: + gather_subset: min + + - assert: + that: "gather_subset == ['min']" + + - name: set defaults for the module + gather_facts: + module_defaults: + setup: + gather_subset: '!all' + + - assert: + that: "gather_subset == ['!all']" + + # Defaults for the action plugin win because they are + # loaded first and options need to be omitted for + # defaults to be used. + - name: set defaults for the action plugin and module + gather_facts: + module_defaults: + setup: + gather_subset: '!all' + gather_facts: + gather_subset: min + + - assert: + that: "gather_subset == ['min']" + + # The gather_facts 'smart' facts module is 'ansible.legacy.setup' by default. + # If 'setup' (the unqualified name) is explicitly requested, FQCN module_defaults + # would not apply. + - name: set defaults for the fqcn module + gather_facts: + module_defaults: + ansible.legacy.setup: + gather_subset: '!all' + + - assert: + that: "gather_subset == ['!all']" + +- hosts: localhost + gather_facts: no + tags: + - custom_fact_module + tasks: + - name: set defaults for the module + gather_facts: + module_defaults: + ansible.legacy.setup: + gather_subset: '!all' + + - assert: + that: + - "gather_subset == ['!all']" + + # Defaults for the action plugin win. + - name: set defaults for the action plugin and module + gather_facts: + module_defaults: + gather_facts: + gather_subset: min + ansible.legacy.setup: + gather_subset: '!all' + + - assert: + that: + - "gather_subset == ['min']" + +- hosts: localhost + gather_facts: no + tags: + - networking + tasks: + - name: test that task args aren't used for fqcn network facts + gather_facts: + gather_subset: min + vars: + ansible_network_os: 'cisco.ios.ios' + register: result + + - assert: + that: + - "ansible_facts.gather_subset == '!config'" + + - name: test that module_defaults are used for fqcn network facts + gather_facts: + vars: + ansible_network_os: 'cisco.ios.ios' + module_defaults: + 'cisco.ios.ios_facts': {'gather_subset': 'min'} + register: result + + - assert: + that: + - "ansible_facts.gather_subset == 'min'" + + - name: test that task args aren't used for legacy network facts + gather_facts: + gather_subset: min + vars: + ansible_network_os: 'ios' + register: result + + - assert: + that: + - "ansible_facts.gather_subset == '!config'" + + - name: test that module_defaults are used for legacy network facts + gather_facts: + vars: + ansible_network_os: 'ios' + module_defaults: + 'ios_facts': {'gather_subset': 'min'} + register: result + + - assert: + that: + - "ansible_facts.gather_subset == 'min'" |