From 07b215d4fa3f8ce82ef11042f7535bc5b844442e Mon Sep 17 00:00:00 2001 From: Daniel Hokka Zakrisson Date: Thu, 3 Jan 2013 23:36:42 +0100 Subject: [PATCH] Check for non-accepted arguments combined with task includes Throw an appropriate error for it. --- lib/ansible/playbook/play.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/ansible/playbook/play.py b/lib/ansible/playbook/play.py index abcc523a17..87e993722c 100644 --- a/lib/ansible/playbook/play.py +++ b/lib/ansible/playbook/play.py @@ -109,13 +109,19 @@ class Play(object): items = [''] for k in x: if not k.startswith("with_"): - continue + if k in ("include", "vars"): + continue + else: + raise errors.AnsibleError("parse error: task includes cannot be used with other directives: %s" % k) plugin_name = k[5:] if plugin_name not in utils.plugins.lookup_loader: raise errors.AnsibleError("cannot find lookup plugin named %s for usage in with_%s" % (plugin_name, plugin_name)) terms = utils.template_ds(self.basedir, x[k], task_vars) items = utils.plugins.lookup_loader.get(plugin_name, basedir=self.basedir, runner=None).run(terms, inject=task_vars) + if 'vars' in x: + task_vars.update(x['vars']) + for item in items: mv = task_vars.copy() mv['item'] = item