diff --git a/plugins/modules/ipaservice.py b/plugins/modules/ipaservice.py index f5cf5ddce79d6918adfb5a668ee9842cc03be64f..34ba7db76ff449e6f50eb470703b8d5b26b4b792 100644 --- a/plugins/modules/ipaservice.py +++ b/plugins/modules/ipaservice.py @@ -217,6 +217,7 @@ from ansible.module_utils.ansible_freeipa_module import temp_kinit, \ temp_kdestroy, valid_creds, api_connect, api_command, compare_args_ipa, \ encode_certificate, gen_add_del_lists, module_params_get, to_text, \ api_check_param +import ipalib.errors def find_service(module, name): @@ -224,13 +225,13 @@ def find_service(module, name): "all": True, } - _result = api_command(module, "service_find", to_text(name), _args) + try: + _result = api_command(module, "service_show", to_text(name), _args) + except ipalib.errors.NotFound: + return None - if len(_result["result"]) > 1: - module.fail_json( - msg="There is more than one service '%s'" % (name)) - elif len(_result["result"]) == 1: - _res = _result["result"][0] + if "result" in _result: + _res = _result["result"] certs = _res.get("usercertificate") if certs is not None: _res["usercertificate"] = [encode_certificate(cert) for