Support for module param defaults (#22648)

This commit is contained in:
Andrew Gaffney 2018-04-05 10:44:51 -05:00 committed by Brian Coca
commit 8673e1e661
4 changed files with 104 additions and 0 deletions

View file

@ -0,0 +1,89 @@
- name: main block
vars:
test_file: /tmp/ansible-test.module_defaults.foo
module_defaults:
debug:
msg: test default
file:
path: '{{ test_file }}'
block:
- debug:
register: foo
- name: test that 'debug' task used default 'msg' param
assert:
that: foo.msg == "test default"
- name: remove test file
file:
state: absent
- name: touch test file
file:
state: touch
- name: stat test file
stat:
path: '{{ test_file }}'
register: foo
- name: check that test file exists
assert:
that: foo.stat.exists
- name: remove test file
file:
state: absent
- name: test that module defaults from parent are inherited and merged
module_defaults:
# Meaningless values to make sure that 'module_defaults' gets
# evaluated for this block
foo:
bar: baz
block:
- debug:
register: foo
- assert:
that: foo.msg == "test default"
- name: test that we can override module defaults inherited from parent
module_defaults:
debug:
msg: "different test message"
block:
- debug:
register: foo
- assert:
that: foo.msg == "different test message"
- name: test that module defaults inherited from parent can be removed
module_defaults:
debug: {}
block:
- debug:
register: foo
- assert:
that:
foo.msg == "Hello world!"
- name: test that module defaults can be overridden by module params
block:
- debug:
msg: another test message
register: foo
- assert:
that:
foo.msg == "another test message"
- debug:
msg: '{{ omit }}'
register: foo
- assert:
that:
foo.msg == "Hello world!"