mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
DNS install check: allow overlapping zone to be from the master itself
When re-running `ipa-server-install --setup-dns` on already installed server, we do not get to the check of being already installed because DNS zone overlap forces us to fail earlier. Change exception returned for this case from check_zone_overlap() to return structured information that allows to understand whether we are finding a conflict with ourselves. Use the returned information to only fail DNS check at this point if DNS zone overlap is generated by a different name server than ourselves. Reviewed-By: Christian Heimes <cheimes@redhat.com>
This commit is contained in:
committed by
Christian Heimes
parent
6462cc0f3a
commit
dd7fdaa77d
@@ -39,6 +39,12 @@ if six.PY3:
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class DNSZoneAlreadyExists(dns.exception.DNSException):
|
||||
supp_kwargs = {'zone', 'ns'}
|
||||
fmt = (u"DNS zone {zone} already exists in DNS "
|
||||
"and is handled by server(s): {ns}")
|
||||
|
||||
|
||||
@six.python_2_unicode_compatible
|
||||
class DNSName(dns.name.Name):
|
||||
labels = None # make pylint happy
|
||||
@@ -374,10 +380,7 @@ def check_zone_overlap(zone, raise_on_error=True):
|
||||
zone, e)
|
||||
ns = []
|
||||
|
||||
msg = u"DNS zone {0} already exists in DNS".format(zone)
|
||||
if ns:
|
||||
msg += u" and is handled by server(s): {0}".format(', '.join(ns))
|
||||
raise ValueError(msg)
|
||||
raise DNSZoneAlreadyExists(zone=zone.to_text(), ns=ns)
|
||||
|
||||
|
||||
def _mix_weight(records):
|
||||
|
||||
Reference in New Issue
Block a user