Make parameterized playbook includes work with vars as a list

Fixes #1610.
parent 5752d2a8
...@@ -166,7 +166,10 @@ class PlayBook(object): ...@@ -166,7 +166,10 @@ class PlayBook(object):
for p in plays: for p in plays:
if 'vars' not in p: if 'vars' not in p:
p['vars'] = {} p['vars'] = {}
if isinstance(p['vars'], dict):
p['vars'].update(incvars) p['vars'].update(incvars)
elif isinstance(p['vars'], list):
p['vars'].extend([dict(k=v) for k,v in incvars.iteritems()])
accumulated_plays.extend(plays) accumulated_plays.extend(plays)
play_basedirs.extend(basedirs) play_basedirs.extend(basedirs)
......
...@@ -217,7 +217,7 @@ class TestPlaybook(unittest.TestCase): ...@@ -217,7 +217,7 @@ class TestPlaybook(unittest.TestCase):
"localhost": { "localhost": {
"changed": 0, "changed": 0,
"failures": 0, "failures": 0,
"ok": 5, "ok": 10,
"skipped": 0, "skipped": 0,
"unreachable": 0 "unreachable": 0
} }
......
...@@ -3,3 +3,10 @@ ...@@ -3,3 +3,10 @@
gather_facts: False gather_facts: False
tasks: tasks:
- action: debug msg="$variable" - action: debug msg="$variable"
- hosts: all
vars:
- ugly: var
gather_facts: False
tasks:
- action: debug msg="$variable"
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment