mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Merge pull request #12000 from bcoca/local_action_connect
changed local_action to alias to connection=local vs delegate_to=locahost
This commit is contained in:
commit
1b810e3101
3 changed files with 11 additions and 12 deletions
|
@ -234,10 +234,9 @@ class ModuleArgsParser:
|
|||
task, dealing with all sorts of levels of fuzziness.
|
||||
'''
|
||||
|
||||
thing = None
|
||||
|
||||
thing = None
|
||||
action = None
|
||||
delegate_to = self._task_ds.get('delegate_to', None)
|
||||
connection = self._task_ds.get('connection', None)
|
||||
args = dict()
|
||||
|
||||
|
||||
|
@ -256,11 +255,11 @@ class ModuleArgsParser:
|
|||
|
||||
# local_action
|
||||
if 'local_action' in self._task_ds:
|
||||
# local_action is similar but also implies a delegate_to
|
||||
# local_action is similar but also implies a connection='local'
|
||||
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', '')
|
||||
delegate_to = 'localhost'
|
||||
connection = 'local'
|
||||
action, args = self._normalize_parameters(thing, additional_args=additional_args)
|
||||
|
||||
# module: <stuff> is the more new-style invocation
|
||||
|
@ -289,4 +288,4 @@ class ModuleArgsParser:
|
|||
# shell modules require special handling
|
||||
(action, args) = self._handle_shell_weirdness(action, args)
|
||||
|
||||
return (action, args, delegate_to)
|
||||
return (action, args, connection)
|
||||
|
|
|
@ -157,11 +157,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, delegate_to) = args_parser.parse()
|
||||
(action, args, connection) = args_parser.parse()
|
||||
|
||||
new_ds['action'] = action
|
||||
new_ds['args'] = args
|
||||
new_ds['delegate_to'] = delegate_to
|
||||
new_ds['connection'] = connection
|
||||
|
||||
# we handle any 'vars' specified in the ds here, as we may
|
||||
# be adding things to them below (special handling for includes).
|
||||
|
@ -174,7 +174,7 @@ class Task(Base, Conditional, Taggable, Become):
|
|||
new_ds['vars'] = dict()
|
||||
|
||||
for (k,v) in ds.iteritems():
|
||||
if k in ('action', 'local_action', 'args', 'delegate_to') or k == action or k == 'shell':
|
||||
if k in ('action', 'local_action', 'args', 'connection') or k == action or k == 'shell':
|
||||
# we don't want to re-assign these values, which were
|
||||
# determined by the ModuleArgsParser() above
|
||||
continue
|
||||
|
|
|
@ -109,11 +109,11 @@ class TestModArgsDwim(unittest.TestCase):
|
|||
|
||||
def test_local_action_string(self):
|
||||
m = ModuleArgsParser(dict(local_action='copy src=a dest=b'))
|
||||
mod, args, to = m.parse()
|
||||
self._debug(mod, args, to)
|
||||
mod, args, connection = m.parse()
|
||||
self._debug(mod, args, connection)
|
||||
self.assertEqual(mod, 'copy')
|
||||
self.assertEqual(args, dict(src='a', dest='b'))
|
||||
self.assertIs(to, 'localhost')
|
||||
self.assertIs(connection, 'local')
|
||||
|
||||
def test_multiple_actions(self):
|
||||
m = ModuleArgsParser(dict(action='shell echo hi', local_action='shell echo hi'))
|
||||
|
|
Loading…
Reference in a new issue