ipa-dns-install: Do not check for zone overlap when DNS installed.

When DNS is already installed somewhere in topology we should not check for
zone overlap because it would always say that we are overlapping our own domain.
ipa-replica-install already does that but ipa-dns-install did not.

https://fedorahosted.org/freeipa/ticket/5564

Reviewed-By: Petr Spacek <pspacek@redhat.com>
Reviewed-By: Petr Vobornik <pvoborni@redhat.com>
This commit is contained in:
David Kupka
2015-12-17 16:16:09 +01:00
committed by Martin Basti
parent 91913c5ba7
commit 8ad39a974f
4 changed files with 12 additions and 20 deletions

View File

@@ -134,7 +134,7 @@ def main():
options.setup_ca = None # must be None to enable autodetection
dns_installer.install_check(True, False, options, hostname=api.env.host)
dns_installer.install_check(True, api, False, options, hostname=api.env.host)
dns_installer.install(True, False, options)
# Restart http instance to make sure that python-dns has the right resolver

View File

@@ -99,20 +99,7 @@ def _disable_dnssec():
conn.update_entry(entry)
def check_dns_enabled(api):
try:
api.Backend.rpcclient.connect()
result = api.Backend.rpcclient.forward(
'dns_is_enabled',
version=u'2.112', # All the way back to 3.0 servers
)
return result['result']
finally:
if api.Backend.rpcclient.isconnected():
api.Backend.rpcclient.disconnect()
def install_check(standalone, replica, options, hostname):
def install_check(standalone, api, replica, options, hostname):
global ip_addresses
global reverse_zones
fstore = sysrestore.FileStore(paths.SYSRESTORE)
@@ -121,8 +108,13 @@ def install_check(standalone, replica, options, hostname):
raise RuntimeError("Integrated DNS requires '%s' package" %
constants.IPA_DNS_PACKAGE_NAME)
# when installing first replica with DNS we need to check zone overlap
if not replica or not check_dns_enabled(api):
# when installing first DNS instance we need to check zone overlap
if replica or standalone:
already_enabled = api.Command.dns_is_enabled()['result']
else:
already_enabled = False
if not already_enabled:
domain = dnsutil.DNSName(util.normalize_zone(api.env.domain))
print("Checking DNS domain %s, please wait ..." % domain)
try:

View File

@@ -691,7 +691,7 @@ def install_check(installer):
ca.install_check(False, None, options)
if options.setup_dns:
dns.install_check(False, False, options, host_name)
dns.install_check(False, api, False, options, host_name)
ip_addresses = dns.ip_addresses
else:
ip_addresses = get_server_ip_address(host_name,

View File

@@ -653,7 +653,7 @@ def install_check(installer):
conn.disconnect()
if options.setup_dns:
dns.install_check(False, True, options, config.host_name)
dns.install_check(False, remote_api, True, options, config.host_name)
config.ips = dns.ip_addresses
else:
config.ips = installutils.get_server_ip_address(
@@ -1175,7 +1175,7 @@ def promote_check(installer):
conn.disconnect()
if options.setup_dns:
dns.install_check(False, True, options, config.host_name)
dns.install_check(False, remote_api, True, options, config.host_name)
else:
config.ips = installutils.get_server_ip_address(
config.host_name, not installer.interactive,