From 5e1ff6ef5fa35715a5b9995388c6d7b16375ac23 Mon Sep 17 00:00:00 2001 From: Christian Heimes Date: Fri, 10 Jul 2015 18:18:29 +0200 Subject: [PATCH] Start dirsrv for kdcproxy upgrade The kdcproxy upgrade step in ipa-server-upgrade needs a running dirsrv instance. Under some circumstances the dirsrv isn't running. The patch rearranges some upgrade steps and starts DS before enable_kdcproxy(). https://fedorahosted.org/freeipa/ticket/5113 Reviewed-By: Martin Basti --- ipaserver/install/server/upgrade.py | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/ipaserver/install/server/upgrade.py b/ipaserver/install/server/upgrade.py index 84a5b06accb10663eaa4d995f66796366040e9c8..f295655dc2aa592e0215f15017c9b65af49eef80 100644 --- a/ipaserver/install/server/upgrade.py +++ b/ipaserver/install/server/upgrade.py @@ -1396,22 +1396,6 @@ def upgrade_configuration(): http.change_mod_nss_port_from_http() http.configure_certmonger_renewal_guard() - if not http.is_kdcproxy_configured(): - root_logger.info('[Enabling KDC Proxy]') - if http.admin_conn is None: - http.ldapi = True - http.fqdn = fqdn - http.realm = api.env.realm - http.suffix = ipautil.realm_to_suffix(api.env.realm) - http.ldap_connect() - http.create_kdcproxy_conf() - http.enable_kdcproxy() - - http.stop() - update_mod_nss_protocol(http) - fix_trust_flags() - http.start() - ds = dsinstance.DsInstance() ds.configure_dirsrv_ccache() @@ -1433,6 +1417,25 @@ def upgrade_configuration(): ds.suffix = ipautil.realm_to_suffix(api.env.realm) ds_enable_sidgen_extdom_plugins(ds) + # Now 389-ds is available, run the remaining http tasks + if not http.is_kdcproxy_configured(): + root_logger.info('[Enabling KDC Proxy]') + if http.admin_conn is None: + # 389-ds needs to be running + ds.start() + http.ldapi = True + http.fqdn = fqdn + http.realm = api.env.realm + http.suffix = ipautil.realm_to_suffix(api.env.realm) + http.ldap_connect() + http.create_kdcproxy_conf() + http.enable_kdcproxy() + + http.stop() + update_mod_nss_protocol(http) + fix_trust_flags() + http.start() + uninstall_selfsign(ds, http) simple_service_list = ( -- 2.1.0