mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
win_updates fix when win_updates is run with async (#41756)
This commit is contained in:
parent
8bd245a6a2
commit
11bd3fd318
3 changed files with 40 additions and 1 deletions
2
changelogs/fragments/win_updates-async-fix.yml
Normal file
2
changelogs/fragments/win_updates-async-fix.yml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
bugfixes:
|
||||||
|
- win_updates - Fixed issue where running win_updates on async fails without any error
|
|
@ -213,7 +213,7 @@ class ActionModule(ActionBase):
|
||||||
# so we just return the result as is
|
# so we just return the result as is
|
||||||
# https://github.com/ansible/ansible/issues/38232
|
# https://github.com/ansible/ansible/issues/38232
|
||||||
failed = result.get('failed', False)
|
failed = result.get('failed', False)
|
||||||
if "updates" not in result.keys() or failed:
|
if ("updates" not in result.keys() and self._task.async_val == 0) or failed:
|
||||||
result['failed'] = True
|
result['failed'] = True
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
|
@ -118,3 +118,40 @@ class TestWinUpdatesActionPlugin(object):
|
||||||
assert actual['become'] == e_b
|
assert actual['become'] == e_b
|
||||||
assert actual['become_method'] == e_bmethod
|
assert actual['become_method'] == e_bmethod
|
||||||
assert actual['become_user'] == e_buser
|
assert actual['become_user'] == e_buser
|
||||||
|
|
||||||
|
def test_module_exec_async_result(self, monkeypatch):
|
||||||
|
return_val = {
|
||||||
|
"ansible_async_watchdog_pid": 7584,
|
||||||
|
"ansible_job_id": "545519115287.9620",
|
||||||
|
"changed": True,
|
||||||
|
"finished": 0,
|
||||||
|
"results_file": r"C:\.ansible_async\545519115287.9620",
|
||||||
|
"started": 1
|
||||||
|
}
|
||||||
|
mock_execute = MagicMock(return_value=return_val)
|
||||||
|
monkeypatch.setattr(ActionModule, '_execute_module', mock_execute)
|
||||||
|
|
||||||
|
task = MagicMock(Task)
|
||||||
|
task.args = {}
|
||||||
|
task.async_val = 10
|
||||||
|
|
||||||
|
connection = MagicMock()
|
||||||
|
connection.module_implementation_preferences = ('.ps1', '.exe', '')
|
||||||
|
|
||||||
|
play_context = MagicMock()
|
||||||
|
play_context.check_mode = False
|
||||||
|
play_context.become = True
|
||||||
|
play_context.become_method = 'runas'
|
||||||
|
play_context.become_user = 'SYSTEM'
|
||||||
|
|
||||||
|
plugin = ActionModule(task, connection, play_context, loader=None,
|
||||||
|
templar=None, shared_loader_obj=None)
|
||||||
|
actual = plugin.run(None, {})
|
||||||
|
|
||||||
|
assert actual.get('failed') is None
|
||||||
|
assert actual['ansible_async_watchdog_pid'] == 7584
|
||||||
|
assert actual['ansible_job_id'] == "545519115287.9620"
|
||||||
|
assert actual['changed'] is True
|
||||||
|
assert actual['finished'] == 0
|
||||||
|
assert actual['results_file'] == r"C:\.ansible_async\545519115287.9620"
|
||||||
|
assert actual['started'] == 1
|
||||||
|
|
Loading…
Reference in a new issue