Server IP : 85.214.239.14 / Your IP : 18.191.198.245 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /lib/python3/dist-packages/ansible_collections/community/general/plugins/module_utils/mh/ |
Upload File : |
# -*- coding: utf-8 -*- # (c) 2020, Alexei Znamensky <russoz@gmail.com> # Copyright (c) 2020, Ansible Project # Simplified BSD License (see LICENSES/BSD-2-Clause.txt or https://opensource.org/licenses/BSD-2-Clause) # SPDX-License-Identifier: BSD-2-Clause from __future__ import absolute_import, division, print_function __metaclass__ = type from ansible.module_utils.basic import AnsibleModule from ansible_collections.community.general.plugins.module_utils.mh.exceptions import ModuleHelperException as _MHE from ansible_collections.community.general.plugins.module_utils.mh.deco import module_fails_on_exception class ModuleHelperBase(object): module = None ModuleHelperException = _MHE _delegated_to_module = ( 'check_mode', 'get_bin_path', 'warn', 'deprecate', ) def __init__(self, module=None): self._changed = False if module: self.module = module if not isinstance(self.module, AnsibleModule): self.module = AnsibleModule(**self.module) @property def diff_mode(self): return self.module._diff @property def verbosity(self): return self.module._verbosity def do_raise(self, *args, **kwargs): raise _MHE(*args, **kwargs) def __getattr__(self, attr): if attr in self._delegated_to_module: return getattr(self.module, attr) raise AttributeError("ModuleHelperBase has no attribute '%s'" % (attr, )) def __init_module__(self): pass def __run__(self): raise NotImplementedError() def __quit_module__(self): pass def __changed__(self): raise NotImplementedError() @property def changed(self): try: return self.__changed__() except NotImplementedError: return self._changed @changed.setter def changed(self, value): self._changed = value def has_changed(self): raise NotImplementedError() @property def output(self): raise NotImplementedError() @module_fails_on_exception def run(self): self.__init_module__() self.__run__() self.__quit_module__() output = self.output if 'failed' not in output: output['failed'] = False self.module.exit_json(changed=self.has_changed(), **output) @classmethod def execute(cls, module=None): cls(module).run()