summaryrefslogtreecommitdiffstats
path: root/test/integration/targets/gathering_facts/test_module_defaults.yml
diff options
context:
space:
mode:
Diffstat (limited to 'test/integration/targets/gathering_facts/test_module_defaults.yml')
-rw-r--r--test/integration/targets/gathering_facts/test_module_defaults.yml130
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'"