Use common functions for handling import errors (#51851)

* Use common functions for handling import errors

* use refactored version of gitlab modules
This commit is contained in:
Jordan Borean 2019-02-08 07:51:16 +10:00 committed by Sam Doran
commit c1e51ef486
39 changed files with 233 additions and 93 deletions

View file

@ -103,15 +103,18 @@ RETURN = '''
'''
import time
import traceback
import warnings
HPILO_IMP_ERR = None
try:
import hpilo
HAS_HPILO = True
except ImportError:
HPILO_IMP_ERR = traceback.format_exc()
HAS_HPILO = False
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.basic import AnsibleModule, missing_required_lib
# Suppress warnings from hpilo
@ -134,7 +137,7 @@ def main():
)
if not HAS_HPILO:
module.fail_json(msg='The hpilo python module is required')
module.fail_json(msg=missing_required_lib('python-hpilo'), exception=HPILO_IMP_ERR)
host = module.params['host']
login = module.params['login']

View file

@ -120,15 +120,18 @@ hw_uuid:
'''
import re
import traceback
import warnings
HPILO_IMP_ERR = None
try:
import hpilo
HAS_HPILO = True
except ImportError:
HPILO_IMP_ERR = traceback.format_exc()
HAS_HPILO = False
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.basic import AnsibleModule, missing_required_lib
# Suppress warnings from hpilo
@ -161,7 +164,7 @@ def main():
)
if not HAS_HPILO:
module.fail_json(msg='The hpilo python module is required')
module.fail_json(msg=missing_required_lib('python-hpilo'), exception=HPILO_IMP_ERR)
host = module.params['host']
login = module.params['login']

View file

@ -262,20 +262,25 @@ import atexit
import datetime
import itertools
import os
import traceback
LXML_ETREE_IMP_ERR = None
try:
import lxml.etree
HAS_LXML_ETREE = True
except ImportError:
LXML_ETREE_IMP_ERR = traceback.format_exc()
HAS_LXML_ETREE = False
XMLJSON_COBRA_IMP_ERR = None
try:
from xmljson import cobra
HAS_XMLJSON_COBRA = True
except ImportError:
XMLJSON_COBRA_IMP_ERR = traceback.format_exc()
HAS_XMLJSON_COBRA = False
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.basic import AnsibleModule, missing_required_lib
from ansible.module_utils.urls import fetch_url
@ -334,10 +339,10 @@ def main():
)
if not HAS_LXML_ETREE:
module.fail_json(msg='module requires the lxml Python library installed on the managed host')
module.fail_json(msg=missing_required_lib('lxml'), exception=LXML_ETREE_IMP_ERR)
if not HAS_XMLJSON_COBRA:
module.fail_json(msg='module requires the xmljson (>= 0.1.8) Python library installed on the managed host')
module.fail_json(msg=missing_required_lib('xmljson >= 0.1.8'), exception=XMLJSON_COBRA_IMP_ERR)
hostname = module.params['hostname']
username = module.params['username']

View file

@ -110,12 +110,16 @@ EXAMPLES = '''
state: absent
'''
import traceback
PYGHMI_IMP_ERR = None
try:
from pyghmi.ipmi import command
except ImportError:
PYGHMI_IMP_ERR = traceback.format_exc()
command = None
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.basic import AnsibleModule, missing_required_lib
def main():
@ -134,7 +138,7 @@ def main():
)
if command is None:
module.fail_json(msg='the python pyghmi module is required')
module.fail_json(msg=missing_required_lib('pyghmi'), exception=PYGHMI_IMP_ERR)
name = module.params['name']
port = module.params['port']

View file

@ -74,12 +74,16 @@ EXAMPLES = '''
state: on
'''
import traceback
PYGHMI_IMP_ERR = None
try:
from pyghmi.ipmi import command
except ImportError:
PYGHMI_IMP_ERR = traceback.format_exc()
command = None
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.basic import AnsibleModule, missing_required_lib
def main():
@ -96,7 +100,7 @@ def main():
)
if command is None:
module.fail_json(msg='the python pyghmi module is required')
module.fail_json(msg=missing_required_lib('pyghmi'), exception=PYGHMI_IMP_ERR)
name = module.params['name']
port = module.params['port']

View file

@ -161,15 +161,19 @@ RETURN = r'''
#
'''
import traceback
IMPORT_IMP_ERR = None
try:
from importlib import import_module
HAS_IMPORT_MODULE = True
except Exception:
IMPORT_IMP_ERR = traceback.format_exc()
HAS_IMPORT_MODULE = False
from copy import deepcopy
import json
from ansible.module_utils.basic import AnsibleModule
from ansible.module_utils.basic import AnsibleModule, missing_required_lib
from ansible.module_utils.remote_management.ucs import UCSModule, ucs_argument_spec
@ -241,7 +245,7 @@ def main():
)
if not HAS_IMPORT_MODULE:
module.fail_json(msg='import_module is required for this module')
module.fail_json(msg=missing_required_lib('importlib'), exception=IMPORT_IMP_ERR)
ucs = UCSModule(module)
ucs.result['err'] = False