summaryrefslogtreecommitdiffstats
path: root/ipaserver
diff options
context:
space:
mode:
authorFlorence Blanc-Renaud <flo@redhat.com>2017-01-24 16:55:07 +0100
committerMartin Basti <mbasti@redhat.com>2017-02-02 13:44:47 +0100
commit066f5b7c904208d0fd79862dfaa7166fff42fd30 (patch)
tree36698e233f859b44856e2f1f4fc69dfaaad04b7e /ipaserver
parent5de70e31999eb219bd47aa81b0c003a6c15cf748 (diff)
downloadfreeipa-066f5b7c904208d0fd79862dfaa7166fff42fd30.tar.gz
freeipa-066f5b7c904208d0fd79862dfaa7166fff42fd30.tar.xz
freeipa-066f5b7c904208d0fd79862dfaa7166fff42fd30.zip
ipa-kra-install must create directory if it does not exist
ipa-kra-install creates an admin cert file in /root/.dogtag/pki-tomcat/ca_admin.cert but does not check that the parent directory exists. This situation can happen when uninstall + restore has been run. The fix creates the directory if not present. https://fedorahosted.org/freeipa/ticket/6606 Reviewed-By: Christian Heimes <cheimes@redhat.com>
Diffstat (limited to 'ipaserver')
-rw-r--r--ipaserver/install/krainstance.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/ipaserver/install/krainstance.py b/ipaserver/install/krainstance.py
index 95672ee5c..f16a1748f 100644
--- a/ipaserver/install/krainstance.py
+++ b/ipaserver/install/krainstance.py
@@ -259,6 +259,10 @@ class KRAInstance(DogtagInstance):
else:
# the admin cert file is needed for the first instance of KRA
cert = DogtagInstance.get_admin_cert(self)
+ # First make sure that the directory exists
+ parentdir = os.path.dirname(paths.ADMIN_CERT_PATH)
+ if not os.path.exists(parentdir):
+ os.makedirs(parentdir)
with open(paths.ADMIN_CERT_PATH, "w") as admin_path:
admin_path.write(cert)