From 1513da32922f1612ea464286e37903ca64ec0c06 Mon Sep 17 00:00:00 2001 From: Rob Crittenden Date: Feb 08 2018 12:55:52 +0000 Subject: 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 Reviewed-By: Florence Blanc-Renaud --- diff --git a/ipaserver/install/server/upgrade.py b/ipaserver/install/server/upgrade.py index 07cc18a..23173c0 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 0000000..951747b --- /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