Hello,

The attached patch fixes wrong imports in copy-schema-to-ca.py script.

https://fedorahosted.org/freeipa/ticket/6003

From 8c72d5257f0643ca486f6c7a2649123a72e5ceb2 Mon Sep 17 00:00:00 2001
From: Stanislav Laznicka <slazn...@redhat.com>
Date: Tue, 28 Jun 2016 14:37:34 +0200
Subject: [PATCH] Fix wrong imports in copy-schema-to-ca.py

Some imports were not possible in old versions of IPA. This caused
import exceptions on the script start.

https://fedorahosted.org/freeipa/ticket/6003
---
 install/share/copy-schema-to-ca.py | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/install/share/copy-schema-to-ca.py b/install/share/copy-schema-to-ca.py
index c2f070aa29b7abf1cb32c46020ae80450cfd5080..6cbe3ddec42ce89e6a8ddecaf0a0f561cb0175d0 100755
--- a/install/share/copy-schema-to-ca.py
+++ b/install/share/copy-schema-to-ca.py
@@ -21,7 +21,17 @@ from ipapython import ipautil
 from ipapython.ipa_log_manager import root_logger, standard_logging_setup
 from ipaserver.install.dsinstance import schema_dirname
 from ipalib import api
-from ipaplatform.constants import constants
+
+try:
+    # BE CAREFUL when using the constants module - you need to define all
+    # the constants separately because of old IPA installations
+    from ipaplatform.constants import constants
+    PKI_USER = constants.PKI_USER
+    DS_USER = constants.DS_USER
+except ImportError:
+    # oh dear, this is an old IPA (3.0+)
+    from ipaserver.install.dsinstance import DS_USER   #pylint: disable=E0611
+    from ipaserver.install.cainstance import PKI_USER  #pylint: disable=E0611
 
 try:
     from ipaplatform import services
@@ -52,8 +62,8 @@ def _sha1_file(filename):
 def add_ca_schema():
     """Copy IPA schema files into the CA DS instance
     """
-    pki_pent = pwd.getpwnam(constants.PKI_USER)
-    ds_pent = pwd.getpwnam(constants.DS_USER)
+    pki_pent = pwd.getpwnam(PKI_USER)
+    ds_pent = pwd.getpwnam(DS_USER)
     for schema_fname in SCHEMA_FILENAMES:
         source_fname = os.path.join(ipautil.SHARE_DIR, schema_fname)
         target_fname = os.path.join(schema_dirname(SERVERID), schema_fname)
-- 
2.5.5

-- 
Manage your subscription for the Freeipa-devel mailing list:
https://www.redhat.com/mailman/listinfo/freeipa-devel
Contribute to FreeIPA: http://www.freeipa.org/page/Contribute/Code

Reply via email to