summaryrefslogtreecommitdiffstats
path: root/ipalib/util.py
diff options
context:
space:
mode:
Diffstat (limited to 'ipalib/util.py')
-rw-r--r--ipalib/util.py16
1 files changed, 9 insertions, 7 deletions
diff --git a/ipalib/util.py b/ipalib/util.py
index 64ac6b2cf..50da74327 100644
--- a/ipalib/util.py
+++ b/ipalib/util.py
@@ -28,11 +28,12 @@ import socket
import re
from types import NoneType
from weakref import WeakKeyDictionary
+from dns import resolver, rdatatype
+from dns.exception import DNSException
from ipalib import errors
from ipalib.text import _
from ipalib.dn import DN, RDN
-from ipapython import dnsclient
from ipapython.ipautil import decode_ssh_pubkey
@@ -88,16 +89,17 @@ def validate_host_dns(log, fqdn):
"""
See if the hostname has a DNS A record.
"""
- rs = dnsclient.query(fqdn + '.', dnsclient.DNS_C_IN, dnsclient.DNS_T_A)
- if len(rs) == 0:
+ try:
+ answers = resolver.query(fqdn, rdatatype.A)
log.debug(
- 'IPA: DNS A record lookup failed for %s' % fqdn
+ 'IPA: found %d records for %s: %s' % (len(answers), fqdn,
+ ' '.join(str(answer) for answer in answers))
)
- raise errors.DNSNotARecordError()
- else:
+ except DNSException, e:
log.debug(
- 'IPA: found %d records for %s' % (len(rs), fqdn)
+ 'IPA: DNS A record lookup failed for %s' % fqdn
)
+ raise errors.DNSNotARecordError()
def isvalid_base64(data):
"""