diff --git a/lib/ansible/parsing/mod_args.py b/lib/ansible/parsing/mod_args.py index ad4293013b..50e39f48d0 100644 --- a/lib/ansible/parsing/mod_args.py +++ b/lib/ansible/parsing/mod_args.py @@ -233,9 +233,10 @@ class ModuleArgsParser: task, dealing with all sorts of levels of fuzziness. ''' - thing = None + thing = None + action = None - connection = self._task_ds.get('connection', None) + delegate_to = self._task_ds.get('delegate_to', None) args = dict() @@ -255,12 +256,11 @@ class ModuleArgsParser: # local_action local_action = False if 'local_action' in self._task_ds: - # local_action is similar but also implies a connection='local' + # local_action is similar but also implies a delegate_to if action is not None: raise AnsibleParserError("action and local_action are mutually exclusive", obj=self._task_ds) thing = self._task_ds.get('local_action', '') - connection = 'local' - local_action = True + delegate_to = 'localhost' action, args = self._normalize_parameters(thing, additional_args=additional_args) # walk the input dictionary to see we recognize a module name @@ -294,8 +294,4 @@ class ModuleArgsParser: # shell modules require special handling (action, args) = self._handle_shell_weirdness(action, args) - # now add the local action flag to the args, if it was set - if local_action: - args['_local_action'] = local_action - - return (action, args, connection) + return (action, args, delegate_to) diff --git a/lib/ansible/playbook/task.py b/lib/ansible/playbook/task.py index bc32903f7f..51ba8e9869 100644 --- a/lib/ansible/playbook/task.py +++ b/lib/ansible/playbook/task.py @@ -184,11 +184,11 @@ class Task(Base, Conditional, Taggable, Become): # and the delegate_to value from the various possible forms # supported as legacy args_parser = ModuleArgsParser(task_ds=ds) - (action, args, connection) = args_parser.parse() + (action, args, delegate_to) = args_parser.parse() new_ds['action'] = action new_ds['args'] = args - new_ds['connection'] = connection + new_ds['delegate_to'] = delegate_to # we handle any 'vars' specified in the ds here, as we may # be adding things to them below (special handling for includes). @@ -200,8 +200,8 @@ class Task(Base, Conditional, Taggable, Become): else: new_ds['vars'] = dict() - for (k,v) in iteritems(ds): - if k in ('action', 'local_action', 'args', 'connection') or k == action or k == 'shell': + for (k,v) in ds.iteritems(): + if k in ('action', 'local_action', 'args', 'delegate_to') or k == action or k == 'shell': # we don't want to re-assign these values, which were # determined by the ModuleArgsParser() above continue