mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-04-24 11:21:25 -07:00
refactoring async
- centralized skipping - also fixed module name broken by previous refactor - let action modules handle async processing - moved async into base action class's module exec - action plugins can now run final action as async - actually skip copy if base skips - fixed normal for new paths - ensure internal stat is never async - default poll to 10 as per docs - added hint for callback fix on poll - restructured late tmp, now a pipeline query - moving action handler to connection as networking does - fixed network assumption invocation is always passed - centralized key cleanup, normalized internal var - _supress_tmpdir_delete now in _ansible_xxx and gets removed from results - delay internal key removal till after we use em - nicer tmp removing, using existing methods - moved cleanup tmp flag to mking tmp func
This commit is contained in:
parent
22db51f15c
commit
c86a17b7a0
22 changed files with 254 additions and 371 deletions
|
@ -24,16 +24,26 @@ from ansible.utils.vars import merge_hash
|
|||
class ActionModule(ActionBase):
|
||||
|
||||
def run(self, tmp=None, task_vars=None):
|
||||
if task_vars is None:
|
||||
task_vars = dict()
|
||||
|
||||
# individual modules might disagree but as the generic the action plugin, pass at this point.
|
||||
self._supports_check_mode = True
|
||||
self._supports_async = True
|
||||
|
||||
results = super(ActionModule, self).run(tmp, task_vars)
|
||||
# remove as modules might hide due to nolog
|
||||
del results['invocation']['module_args']
|
||||
results = merge_hash(results, self._execute_module(tmp=tmp, task_vars=task_vars))
|
||||
|
||||
# hack to keep --verbose from showing all the setup module results
|
||||
if self._task.action == 'setup':
|
||||
results['_ansible_verbose_override'] = True
|
||||
if not results.get('skipped'):
|
||||
|
||||
if results.get('invocation', {}).get('module_args'):
|
||||
# avoid passing to modules in case of no_log
|
||||
# should not be set anymore but here for backwards compatibility
|
||||
del results['invocation']['module_args']
|
||||
|
||||
# do work!
|
||||
results = merge_hash(results, self._execute_module(tmp=tmp, task_vars=task_vars, wrap_async=self._task.async))
|
||||
|
||||
# hack to keep --verbose from showing all the setup module results
|
||||
# moved from setup module as now we filter out all _ansible_ from results
|
||||
if self._task.action == 'setup':
|
||||
results['_ansible_verbose_override'] = True
|
||||
|
||||
return results
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue