mirror of
https://github.com/ansible-collections/community.general.git
synced 2026-05-07 05:42:50 +00:00
Fix correct variable expansion in includes only_if.
There's not need to run the complete include through the templating engine. Several variables were not included before the conditional was evaluated.
This commit is contained in:
@@ -172,3 +172,28 @@ class TestPlaybook(unittest.TestCase):
|
||||
print data
|
||||
assert data.find("ears") != -1, "template success"
|
||||
|
||||
def test_includes(self):
|
||||
pb = os.path.join(self.test_dir, 'playbook_includes.yml')
|
||||
actual = self._run(pb)
|
||||
|
||||
for i, event in enumerate(EVENTS):
|
||||
print "EVENT %s"%(i)
|
||||
print event
|
||||
|
||||
if i == 6:
|
||||
assert 'blue' in event[1][1]['cmd']
|
||||
|
||||
if i == 8:
|
||||
assert 'quack' in event[1][1]['cmd']
|
||||
|
||||
if i == 10:
|
||||
assert 'RAN' in event[1][1]['cmd']
|
||||
|
||||
if i == 12:
|
||||
assert 'RAN' in event[1][1]['cmd']
|
||||
|
||||
if i == 14:
|
||||
assert 'red' in event[1][1]['cmd']
|
||||
|
||||
if i == 18 or i == 20:
|
||||
assert 'skipped' in event[0]
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
---
|
||||
duck: quack
|
||||
cow: moo
|
||||
extguard: " '$favcolor' == 'blue' "
|
||||
|
||||
14
test/playbook_included.yml
Normal file
14
test/playbook_included.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
---
|
||||
- name: test vars
|
||||
action: shell echo $favcolor
|
||||
|
||||
- name: test vars_files
|
||||
action: shell echo $duck
|
||||
|
||||
- name: test vars condition
|
||||
action: shell echo RAN
|
||||
only_if: $guard
|
||||
|
||||
- name: test vars_files condition
|
||||
action: shell echo RAN
|
||||
only_if: $extguard
|
||||
15
test/playbook_includes.yml
Normal file
15
test/playbook_includes.yml
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
# Test correct variable expansion in included files and only if
|
||||
- hosts: all
|
||||
vars:
|
||||
favcolor: "blue"
|
||||
guard: ' "$favcolor" == "blue" '
|
||||
vars_files:
|
||||
- common_vars.yml
|
||||
|
||||
tasks:
|
||||
|
||||
- include: playbook_included.yml
|
||||
|
||||
# test overrides of variables
|
||||
- include: playbook_included.yml favcolor=red
|
||||
Reference in New Issue
Block a user