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.
250 lines
7.1 KiB
YAML
250 lines
7.1 KiB
YAML
- hosts: localhost
|
|
gather_facts: no
|
|
collections:
|
|
- testns.testcoll
|
|
- testns.othercoll
|
|
module_defaults:
|
|
testns.testcoll.echoaction:
|
|
explicit_module_default: from playbook
|
|
testns.testcoll.echo1:
|
|
explicit_module_default: from playbook
|
|
group/testgroup:
|
|
group_module_default: from playbook
|
|
tasks:
|
|
- testns.testcoll.echoaction:
|
|
task_arg: from task
|
|
register: echoaction_fq
|
|
- echoaction:
|
|
task_arg: from task
|
|
register: echoaction_unq
|
|
- testns.testcoll.echo1:
|
|
task_arg: from task
|
|
register: echo1_fq
|
|
- echo1:
|
|
task_arg: from task
|
|
register: echo1_unq
|
|
- testns.testcoll.echo2:
|
|
task_arg: from task
|
|
register: echo2_fq
|
|
- echo2:
|
|
task_arg: from task
|
|
register: echo2_unq
|
|
- testns.othercoll.other_echoaction:
|
|
task_arg: from task
|
|
register: other_echoaction_fq
|
|
- other_echoaction:
|
|
task_arg: from task
|
|
register: other_echoaction_unq
|
|
- testns.othercoll.other_echo1:
|
|
task_arg: from task
|
|
register: other_echo1_fq
|
|
- other_echo1:
|
|
task_arg: from task
|
|
register: other_echo1_unq
|
|
|
|
- debug: var=echo1_fq
|
|
|
|
- legacy_ping:
|
|
register: legacy_ping_1
|
|
module_defaults:
|
|
legacy_ping:
|
|
data: from task
|
|
|
|
- legacy_ping:
|
|
register: legacy_ping_2
|
|
module_defaults:
|
|
ansible.legacy.legacy_ping:
|
|
data: from task
|
|
|
|
- ansible.legacy.legacy_ping:
|
|
register: legacy_ping_3
|
|
module_defaults:
|
|
legacy_ping:
|
|
data: from task
|
|
|
|
- ansible.legacy.legacy_ping:
|
|
register: legacy_ping_4
|
|
module_defaults:
|
|
ansible.legacy.legacy_ping:
|
|
data: from task
|
|
|
|
- name: builtin uses legacy defaults
|
|
ansible.builtin.debug:
|
|
module_defaults:
|
|
debug:
|
|
msg: legacy default
|
|
register: builtin_legacy_defaults_1
|
|
|
|
- name: builtin uses legacy defaults
|
|
ansible.builtin.debug:
|
|
module_defaults:
|
|
ansible.legacy.debug:
|
|
msg: legacy default
|
|
register: builtin_legacy_defaults_2
|
|
|
|
- name: legacy does not use builtin defaults
|
|
ansible.legacy.debug:
|
|
register: legacy_builtin_defaults
|
|
module_defaults:
|
|
ansible.builtin.debug:
|
|
msg: legacy default
|
|
|
|
- assert:
|
|
that:
|
|
- "echoaction_fq.args_in == {'task_arg': 'from task', 'explicit_module_default': 'from playbook', 'group_module_default': 'from playbook' }"
|
|
- "echoaction_unq.args_in == {'task_arg': 'from task', 'explicit_module_default': 'from playbook', 'group_module_default': 'from playbook' }"
|
|
- "echo1_fq.args_in == {'task_arg': 'from task', 'explicit_module_default': 'from playbook', 'group_module_default': 'from playbook' }"
|
|
- "echo1_unq.args_in == {'task_arg': 'from task', 'explicit_module_default': 'from playbook', 'group_module_default': 'from playbook' }"
|
|
- "echo2_fq.args_in == {'task_arg': 'from task', 'group_module_default': 'from playbook' }"
|
|
- "echo2_unq.args_in == {'task_arg': 'from task', 'group_module_default': 'from playbook' }"
|
|
- "other_echoaction_fq.args_in == {'task_arg': 'from task', 'group_module_default': 'from playbook' }"
|
|
- "other_echoaction_unq.args_in == {'task_arg': 'from task', 'group_module_default': 'from playbook' }"
|
|
- "other_echo1_fq.args_in == {'task_arg': 'from task', 'group_module_default': 'from playbook' }"
|
|
- "other_echo1_unq.args_in == {'task_arg': 'from task', 'group_module_default': 'from playbook' }"
|
|
- "legacy_ping_1.ping == 'from task'"
|
|
- "legacy_ping_2.ping == 'from task'"
|
|
- "legacy_ping_3.ping == 'from task'"
|
|
- "legacy_ping_4.ping == 'from task'"
|
|
- "legacy_builtin_defaults.msg == 'Hello world!'"
|
|
- "builtin_legacy_defaults_1.msg == 'legacy default'"
|
|
- "builtin_legacy_defaults_2.msg == 'legacy default'"
|
|
|
|
- include_tasks: tasks/main.yml
|
|
|
|
- name: test preferring module name defaults for platform-specific actions
|
|
hosts: localhost
|
|
gather_facts: no
|
|
tasks:
|
|
- name: ensure eosfacts does not use action plugin default
|
|
testns.testcoll.eosfacts:
|
|
module_defaults:
|
|
testns.testcoll.eos:
|
|
fail: true
|
|
|
|
- name: eosfacts does use module name defaults
|
|
testns.testcoll.eosfacts:
|
|
module_defaults:
|
|
testns.testcoll.eosfacts:
|
|
eosfacts: true
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- result.eosfacts
|
|
- result.action_plugin == 'eos'
|
|
|
|
- name: ensure vyosfacts does not use action plugin default
|
|
testns.testcoll.vyosfacts:
|
|
module_defaults:
|
|
testns.testcoll.vyos:
|
|
fail: true
|
|
|
|
- name: vyosfacts does use vyosfacts defaults
|
|
testns.testcoll.vyosfacts:
|
|
module_defaults:
|
|
testns.testcoll.vyosfacts:
|
|
vyosfacts: true
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- result.vyosfacts
|
|
- result.action_plugin == 'vyos'
|
|
|
|
- name: iosfacts/ios_facts does not use action plugin default (module action_plugin field has precedence over module-as-action-redirect)
|
|
collections:
|
|
- testns.testcoll
|
|
module_defaults:
|
|
testns.testcoll.ios:
|
|
fail: true
|
|
block:
|
|
- ios_facts:
|
|
register: result
|
|
- assert:
|
|
that:
|
|
- result.action_plugin == 'ios'
|
|
|
|
- iosfacts:
|
|
register: result
|
|
- assert:
|
|
that:
|
|
- result.action_plugin == 'ios'
|
|
|
|
- name: ensure iosfacts/ios_facts uses ios_facts defaults
|
|
collections:
|
|
- testns.testcoll
|
|
module_defaults:
|
|
testns.testcoll.ios_facts:
|
|
ios_facts: true
|
|
block:
|
|
- ios_facts:
|
|
register: result
|
|
- assert:
|
|
that:
|
|
- result.ios_facts
|
|
- result.action_plugin == 'ios'
|
|
|
|
- iosfacts:
|
|
register: result
|
|
- assert:
|
|
that:
|
|
- result.ios_facts
|
|
- result.action_plugin == 'ios'
|
|
|
|
- name: ensure iosfacts/ios_facts uses iosfacts defaults
|
|
collections:
|
|
- testns.testcoll
|
|
module_defaults:
|
|
testns.testcoll.iosfacts:
|
|
ios_facts: true
|
|
block:
|
|
- ios_facts:
|
|
register: result
|
|
- assert:
|
|
that:
|
|
- result.ios_facts
|
|
- result.action_plugin == 'ios'
|
|
|
|
- iosfacts:
|
|
register: result
|
|
- assert:
|
|
that:
|
|
- result.ios_facts
|
|
- result.action_plugin == 'ios'
|
|
|
|
- name: ensure redirected action gets redirected action defaults
|
|
testns.testcoll.module_uses_action_defaults:
|
|
module_defaults:
|
|
testns.testcoll.module_uses_action_defaults:
|
|
action_option: true
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- result.action_option
|
|
- result.action_plugin == 'eos'
|
|
|
|
- name: ensure redirected action gets resolved action defaults
|
|
testns.testcoll.module_uses_action_defaults:
|
|
module_defaults:
|
|
testns.testcoll.eos:
|
|
action_option: true
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- result.action_option
|
|
- result.action_plugin == 'eos'
|
|
|
|
- name: ensure redirected action does not use module-specific defaults
|
|
testns.testcoll.module_uses_action_defaults:
|
|
module_defaults:
|
|
testns.testcoll.module:
|
|
fail: true
|
|
register: result
|
|
|
|
- assert:
|
|
that:
|
|
- not result.action_option
|
|
- result.action_plugin == 'eos'
|