Allow to add host if AAAA record exists

http://fedorahosted.org/freeipa/ticket/4164

Reviewed-By: Petr Viktorin <pviktori@redhat.com>
This commit is contained in:
Martin Basti 2014-07-09 18:10:50 +02:00 committed by Petr Viktorin
parent 6bb240fa2c
commit ca001814ab
3 changed files with 18 additions and 7 deletions

View File

@ -1119,19 +1119,19 @@ class DefaultGroupError(ExecutionError):
class DNSNotARecordError(ExecutionError):
"""
**4019** Raised when a hostname is not a DNS A record
**4019** Raised when a hostname is not a DNS A/AAAA record
For example:
>>> raise DNSNotARecordError()
Traceback (most recent call last):
...
DNSNotARecordError: Host does not have corresponding DNS A record
DNSNotARecordError: Host does not have corresponding DNS A/AAAA record
"""
errno = 4019
format = _('Host does not have corresponding DNS A record')
format = _('Host does not have corresponding DNS A/AAAA record')
class ManagedGroupError(ExecutionError):
"""

View File

@ -96,18 +96,29 @@ def find_modules_in_dir(src_dir):
def validate_host_dns(log, fqdn):
"""
See if the hostname has a DNS A record.
See if the hostname has a DNS A/AAAA record.
"""
try:
answers = resolver.query(fqdn, rdatatype.A)
log.debug(
'IPA: found %d records for %s: %s' % (len(answers), fqdn,
'IPA: found %d A records for %s: %s' % (len(answers), fqdn,
' '.join(str(answer) for answer in answers))
)
except DNSException, e:
log.debug(
'IPA: DNS A record lookup failed for %s' % fqdn
)
# A record not found, try to find AAAA record
try:
answers = resolver.query(fqdn, rdatatype.AAAA)
log.debug(
'IPA: found %d AAAA records for %s: %s' % (len(answers), fqdn,
' '.join(str(answer) for answer in answers))
)
except DNSException, e:
log.debug(
'IPA: DNS AAAA record lookup failed for %s' % fqdn
)
raise errors.DNSNotARecordError()

View File

@ -684,7 +684,7 @@ class test_host(Declarative):
desc='Try to add host not in DNS %r without force' % fqdn2,
command=('host_add', [fqdn2], {}),
expected=errors.DNSNotARecordError(
reason=u'Host does not have corresponding DNS A record'),
reason=u'Host does not have corresponding DNS A/AAAA record'),
),