diff --git a/plugins/modules/ipaconfig.py b/plugins/modules/ipaconfig.py index dad9bd9df45d665aea6b6766417ec03573aa16fd..dc27b3411e85f009c0ab4f5b7b7479975d726c61 100644 --- a/plugins/modules/ipaconfig.py +++ b/plugins/modules/ipaconfig.py @@ -34,13 +34,9 @@ author: chris procter short_description: Modify IPA global config options description: - Modify IPA global config options +extends_documentation_fragment: + - ipamodule_base_docs options: - ipaadmin_principal: - description: The admin principal - default: admin - ipaadmin_password: - description: The admin password - required: false maxusername: description: Set the maximum username length between 1-255 required: false @@ -159,7 +155,7 @@ EXAMPLES = ''' tasks: - name: return current values of the global configuration options ipaconfig: - ipaadmin_password: password + ipaadmin_password: SomeADMINpassword register: result - name: display default login shell debug: @@ -167,7 +163,7 @@ EXAMPLES = ''' - name: set defaultshell and maxusername ipaconfig: - ipaadmin_password: password + ipaadmin_password: SomeADMINpassword defaultshell: /bin/bash maxusername: 64 ''' @@ -251,14 +247,12 @@ config: ''' -from ansible.module_utils.basic import AnsibleModule -from ansible.module_utils.ansible_freeipa_module import temp_kinit, \ - temp_kdestroy, valid_creds, api_connect, api_command_no_name, \ - compare_args_ipa, module_params_get, ipalib_errors +from ansible.module_utils.ansible_freeipa_module import \ + IPAAnsibleModule, compare_args_ipa, ipalib_errors def config_show(module): - _result = api_command_no_name(module, "config_show", {}) + _result = module.ipa_command_no_name("config_show", {}) return _result["result"] @@ -270,11 +264,9 @@ def gen_args(params): def main(): - ansible_module = AnsibleModule( + ansible_module = IPAAnsibleModule( argument_spec=dict( # general - ipaadmin_principal=dict(type="str", default="admin"), - ipaadmin_password=dict(type="str", required=False, no_log=True), maxusername=dict(type="int", required=False, aliases=['ipamaxusernamelength']), maxhostname=dict(type="int", required=False, @@ -334,11 +326,6 @@ def main(): # Get parameters # general - ipaadmin_principal = module_params_get(ansible_module, - "ipaadmin_principal") - ipaadmin_password = module_params_get(ansible_module, - "ipaadmin_password") - field_map = { "maxusername": "ipamaxusernamelength", "maxhostname": "ipamaxhostnamelength", @@ -366,7 +353,7 @@ def main(): params = {} for x in field_map: - val = module_params_get(ansible_module, x) + val = ansible_module.params_get(x) if val is not None: params[field_map.get(x, x)] = val @@ -407,14 +394,11 @@ def main(): changed = False exit_args = {} - ccache_dir = None - ccache_name = None res_show = None - try: - if not valid_creds(ansible_module, ipaadmin_principal): - ccache_dir, ccache_name = temp_kinit(ipaadmin_principal, - ipaadmin_password) - api_connect() + + # Connect to IPA API + with ansible_module.ipa_connect(): + if params: res_show = config_show(ansible_module) params = { @@ -425,10 +409,13 @@ def main(): and not compare_args_ipa(ansible_module, params, res_show): changed = True if not ansible_module.check_mode: - api_command_no_name(ansible_module, "config_mod", params) - + try: + ansible_module.ipa_command_no_name("config_mod", + params) + except ipalib_errors.EmptyModlist: + changed = False else: - rawresult = api_command_no_name(ansible_module, "config_show", {}) + rawresult = ansible_module.ipa_command_no_name("config_show", {}) result = rawresult['result'] del result['dn'] for key, value in result.items(): @@ -460,13 +447,6 @@ def main(): exit_args[k] = (value[0] == "TRUE") else: exit_args[k] = value - except ipalib_errors.EmptyModlist: - changed = False - except Exception as e: - ansible_module.fail_json(msg="%s %s" % (params, str(e))) - - finally: - temp_kdestroy(ccache_dir, ccache_name) # Done ansible_module.exit_json(changed=changed, config=exit_args)