summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRob Crittenden <rcritten@redhat.com>2018-02-04 11:40:24 -0500
committerChristian Heimes <cheimes@redhat.com>2018-02-08 09:39:18 +0100
commit8821f7ae8e666b4ae42e232c672d616bf7fbffeb (patch)
treeb8c8755f1d90d103eac3babe4e6d37a68a4940c1
parent2391c75e3d7efcdc5c2f49defa5138fc7e6def06 (diff)
downloadfreeipa-8821f7ae8e666b4ae42e232c672d616bf7fbffeb.tar.gz
freeipa-8821f7ae8e666b4ae42e232c672d616bf7fbffeb.tar.xz
freeipa-8821f7ae8e666b4ae42e232c672d616bf7fbffeb.zip
Fix detection of KRA installation so upgrades can succeed
Use is_installed() instead of is_configured() because is_installed() does a config file check to see if the service is in use. https://pagure.io/freeipa/issue/7389 Signed-off-by: Rob Crittenden <rcritten@redhat.com> Reviewed-By: Florence Blanc-Renaud <flo@redhat.com>
-rw-r--r--ipaserver/install/server/upgrade.py4
-rw-r--r--ipatests/test_integration/test_upgrade.py21
2 files changed, 23 insertions, 2 deletions
diff --git a/ipaserver/install/server/upgrade.py b/ipaserver/install/server/upgrade.py
index 07cc18a78..23173c0ca 100644
--- a/ipaserver/install/server/upgrade.py
+++ b/ipaserver/install/server/upgrade.py
@@ -1710,7 +1710,7 @@ def upgrade_configuration():
)
upgrade_pki(ca, fstore)
- if kra.is_configured():
+ if kra.is_installed():
logger.info('[Ensuring ephemeralRequest is enabled in KRA]')
kra.backup_config()
value = installutils.get_directive(
@@ -1728,7 +1728,7 @@ def upgrade_configuration():
# by checking status using http
if ca.is_configured():
ca.start('pki-tomcat')
- if kra.is_configured() and not kra.is_running():
+ if kra.is_installed() and not kra.is_running():
# This is for future-proofing in case the KRA is ever standalone.
kra.start('pki-tomcat')
diff --git a/ipatests/test_integration/test_upgrade.py b/ipatests/test_integration/test_upgrade.py
new file mode 100644
index 000000000..951747b0b
--- /dev/null
+++ b/ipatests/test_integration/test_upgrade.py
@@ -0,0 +1,21 @@
+#
+# Copyright (C) 2018 FreeIPA Contributors see COPYING for license
+#
+
+"""
+Module provides tests to verify that the upgrade script works.
+"""
+
+from ipatests.test_integration.base import IntegrationTest
+from ipatests.pytest_plugins.integration import tasks
+
+
+class TestUpgrade(IntegrationTest):
+ @classmethod
+ def install(cls, mh):
+ tasks.install_master(cls.master, setup_dns=False)
+
+ def test_invoke_upgrader(self):
+ cmd = self.master.run_command(['ipa-server-upgrade'],
+ raiseonerr=False)
+ assert cmd.returncode == 0