Refresh resolvers after DNS install

Server framework calls acutil.res_send() to send DNS queries used
for various DNS tests. However, once acutil is imported it does
not change its list of configured resolvers even when
/etc/resolv.conf is changed. This may lead to unexpected
resolution issues.

We should at least reload httpd when we change /etc/resolv.conf to
point to FreeIPA nameserver to force a new import of acutil and
thus workaround this bug until it is resolved in authconfig.

https://fedorahosted.org/freeipa/ticket/2481
This commit is contained in:
Martin Kosek 2012-03-06 13:26:45 +01:00 committed by Rob Crittenden
parent 79d4a34cc9
commit c956b3cd2b
3 changed files with 13 additions and 8 deletions

View File

@ -22,7 +22,7 @@
import traceback
from ipaserver.plugins.ldap2 import ldap2
from ipaserver.install import bindinstance, ntpinstance
from ipaserver.install import service, bindinstance, ntpinstance, httpinstance
from ipaserver.install.installutils import *
from ipaserver.install import installutils
from ipapython import version
@ -223,6 +223,11 @@ def main():
zone_notif=options.zone_notif)
bind.create_instance()
# Restart http instance to make sure acutil has the right resolver
# https://bugzilla.redhat.com/show_bug.cgi?id=800368
http = httpinstance.HTTPInstance(fstore)
service.print_msg("Restarting the web server")
http.restart()
print "=============================================================================="
print "Setup complete"

View File

@ -456,13 +456,13 @@ def main():
service.print_msg("Restarting the KDC")
krb.restart()
if options.setup_dns:
install_bind(config, options)
# Restart httpd to pick up the new IPA configuration
service.print_msg("Restarting the web server")
http.restart()
if options.setup_dns:
install_bind(config, options)
# Call client install script
try:
args = ["/usr/sbin/ipa-client-install", "--on-master", "--unattended", "--domain", config.domain_name, "--server", config.host_name, "--realm", config.realm_name]

View File

@ -1009,10 +1009,6 @@ def main():
service.print_msg("Restarting the KDC")
krb.restart()
# Restart httpd to pick up the new IPA configuration
service.print_msg("Restarting the web server")
http.restart()
# Create a BIND instance
bind = bindinstance.BindInstance(fstore, dm_password)
bind.setup(host_name, ip_address, realm_name, domain_name, dns_forwarders,
@ -1026,6 +1022,10 @@ def main():
else:
bind.create_sample_bind_zone()
# Restart httpd to pick up the new IPA configuration
service.print_msg("Restarting the web server")
http.restart()
# Set the admin user kerberos password
ds.change_admin_password(admin_password)