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

Patch attached.
From 1f583442cb5c239de84e0f11046baa30d4b12636 Mon Sep 17 00:00:00 2001
From: Martin Basti <mba...@redhat.com>
Date: Tue, 18 Aug 2015 18:01:09 +0200
Subject: [PATCH] Server Upgrade: Start DS before CA is started.

https://fedorahosted.org/freeipa/ticket/5232
---
 ipaserver/install/server/upgrade.py | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/ipaserver/install/server/upgrade.py b/ipaserver/install/server/upgrade.py
index d7480d7cd5477de389ae044e11beea02a278e7d3..0f0fae0103c8d38d19258e662dcb82f6148f2fee 100644
--- a/ipaserver/install/server/upgrade.py
+++ b/ipaserver/install/server/upgrade.py
@@ -1328,6 +1328,13 @@ def upgrade_configuration():
         raise RuntimeError("ipa-rewrite.conf doesn't exists (is this server?)")
 
     # Ok, we are an IPA server, do the additional tests
+    ds_serverid = installutils.realm_to_serverid(api.env.realm)
+    ds = dsinstance.DsInstance()
+
+    # start DS, CA will not start without running DS, and cause error
+    ds_running = ds.is_running(ds_serverid)
+    if not ds_running:
+        ds.start(ds_serverid)
 
     check_certs()
 
@@ -1359,7 +1366,6 @@ def upgrade_configuration():
                     'ca.crl.MasterCRL.enableCRLUpdates', '=')
             sub_dict['CLONE']='#' if crl.lower() == 'true' else ''
 
-        ds_serverid = installutils.realm_to_serverid(api.env.realm)
         ds_dirname = dsinstance.config_dirname(ds_serverid)
 
         upgrade_file(sub_dict, paths.HTTPD_IPA_CONF,
@@ -1396,7 +1402,6 @@ def upgrade_configuration():
     http.change_mod_nss_port_from_http()
     http.configure_certmonger_renewal_guard()
 
-    ds = dsinstance.DsInstance()
     ds.configure_dirsrv_ccache()
 
     # ldap2 connection is not valid after DS restart, close connection otherwise
@@ -1526,6 +1531,11 @@ def upgrade_configuration():
 
     set_sssd_domain_option('ipa_server_mode', 'True')
 
+    if ds_running and not ds.is_running(ds_serverid):
+        ds.start(ds_serverid)
+    elif not ds_running and ds.is_running(ds_serverid):
+        ds.stop(ds_serverid)
+
 
 def upgrade_check(options):
     try:
-- 
2.4.3

-- 
Manage your subscription for the Freeipa-devel mailing list:
https://www.redhat.com/mailman/listinfo/freeipa-devel
Contribute to FreeIPA: http://www.freeipa.org/page/Contribute/Code

Reply via email to