From 8821f7ae8e666b4ae42e232c672d616bf7fbffeb Mon Sep 17 00:00:00 2001 From: Rob Crittenden Date: Sun, 4 Feb 2018 11:40:24 -0500 Subject: [PATCH] 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 --- ipaserver/install/server/upgrade.py | 4 ++-- ipatests/test_integration/test_upgrade.py | 21 +++++++++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 ipatests/test_integration/test_upgrade.py 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 -- 2.14.3