From c04d5ba739392d2b7db8bb665ac4acac75565c14 Mon Sep 17 00:00:00 2001 From: Daniel Hokka Zakrisson Date: Thu, 28 Feb 2013 12:09:29 +0100 Subject: [PATCH] Allow specifying args directly to actions using module: syntax Makes things like - name: do complex things with complex module complex: setting_a: true setting_b: - foo - bar possible. Fixes #2228. --- lib/ansible/playbook/task.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/ansible/playbook/task.py b/lib/ansible/playbook/task.py index 9150d5683f6..7b0d5460afe 100644 --- a/lib/ansible/playbook/task.py +++ b/lib/ansible/playbook/task.py @@ -47,6 +47,13 @@ class Task(object): if x in utils.plugins.module_finder: if 'action' in ds: raise errors.AnsibleError("multiple actions specified in task %s" % (ds.get('name', ds['action']))) + if isinstance(ds[x], dict): + if 'args' in ds: + raise errors.AnsibleError("can't combine args: and a dict for %s: in task %s" % (x, ds.get('name', "%s: %s" % (x, ds[x])))) + ds['args'] = ds[x] + ds[x] = '' + elif ds[x] is None: + ds[x] = '' if not isinstance(ds[x], basestring): raise errors.AnsibleError("action specified for task %s has invalid type %s" % (ds.get('name', "%s: %s" % (x, ds[x])), type(ds[x]))) ds['action'] = x + " " + ds[x]