mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-01-26 16:16:31 -06:00
Improve PKI subsystem detection
The dogtaginstance.is_installed() method currently relies on the presence of the directory /var/lib/pki/pki-tomcat/{ca|kra}, even if it is empty. An unwanted consequence is ipa-server-upgrade wrongly assuming the KRA is installed and crashing when trying to upgrade a not-installed component. The fix relies on the command "pki-server subsystem-show {ca|kra}" to detect if a subsystem is installed. The command does not require PKI to be running (hence can be called anytime) and is delivered by the pki-server package which is already required by ipa server pkg. Fixes: https://pagure.io/freeipa/issue/8596 Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
This commit is contained in:
parent
cfa1d69bdb
commit
930453b65e
@ -177,8 +177,14 @@ class DogtagInstance(service.Service):
|
||||
|
||||
Returns True/False
|
||||
"""
|
||||
return os.path.exists(os.path.join(
|
||||
paths.VAR_LIB_PKI_TOMCAT_DIR, self.subsystem.lower()))
|
||||
try:
|
||||
result = ipautil.run(
|
||||
['pki-server', 'subsystem-show', self.subsystem.lower()],
|
||||
capture_output=True)
|
||||
# parse the command output
|
||||
return 'Enabled: True' in result.output
|
||||
except ipautil.CalledProcessError:
|
||||
return False
|
||||
|
||||
def spawn_instance(self, cfg_file, nolog_list=()):
|
||||
"""
|
||||
|
Loading…
Reference in New Issue
Block a user