diff options
Diffstat (limited to 'ansible_collections/microsoft/ad/plugins/action/domain.py')
-rw-r--r-- | ansible_collections/microsoft/ad/plugins/action/domain.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/ansible_collections/microsoft/ad/plugins/action/domain.py b/ansible_collections/microsoft/ad/plugins/action/domain.py new file mode 100644 index 000000000..36cdb26e5 --- /dev/null +++ b/ansible_collections/microsoft/ad/plugins/action/domain.py @@ -0,0 +1,34 @@ +# Copyright (c) 2022 Ansible Project +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +import typing as t + +from ..plugin_utils._module_with_reboot import ActionModuleWithReboot + + +class ActionModule(ActionModuleWithReboot): + def __init__(self, *args: t.Any, **kwargs: t.Any) -> None: + super().__init__(*args, **kwargs) + self._ran_once = False + + def _ad_should_rerun(self, result: t.Dict[str, t.Any]) -> bool: + ran_once = self._ran_once + self._ran_once = True + + if ran_once or not result.get("_do_action_reboot", False): + return False + + if self._task.check_mode: + # Assume that on a rerun it will not have failed and that it + # ran successfull. + result["failed"] = False + result.pop("msg", None) + return False + + else: + return True + + def _ad_process_result(self, result: t.Dict[str, t.Any]) -> t.Dict[str, t.Any]: + result.pop("_do_action_reboot", None) + + return result |