mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
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:
committed by
Martin Basti
parent
91913c5ba7
commit
8ad39a974f
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user