mirror of
https://github.com/freeipa/ansible-freeipa.git
synced 2026-07-31 11:54:47 +00:00
ipahost: fix adding host for servers without DNS configuration.
When using ipahost module with servers where DNS was not configured it failed to add hosts due to an exception raised on `dnsrecord_show` that was not being correctly handled. As the exception was being handled twice, the This patch simply removes one of the handlers, allowing the exception to propagate to the caller, where it is handled. Fixes issue #434.
This commit is contained in:
@@ -439,6 +439,12 @@ def find_host(module, name):
|
|||||||
|
|
||||||
|
|
||||||
def find_dnsrecord(module, name):
|
def find_dnsrecord(module, name):
|
||||||
|
"""
|
||||||
|
Search for a DNS record.
|
||||||
|
|
||||||
|
This function may raise ipalib_errors.NotFound in some cases,
|
||||||
|
and it should be handled by the caller.
|
||||||
|
"""
|
||||||
domain_name = name[name.find(".")+1:]
|
domain_name = name[name.find(".")+1:]
|
||||||
host_name = name[:name.find(".")]
|
host_name = name[:name.find(".")]
|
||||||
|
|
||||||
@@ -447,14 +453,8 @@ def find_dnsrecord(module, name):
|
|||||||
"idnsname": to_text(host_name)
|
"idnsname": to_text(host_name)
|
||||||
}
|
}
|
||||||
|
|
||||||
try:
|
_result = api_command(module, "dnsrecord_show", to_text(domain_name),
|
||||||
_result = api_command(module, "dnsrecord_show", to_text(domain_name),
|
_args)
|
||||||
_args)
|
|
||||||
except ipalib_errors.NotFound as e:
|
|
||||||
msg = str(e)
|
|
||||||
if "record not found" in msg or "zone not found" in msg:
|
|
||||||
return None
|
|
||||||
module.fail_json(msg="dnsrecord_show failed: %s" % msg)
|
|
||||||
|
|
||||||
return _result["result"]
|
return _result["result"]
|
||||||
|
|
||||||
@@ -876,8 +876,11 @@ def main():
|
|||||||
msg = str(e)
|
msg = str(e)
|
||||||
dns_not_configured = "DNS is not configured" in msg
|
dns_not_configured = "DNS is not configured" in msg
|
||||||
dns_zone_not_found = "DNS zone not found" in msg
|
dns_zone_not_found = "DNS zone not found" in msg
|
||||||
if ip_address is None and (
|
dns_res_not_found = "DNS resource record not found" in msg
|
||||||
dns_not_configured or dns_zone_not_found
|
if (
|
||||||
|
dns_res_not_found
|
||||||
|
or ip_address is None
|
||||||
|
and (dns_not_configured or dns_zone_not_found)
|
||||||
):
|
):
|
||||||
# IP address(es) not given and no DNS support in IPA
|
# IP address(es) not given and no DNS support in IPA
|
||||||
# -> Ignore failure
|
# -> Ignore failure
|
||||||
|
|||||||
Reference in New Issue
Block a user