483b06
From ba42557e2acb526587b07956e75a2a1394882771 Mon Sep 17 00:00:00 2001
483b06
From: Jan Cholasta <jcholast@redhat.com>
483b06
Date: Tue, 28 Feb 2017 10:55:54 +0000
483b06
Subject: [PATCH] server upgrade: always fix certmonger tracking request
483b06
483b06
Fix certmonger tracking requests on every run of ipa-server-upgrade rather
483b06
than only when the tracking configuration has changed and the requests have
483b06
not yet been updated.
483b06
483b06
This allows fixing broken tracking requests just by re-running
483b06
ipa-server-upgrade.
483b06
483b06
https://pagure.io/freeipa/issue/5799
483b06
483b06
Reviewed-By: David Kupka <dkupka@redhat.com>
483b06
Reviewed-By: Stanislav Laznicka <slaznick@redhat.com>
483b06
---
483b06
 ipaserver/install/server/upgrade.py | 28 +++++++---------------------
483b06
 1 file changed, 7 insertions(+), 21 deletions(-)
483b06
483b06
diff --git a/ipaserver/install/server/upgrade.py b/ipaserver/install/server/upgrade.py
483b06
index 7b0476d442902f2c3dc65819d54953e820f5e560..855056dc1fa20e813d82ecc5090a14cfc4f91831 100644
483b06
--- a/ipaserver/install/server/upgrade.py
483b06
+++ b/ipaserver/install/server/upgrade.py
483b06
@@ -905,8 +905,6 @@ def certificate_renewal_update(ca, ds, http):
483b06
     template = paths.CERTMONGER_COMMAND_TEMPLATE
483b06
     serverid = installutils.realm_to_serverid(api.env.realm)
483b06
 
483b06
-    # bump version when requests is changed
483b06
-    version = 6
483b06
     requests = [
483b06
         {
483b06
             'cert-database': paths.PKI_TOMCAT_ALIAS_DIR,
483b06
@@ -971,25 +969,17 @@ def certificate_renewal_update(ca, ds, http):
483b06
         }
483b06
     ]
483b06
 
483b06
-    root_logger.info("[Update certmonger certificate renewal configuration to "
483b06
-                     "version %d]" % version)
483b06
+    root_logger.info("[Update certmonger certificate renewal configuration]")
483b06
     if not ca.is_configured():
483b06
         root_logger.info('CA is not configured')
483b06
         return False
483b06
 
483b06
-    state = 'certificate_renewal_update_%d' % version
483b06
-    if sysupgrade.get_upgrade_state('dogtag', state):
483b06
-        return False
483b06
-
483b06
     # State not set, lets see if we are already configured
483b06
     for request in requests:
483b06
         request_id = certmonger.get_request_id(request)
483b06
         if request_id is None:
483b06
             break
483b06
     else:
483b06
-        sysupgrade.set_upgrade_state('dogtag', state, True)
483b06
-        root_logger.info("Certmonger certificate renewal configuration is "
483b06
-                         "already at version %d" % version)
483b06
         return False
483b06
 
483b06
     # Ok, now we need to stop tracking, then we can start tracking them
483b06
@@ -998,13 +988,11 @@ def certificate_renewal_update(ca, ds, http):
483b06
     ds.stop_tracking_certificates(serverid)
483b06
     http.stop_tracking_certificates()
483b06
 
483b06
-    if not sysupgrade.get_upgrade_state('dogtag',
483b06
-                                        'certificate_renewal_update_1'):
483b06
-        filename = paths.CERTMONGER_CAS_CA_RENEWAL
483b06
-        if os.path.exists(filename):
483b06
-            with installutils.stopped_service('certmonger'):
483b06
-                root_logger.info("Removing %s" % filename)
483b06
-                installutils.remove_file(filename)
483b06
+    filename = paths.CERTMONGER_CAS_CA_RENEWAL
483b06
+    if os.path.exists(filename):
483b06
+        with installutils.stopped_service('certmonger'):
483b06
+            root_logger.info("Removing %s" % filename)
483b06
+            installutils.remove_file(filename)
483b06
 
483b06
     ca.configure_certmonger_renewal()
483b06
     ca.configure_renewal()
483b06
@@ -1013,9 +1001,7 @@ def certificate_renewal_update(ca, ds, http):
483b06
     ds.start_tracking_certificates(serverid)
483b06
     http.start_tracking_certificates()
483b06
 
483b06
-    sysupgrade.set_upgrade_state('dogtag', state, True)
483b06
-    root_logger.info("Certmonger certificate renewal configuration updated to "
483b06
-                     "version %d" % version)
483b06
+    root_logger.info("Certmonger certificate renewal configuration updated")
483b06
     return True
483b06
 
483b06
 def copy_crl_file(old_path, new_path=None):
483b06
-- 
483b06
2.9.3
483b06