From 54cbe3dcf950a30e36881d667655eafef641ba3b Mon Sep 17 00:00:00 2001 From: James Cammarata Date: Tue, 12 Aug 2014 16:55:14 -0500 Subject: [PATCH] Disallow args: to be specified as a string --- lib/ansible/runner/__init__.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/lib/ansible/runner/__init__.py b/lib/ansible/runner/__init__.py index 6e7955d3792..76a5d76d472 100644 --- a/lib/ansible/runner/__init__.py +++ b/lib/ansible/runner/__init__.py @@ -217,6 +217,10 @@ class Runner(object): # changed later via options like accelerate self.original_transport = self.transport + # enforce complex_args as a dict + if type(self.complex_args) != dict: + raise errors.AnsibleError("args must be a dictionary, received %s (%s)" % (self.complex_args, type(self.complex_args))) + # misc housekeeping if subset and self.inventory._subset is None: # don't override subset when passed from playbook @@ -665,11 +669,6 @@ class Runner(object): # logic to decide how to run things depends on whether with_items is used if items is None: - if isinstance(complex_args, basestring): - complex_args = template.template(self.basedir, complex_args, inject, convert_bare=True) - complex_args = utils.safe_eval(complex_args) - if type(complex_args) != dict: - raise errors.AnsibleError("args must be a dictionary, received %s" % complex_args) return self._executor_internal_inner(host, self.module_name, self.module_args, inject, port, complex_args=complex_args) elif len(items) > 0: