Server IP : 85.214.239.14 / Your IP : 3.149.25.87 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/dellemc/openmanage/plugins/modules/ |
Upload File : |
#!/usr/bin/python # -*- coding: utf-8 -*- # # Dell EMC OpenManage Ansible Modules # Version 5.0.1 # Copyright (C) 2018-2022 Dell Inc. or its subsidiaries. All Rights Reserved. # GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) # from __future__ import (absolute_import, division, print_function) __metaclass__ = type DOCUMENTATION = """ --- module: idrac_reset short_description: Reset iDRAC version_added: "2.1.0" description: - This module resets iDRAC. - "iDRAC is not accessible for some time after running this module. It is recommended to wait for some time, before trying to connect to iDRAC." extends_documentation_fragment: - dellemc.openmanage.idrac_auth_options requirements: - "omsdk >= 1.2.488" - "python >= 3.8.6" author: - "Felix Stephen (@felixs88)" - "Anooja Vardhineni (@anooja-vardhineni)" notes: - Run this module from a system that has direct access to DellEMC iDRAC. - This module supports C(check_mode). """ EXAMPLES = """ --- - name: Reset iDRAC dellemc.openmanage.idrac_reset: idrac_ip: "192.168.0.1" idrac_user: "user_name" idrac_password: "user_password" idrac_port: 443 ca_path: "/path/to/ca_cert.pem" """ RETURN = r''' --- msg: description: Status of the iDRAC reset operation. returned: always type: str sample: "Successfully performed iDRAC reset." reset_status: description: Details of iDRAC reset operation. returned: always type: dict sample: { "idracreset": { "Data": { "StatusCode": 204 }, "Message": "none", "Status": "Success", "StatusCode": 204, "retval": true } } error_info: description: Details of the HTTP Error. returned: on HTTP error type: dict sample: { "error": { "code": "Base.1.0.GeneralError", "message": "A general error has occurred. See ExtendedInfo for more information.", "@Message.ExtendedInfo": [ { "MessageId": "GEN1234", "RelatedProperties": [], "Message": "Unable to process the request because an error occurred.", "MessageArgs": [], "Severity": "Critical", "Resolution": "Retry the operation. If the issue persists, contact your system administrator." } ] } } ''' import json from ansible_collections.dellemc.openmanage.plugins.module_utils.dellemc_idrac import iDRACConnection, idrac_auth_params from ansible.module_utils.basic import AnsibleModule from ansible.module_utils.six.moves.urllib.error import URLError, HTTPError from ansible.module_utils.urls import ConnectionError, SSLValidationError def run_idrac_reset(idrac, module): if module.check_mode: msg = {'Status': 'Success', 'Message': 'Changes found to commit!', 'changes_applicable': True} else: idrac.use_redfish = True msg = idrac.config_mgr.reset_idrac() return msg def main(): specs = {} specs.update(idrac_auth_params) module = AnsibleModule( argument_spec=specs, supports_check_mode=True) try: with iDRACConnection(module.params) as idrac: msg = run_idrac_reset(idrac, module) except HTTPError as err: module.fail_json(msg=str(err), error_info=json.load(err)) except URLError as err: module.exit_json(msg=str(err), unreachable=True) except (RuntimeError, SSLValidationError, ConnectionError, KeyError, ImportError, ValueError, TypeError) as e: module.fail_json(msg=str(e)) module.exit_json(msg="Successfully performed iDRAC reset.", reset_status=msg) if __name__ == '__main__': main()