mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Add vendor neutral parameter fail_on_missing_module (#26482)
By default, the vendor neutral modules will just go on if no implementation module is found. If user specifies the task argument fail_on_missing_module and sets it to True, then we bail out the play early and report that to the user.
This commit is contained in:
parent
c6c5c6cf81
commit
5acebc124a
1 changed files with 10 additions and 1 deletions
|
@ -67,12 +67,19 @@ class ActionModule(ActionBase):
|
|||
socket_path = self._start_connection(play_context)
|
||||
task_vars['ansible_socket'] = socket_path
|
||||
|
||||
if 'fail_on_missing_module' not in self._task.args:
|
||||
self._task.args['fail_on_missing_module'] = False
|
||||
|
||||
result = super(ActionModule, self).run(tmp, task_vars)
|
||||
|
||||
module = self._get_implementation_module(play_context.network_os, self._task.action)
|
||||
|
||||
if not module:
|
||||
result['failed'] = True
|
||||
if self._task.args['fail_on_missing_module']:
|
||||
result['failed'] = True
|
||||
else:
|
||||
result['failed'] = False
|
||||
|
||||
result['msg'] = ('Could not find implementation module %s for %s' %
|
||||
(self._task.action, play_context.network_os))
|
||||
else:
|
||||
|
@ -83,6 +90,8 @@ class ActionModule(ActionBase):
|
|||
if 'network_os' in new_module_args:
|
||||
del new_module_args['network_os']
|
||||
|
||||
del new_module_args['fail_on_missing_module']
|
||||
|
||||
display.vvvv('Running implementation module %s' % module)
|
||||
result.update(self._execute_module(module_name=module,
|
||||
module_args=new_module_args, task_vars=task_vars,
|
||||
|
|
Loading…
Reference in a new issue