updates network local actions to check for connection=local (#21437)

* updates vyos local action
* updates ios local action
This commit is contained in:
Peter Sprygada 2017-02-15 06:27:54 -05:00 committed by John R Barker
parent 86e2feffc1
commit 381a045089
2 changed files with 26 additions and 9 deletions

View file

@ -35,6 +35,13 @@ class ActionModule(_ActionModule):
def run(self, tmp=None, task_vars=None): def run(self, tmp=None, task_vars=None):
if self._play_context.connection != 'local':
return dict(
fail=True,
msg='invalid connection specified, expected connection=local, '
'got %s' % self._play_context.connection
)
provider = self.load_provider() provider = self.load_provider()
pc = copy.deepcopy(self._play_context) pc = copy.deepcopy(self._play_context)

View file

@ -35,9 +35,18 @@ class ActionModule(_ActionModule):
def run(self, tmp=None, task_vars=None): def run(self, tmp=None, task_vars=None):
if self._play_context.connection != 'local':
return dict(
fail=True,
msg='invalid connection specified, expected connection=local, '
'got %s' % self._play_context.connection
)
provider = self.load_provider()
pc = copy.deepcopy(self._play_context) pc = copy.deepcopy(self._play_context)
pc.connection = 'network_cli' pc.connection = 'network_cli'
pc.port = provider['port'] or self._play_context.port pc.port = provider['port'] or self._play_context.port or 22
pc.remote_user = provider['username'] or self._play_context.connection_user pc.remote_user = provider['username'] or self._play_context.connection_user
pc.password = provider['password'] or self._play_context.password pc.password = provider['password'] or self._play_context.password
@ -59,14 +68,15 @@ class ActionModule(_ActionModule):
def load_provider(self): def load_provider(self):
provider = self._task.args.get('provider', {}) provider = self._task.args.get('provider', {})
for key, value in iteritems(eos_argument_spec): for key, value in iteritems(ios_argument_spec):
if key in self._task.args: if key != 'provider' and key not in provider:
provider[key] = self._task.args[key] if key in self._task.args:
elif 'fallback' in value: provider[key] = self._task.args[key]
provider[key] = self._fallback(value['fallback']) elif 'fallback' in value:
elif key not in provider: provider[key] = self._fallback(value['fallback'])
provider[key] = None elif key not in provider:
self._task.args['provider'] = provider provider[key] = None
return provider
def _fallback(self, fallback): def _fallback(self, fallback):
strategy = fallback[0] strategy = fallback[0]