diff --git a/plugins/module_utils/ansible_freeipa_module.py b/plugins/module_utils/ansible_freeipa_module.py index 12c2b29ce00c5ee00cef89fba69f2ca58d1b1f91..7977a8ea77350bab737be5afd7a69ca5243b3f4b 100644 --- a/plugins/module_utils/ansible_freeipa_module.py +++ b/plugins/module_utils/ansible_freeipa_module.py @@ -113,7 +113,7 @@ def temp_kdestroy(ccache_dir, ccache_name): shutil.rmtree(ccache_dir, ignore_errors=True) -def api_connect(): +def api_connect(context=None): """ Create environment, initialize api and connect to ldap2 """ @@ -121,9 +121,20 @@ def api_connect(): env._bootstrap() env._finalize_core(**dict(DEFAULT_CONFIG)) - api.bootstrap(context='server', debug=env.debug, log=None) + # available contexts are 'server', 'ansible-freeipa' and 'cli_installer' + if context is None: + context = 'server' + + api.bootstrap(context=context, debug=env.debug, log=None) api.finalize() - api.Backend.ldap2.connect() + + if api.env.in_server: + backend = api.Backend.ldap2 + else: + backend = api.Backend.rpcclient + + if not backend.isconnected(): + backend.connect() def api_command(module, command, name, args):