55 lines
1.5 KiB
Python
55 lines
1.5 KiB
Python
# -*- coding:utf-8 -*-
|
|
# Copyright (c), Inspur isib-group, 2020
|
|
|
|
from __future__ import (absolute_import, division, print_function)
|
|
|
|
__metaclass__ = type
|
|
|
|
try:
|
|
import ism
|
|
ism_temp = True
|
|
except ImportError:
|
|
ism_temp = False
|
|
from ansible.module_utils.basic import env_fallback
|
|
from ansible.module_utils.six import iteritems
|
|
|
|
ism_provider_spec = {
|
|
'host': dict(type='str'),
|
|
'username': dict(type='str', fallback=(env_fallback, ['ANSIBLE_NET_USERNAME'])),
|
|
'password': dict(type='str', fallback=(env_fallback, ['ANSIBLE_NET_PASSWORD']), no_log=True),
|
|
}
|
|
ism_argument_spec = {
|
|
'provider': dict(type='dict', options=ism_provider_spec),
|
|
}
|
|
ism_top_spec = {
|
|
'host': dict(type='str'),
|
|
'username': dict(type='str'),
|
|
'password': dict(type='str', no_log=True),
|
|
}
|
|
ism_argument_spec.update(ism_top_spec)
|
|
|
|
|
|
def load_params(module):
|
|
"""load_params"""
|
|
provider = module.params.get('provider') or dict()
|
|
for key, value in iteritems(provider):
|
|
if key in ism_argument_spec:
|
|
if module.params.get(key) is None and value is not None:
|
|
module.params[key] = value
|
|
|
|
|
|
def get_connection(module):
|
|
"""get_connection"""
|
|
load_params(module)
|
|
# result = dict()
|
|
# if module.check_mode:
|
|
# result['changed'] = True
|
|
# result['state'] = 'Success'
|
|
# result['message'] = module.params['subcommand']
|
|
# else:
|
|
dict_param = module.params
|
|
if not ism_temp:
|
|
module.fail_json(msg='inspur_sdk must be installed to use this module')
|
|
result = ism.main(dict_param)
|
|
return result
|