Alon Bar-Lev has uploaded a new change for review.

Change subject: packaging: setup: move export/import functions out of utils
......................................................................

packaging: setup: move export/import functions out of utils

these are application specific logic not belongs to utils.

Change-Id: I085f55382779aff91d45f10fb56de33d816b59dc
Signed-off-by: Alon Bar-Lev <[email protected]>
---
M packaging/legacy-setup/common_utils.py
M packaging/legacy-setup/ovirt-engine-reports-setup.py
2 files changed, 116 insertions(+), 136 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-reports refs/changes/20/23520/1

diff --git a/packaging/legacy-setup/common_utils.py 
b/packaging/legacy-setup/common_utils.py
index dd87796..a5b6b59 100755
--- a/packaging/legacy-setup/common_utils.py
+++ b/packaging/legacy-setup/common_utils.py
@@ -15,7 +15,6 @@
 import tempfile
 import random
 import string
-import glob
 
 from StringIO import StringIO
 
@@ -39,12 +38,9 @@
 EXEC_CHKCONFIG="/sbin/chkconfig"
 
 FILE_PG_PASS="/etc/ovirt-engine/.pgpass"
-DIR_DATABASE_REPORTS_CONFIG = 
"/etc/ovirt-engine-reports/ovirt-engine-reports.conf.d/"
-FILE_DATABASE_REPORTS_CONFIG = "10-setup-database.conf"
 PGPASS_FILE_USER_LINE = "DB USER credentials"
 PGPASS_FILE_ADMIN_LINE = "DB ADMIN credentials"
 FILE_ENGINE_CONFIG_BIN="/usr/bin/engine-config"
-JRS_PACKAGE_PATH="/usr/share/jasperreports-server"
 
 ENGINE_DBSCRIPTS_PATH="/usr/share/ovirt-engine/dbscripts"
 
@@ -648,109 +644,6 @@
     output, rc = execExternalCmd(cmd, True, "Failed to get package version & 
release")
     return output.rstrip()
 
-@transactionDisplay("Importing reports")
-def importReports(src, update=True):
-    """
-    import the reports
-    """
-    logging.debug("importing reports")
-    current_dir = os.getcwd()
-    os.chdir("%s/buildomatic" % JRS_PACKAGE_PATH)
-    cmd = "./js-import.sh --input-dir %s" % src
-    if update:
-        cmd = cmd + " --update"
-    execExternalCmd(cmd, True, "Failed while importing reports")
-    os.chdir(current_dir)
-
-def fixNullUserPasswords(tempDir, loc):
-    logging.debug("fixNullUserPasswords started for %s" % tempDir)
-    fixedFiles = []
-    for f in glob.glob(os.path.join(tempDir, loc, '*.xml')):
-        xmlObj = XMLConfigFileHandler(f)
-        xmlObj.open()
-        node = getXmlNode(xmlObj, '/user/password')
-        if node.getContent() == 'ENC<null>':
-            fixedFiles.append(f)
-            node.setContent('ENC<>')
-        xmlObj.close()
-    logging.debug("fixNullUserPasswords fixed: %s" % fixedFiles)
-
-@transactionDisplay("Exporting current users")
-def exportUsers():
-    """
-    export all users from jasper
-    """
-    logging.debug("exporting users from reports")
-    current_dir = os.getcwd()
-
-    # Create a temp directory
-    tempDir =  tempfile.mkdtemp()
-    logging.debug("temp directory: %s" % tempDir)
-
-    os.chdir("%s/buildomatic" % JRS_PACKAGE_PATH)
-
-    # Export all users from jasper into the temp directory
-    logging.debug("Exporting users to %s" % tempDir)
-    cmd = "./js-export.sh --output-dir %s --users --roles" % tempDir
-    execExternalCmd(cmd, True, "Failed while exporting users")
-    fixNullUserPasswords(tempDir, 'users/organization_1')
-
-    os.chdir(current_dir)
-    return tempDir
-
-def exportReportsRepository():
-    """
-    export all resources
-    """
-    logging.debug("exporting reports repository")
-    current_dir = os.getcwd()
-
-    # Create a temp directory
-    tempDir =  tempfile.mkdtemp()
-    logging.debug("temp directory: %s" % tempDir)
-
-    os.chdir("%s/buildomatic" % JRS_PACKAGE_PATH)
-
-    # Export all users from jasper into the temp directory
-    logging.debug("Exporting repository to %s" % tempDir)
-    cmd = "./js-export.sh --output-dir %s --everything" % tempDir
-    execExternalCmd(cmd, True, "Failed while exporting users")
-    fixNullUserPasswords(tempDir, 'users')
-
-    os.chdir(current_dir)
-    return tempDir
-
-@transactionDisplay("Importing current users")
-def importUsers(inputDir, update=True):
-    """
-    import all users from a given directory
-    """
-    logging.debug("importing users into reports")
-    current_dir = os.getcwd()
-
-    try:
-        os.chdir("%s/buildomatic" % JRS_PACKAGE_PATH)
-
-        # Export all users from jasper into the temp directory
-        logging.debug("importing users from %s" % inputDir)
-        cmd = "./js-import.sh --input-dir %s" % inputDir
-        if update:
-            cmd = cmd + " --update"
-        execExternalCmd(cmd, True, "Failed while importing users")
-    except:
-        logging.error("exception caught, re-raising")
-        raise
-    finally:
-        os.chdir(current_dir)
-
-def restoreDefaultUsersXmlFiles(tempDir):
-    logging.debug("restoring default users xml files")
-    destDir = "/usr/share/ovirt-engine-reports/reports"
-    shutil.rmtree("%s/users" % destDir)
-    shutil.copytree("%s/users" % tempDir, "%s/users" % destDir)
-    shutil.rmtree(tempDir)
-
-
 def dbExists(db_dict, TEMP_PGPASS):
 
     exists = False
@@ -1289,29 +1182,6 @@
         query=sql_query_set,
         database=db_dict['dbname'],
     )
-
-
-def storeConf(db_dict):
-    if not os.path.exists(DIR_DATABASE_REPORTS_CONFIG):
-        os.makedirs(DIR_DATABASE_REPORTS_CONFIG)
-    with open(
-        os.path.join(
-            DIR_DATABASE_REPORTS_CONFIG,
-            FILE_DATABASE_REPORTS_CONFIG
-        ),
-        'w'
-    ) as rf:
-        rf.write(
-            (
-                'REPORTS_DB_DATABASE={database}\n'
-                'REPORTS_DB_USER={user}\n'
-                'REPORTS_DB_PASSWORD={password}'
-            ).format(
-                database=db_dict['dbname'],
-                user=db_dict['username'],
-                password=db_dict['password'],
-            )
-        )
 
 
 def userExists(user):
diff --git a/packaging/legacy-setup/ovirt-engine-reports-setup.py 
b/packaging/legacy-setup/ovirt-engine-reports-setup.py
index 6a8fa00..89d007c 100755
--- a/packaging/legacy-setup/ovirt-engine-reports-setup.py
+++ b/packaging/legacy-setup/ovirt-engine-reports-setup.py
@@ -52,6 +52,8 @@
 REPORTS_DB_USER = 'engine_reports'
 DWH_DB_USER = 'engine_history'
 
+DIR_DATABASE_REPORTS_CONFIG = 
"/etc/ovirt-engine-reports/ovirt-engine-reports.conf.d/"
+JRS_PACKAGE_PATH="/usr/share/jasperreports-server"
 REPORTS_SERVER_DIR = "/usr/share/%s"  % JRS_PACKAGE_NAME
 REPORTS_SERVER_BUILDOMATIC_DIR = "%s/buildomatic" % REPORTS_SERVER_DIR
 REPORTS_DB_UPGRADE_SCRIPTS_DIR = "%s/install_resources/sql/postgresql" % 
REPORTS_SERVER_BUILDOMATIC_DIR
@@ -291,6 +293,101 @@
     
xml_editor.editParams({'/jdbcDataSource/connectionUser':db_dict["dwh_db_user"]})
     
xml_editor.editParams({'/jdbcDataSource/connectionPassword':db_dict["dwh_db_password"]})
     xml_editor.close()
+
+@transactionDisplay("Importing reports")
+def importReports(src, update=True):
+    """
+    import the reports
+    """
+    logging.debug("importing reports")
+    current_dir = os.getcwd()
+    os.chdir("%s/buildomatic" % JRS_PACKAGE_PATH)
+    cmd = "./js-import.sh --input-dir %s" % src
+    if update:
+        cmd = cmd + " --update"
+    utils.execExternalCmd(cmd, True, "Failed while importing reports")
+    os.chdir(current_dir)
+
+def fixNullUserPasswords(tempDir, loc):
+    logging.debug("fixNullUserPasswords started for %s" % tempDir)
+    fixedFiles = []
+    for f in glob.glob(os.path.join(tempDir, loc, '*.xml')):
+        xmlObj = utils.XMLConfigFileHandler(f)
+        xmlObj.open()
+        node = utils.getXmlNode(xmlObj, '/user/password')
+        if node.getContent() == 'ENC<null>':
+            fixedFiles.append(f)
+            node.setContent('ENC<>')
+        xmlObj.close()
+    logging.debug("fixNullUserPasswords fixed: %s" % fixedFiles)
+
+@transactionDisplay("Exporting current users")
+def exportUsers():
+    """
+    export all users from jasper
+    """
+    logging.debug("exporting users from reports")
+    current_dir = os.getcwd()
+
+    # Create a temp directory
+    tempDir =  tempfile.mkdtemp()
+    logging.debug("temp directory: %s" % tempDir)
+
+    os.chdir("%s/buildomatic" % JRS_PACKAGE_PATH)
+
+    # Export all users from jasper into the temp directory
+    logging.debug("Exporting users to %s" % tempDir)
+    cmd = "./js-export.sh --output-dir %s --users --roles" % tempDir
+    utils.execExternalCmd(cmd, True, "Failed while exporting users")
+    fixNullUserPasswords(tempDir, 'users/organization_1')
+
+    os.chdir(current_dir)
+    return tempDir
+
+def exportReportsRepository():
+    """
+    export all resources
+    """
+    logging.debug("exporting reports repository")
+    current_dir = os.getcwd()
+
+    # Create a temp directory
+    tempDir =  tempfile.mkdtemp()
+    logging.debug("temp directory: %s" % tempDir)
+
+    os.chdir("%s/buildomatic" % JRS_PACKAGE_PATH)
+
+    # Export all users from jasper into the temp directory
+    logging.debug("Exporting repository to %s" % tempDir)
+    cmd = "./js-export.sh --output-dir %s --everything" % tempDir
+    utils.execExternalCmd(cmd, True, "Failed while exporting users")
+    fixNullUserPasswords(tempDir, 'users')
+
+    os.chdir(current_dir)
+    return tempDir
+
+@transactionDisplay("Importing current users")
+def importUsers(inputDir, update=True):
+    """
+    import all users from a given directory
+    """
+    logging.debug("importing users into reports")
+    current_dir = os.getcwd()
+
+    try:
+        os.chdir("%s/buildomatic" % JRS_PACKAGE_PATH)
+
+        # Export all users from jasper into the temp directory
+        logging.debug("importing users from %s" % inputDir)
+        cmd = "./js-import.sh --input-dir %s" % inputDir
+        if update:
+            cmd = cmd + " --update"
+        utils.execExternalCmd(cmd, True, "Failed while importing users")
+    except:
+        logging.error("exception caught, re-raising")
+        raise
+    finally:
+        os.chdir(current_dir)
 
 @transactionDisplay("Updating Redirect Servlet")
 def updateServletDbRecord(TEMP_PGPASS):
@@ -917,7 +1014,7 @@
     """
         Run post setup steps - disable unused users, set theme, change 
superuser password if needed
     """
-    savedRepoDir = utils.exportReportsRepository()
+    savedRepoDir = exportReportsRepository()
     anonymousUserFile = "%s/users/anonymousUser.xml" % savedRepoDir
     jasperAdminFile = "%s/users/jasperadmin.xml" % savedRepoDir
     logging.debug("disabling unused users, if needed")
@@ -972,6 +1069,19 @@
         },
     )
 
+def storeConf(db_dict):
+    with open(FILE_DATABASE_REPORTS_CONFIG, 'w') as rf:
+        rf.write(
+            (
+                'REPORTS_DB_DATABASE={database}\n'
+                'REPORTS_DB_USER={user}\n'
+                'REPORTS_DB_PASSWORD={password}'
+            ).format(
+                database=db_dict['dbname'],
+                user=db_dict['username'],
+                password=db_dict['password'],
+            )
+        )
 
 def main(options):
     '''
@@ -1131,7 +1241,7 @@
                     exportScheduale()
 
                 if hasData or preserveReports:
-                    savedDir = utils.exportUsers()
+                    savedDir = exportUsers()
 
                 if not isWarInstalled() and not hasData and adminPass is None:
                     adminPass = getAdminPass()
@@ -1156,20 +1266,20 @@
 
                 if preserveReports:
                     logging.debug("Importing users")
-                    utils.importUsers(savedDir)
+                    importUsers(savedDir)
 
                 # Update reports datasource configuration
                 setReportsDatasource(reportsImport, db_dict=db_dict)
 
                 # Execute js-import to add reports to DB
-                utils.importReports(reportsImport)
+                importReports(reportsImport)
 
                 # We import users twice because we need permissions to be
                 # preserved as well as users passwords reset after importing
                 # reports in previous step.
                 if hasData:
                     logging.debug("Imporing users")
-                    utils.importUsers(savedDir)
+                    importUsers(savedDir)
 
                 # Link all files in ovirt-engine-reports/reports*/jar to 
/var/lib/jbosas/server/ovirt-engine-slimmed/deploy/ovirt-engine-reports/WEB-INF/lib
                 customizeJs()
@@ -1220,7 +1330,7 @@
 
             # Restart the httpd service
             utils.restartHttpd()
-            utils.storeConf(db_dict)
+            storeConf(db_dict)
             print "Successfully installed %s." % JRS_APP_NAME
             print "The installation log file is available at: %s" % log_file
 


-- 
To view, visit http://gerrit.ovirt.org/23520
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I085f55382779aff91d45f10fb56de33d816b59dc
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-reports
Gerrit-Branch: master
Gerrit-Owner: Alon Bar-Lev <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to