summaryrefslogtreecommitdiffstats
path: root/lib/ansible/modules/identity/ipa/ipa_config.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ansible/modules/identity/ipa/ipa_config.py')
-rw-r--r--lib/ansible/modules/identity/ipa/ipa_config.py141
1 files changed, 0 insertions, 141 deletions
diff --git a/lib/ansible/modules/identity/ipa/ipa_config.py b/lib/ansible/modules/identity/ipa/ipa_config.py
deleted file mode 100644
index 8bb3a9a711..0000000000
--- a/lib/ansible/modules/identity/ipa/ipa_config.py
+++ /dev/null
@@ -1,141 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-# Copyright: (c) 2018, Fran Fitzpatrick <francis.x.fitzpatrick@gmail.com>
-# 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
-
-ANSIBLE_METADATA = {'metadata_version': '1.1',
- 'status': ['preview'],
- 'supported_by': 'community'}
-
-
-DOCUMENTATION = r'''
----
-module: ipa_config
-author: Fran Fitzpatrick (@fxfitz)
-short_description: Manage Global FreeIPA Configuration Settings
-description:
-- Modify global configuration settings of a FreeIPA Server.
-options:
- ipadefaultloginshell:
- description: Default shell for new users.
- aliases: ["loginshell"]
- type: str
- ipadefaultemaildomain:
- description: Default e-mail domain for new users.
- aliases: ["emaildomain"]
- type: str
-extends_documentation_fragment: ipa.documentation
-version_added: "2.7"
-'''
-
-EXAMPLES = r'''
-- name: Ensure the default login shell is bash.
- ipa_config:
- ipadefaultloginshell: /bin/bash
- ipa_host: localhost
- ipa_user: admin
- ipa_pass: supersecret
-
-- name: Ensure the default e-mail domain is ansible.com.
- ipa_config:
- ipadefaultemaildomain: ansible.com
- ipa_host: localhost
- ipa_user: admin
- ipa_pass: supersecret
-'''
-
-RETURN = r'''
-config:
- description: Configuration as returned by IPA API.
- returned: always
- type: dict
-'''
-
-import traceback
-
-from ansible.module_utils.basic import AnsibleModule
-from ansible.module_utils.ipa import IPAClient, ipa_argument_spec
-from ansible.module_utils._text import to_native
-
-
-class ConfigIPAClient(IPAClient):
- def __init__(self, module, host, port, protocol):
- super(ConfigIPAClient, self).__init__(module, host, port, protocol)
-
- def config_show(self):
- return self._post_json(method='config_show', name=None)
-
- def config_mod(self, name, item):
- return self._post_json(method='config_mod', name=name, item=item)
-
-
-def get_config_dict(ipadefaultloginshell=None, ipadefaultemaildomain=None):
- config = {}
- if ipadefaultloginshell is not None:
- config['ipadefaultloginshell'] = ipadefaultloginshell
- if ipadefaultemaildomain is not None:
- config['ipadefaultemaildomain'] = ipadefaultemaildomain
-
- return config
-
-
-def get_config_diff(client, ipa_config, module_config):
- return client.get_diff(ipa_data=ipa_config, module_data=module_config)
-
-
-def ensure(module, client):
- module_config = get_config_dict(
- ipadefaultloginshell=module.params.get('ipadefaultloginshell'),
- ipadefaultemaildomain=module.params.get('ipadefaultemaildomain'),
- )
- ipa_config = client.config_show()
- diff = get_config_diff(client, ipa_config, module_config)
-
- changed = False
- new_config = {}
- for module_key in diff:
- if module_config.get(module_key) != ipa_config.get(module_key, None):
- changed = True
- new_config.update({module_key: module_config.get(module_key)})
-
- if changed and not module.check_mode:
- client.config_mod(name=None, item=new_config)
-
- return changed, client.config_show()
-
-
-def main():
- argument_spec = ipa_argument_spec()
- argument_spec.update(
- ipadefaultloginshell=dict(type='str', aliases=['loginshell']),
- ipadefaultemaildomain=dict(type='str', aliases=['emaildomain']),
- )
-
- module = AnsibleModule(
- argument_spec=argument_spec,
- supports_check_mode=True
- )
-
- client = ConfigIPAClient(
- module=module,
- host=module.params['ipa_host'],
- port=module.params['ipa_port'],
- protocol=module.params['ipa_prot']
- )
-
- try:
- client.login(
- username=module.params['ipa_user'],
- password=module.params['ipa_pass']
- )
- changed, user = ensure(module, client)
- module.exit_json(changed=changed, user=user)
- except Exception as e:
- module.fail_json(msg=to_native(e), exception=traceback.format_exc())
-
-
-if __name__ == '__main__':
- main()