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

Change subject: packaging: setup: do not write into 
/usr/share/ovirt-engine-reports
......................................................................

packaging: setup: do not write into /usr/share/ovirt-engine-reports

copy reports into temporary folder, modify it and import.

Change-Id: I8fed79744cf8767c9f6a6b017e2d9e5bc8402182
Signed-off-by: Alon Bar-Lev <alo...@redhat.com>
---
M packaging/legacy-setup/common_utils.py
M packaging/legacy-setup/ovirt-engine-reports-setup.py
2 files changed, 21 insertions(+), 22 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-reports refs/changes/16/23316/1

diff --git a/packaging/legacy-setup/common_utils.py 
b/packaging/legacy-setup/common_utils.py
index cb13fa3..9ce7214 100755
--- a/packaging/legacy-setup/common_utils.py
+++ b/packaging/legacy-setup/common_utils.py
@@ -643,14 +643,14 @@
     return output.rstrip()
 
 @transactionDisplay("Importing reports")
-def importReports(update=True):
+def importReports(dir, 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 /usr/share/ovirt-engine-reports/reports"
+    cmd = "./js-import.sh --input-dir %s" % dir
     if update:
         cmd = cmd + " --update"
     execExternalCmd(cmd, True, "Failed while importing reports")
diff --git a/packaging/legacy-setup/ovirt-engine-reports-setup.py 
b/packaging/legacy-setup/ovirt-engine-reports-setup.py
index 6534816..9aaf3c9 100755
--- a/packaging/legacy-setup/ovirt-engine-reports-setup.py
+++ b/packaging/legacy-setup/ovirt-engine-reports-setup.py
@@ -64,7 +64,6 @@
 
 REPORTS_PACKAGE_DIR = "/usr/share/ovirt-engine-reports"
 SSL2JKSTRUST = "%s/legacy-setup/ssl2jkstrust.py" % REPORTS_PACKAGE_DIR
-FILE_DB_DATA_SOURCE = 
"%s/reports/resources/reports_resources/JDBC/data_sources/ovirt.xml" % 
REPORTS_PACKAGE_DIR
 DIR_REPORTS_CUSTOMIZATION="%s/server-customizations" % REPORTS_PACKAGE_DIR
 DIR_OVIRT_THEME="%s/reports/resources/themes/ovirt-002dreports-002dtheme" % 
REPORTS_PACKAGE_DIR
 
@@ -281,20 +280,14 @@
     file_handler.editParam("appServerDir", DIR_DEPLOY)
     file_handler.close()
 
-def setReportsDatasource(db_dict):
-    logging.debug("editing reports datasource file %s", FILE_DB_DATA_SOURCE)
-    xml_editor = utils.XMLConfigFileHandler(FILE_DB_DATA_SOURCE)
+def setReportsDatasource(dir, db_dict):
+    f = os.path.join(dir, 
'resources/reports_resources/JDBC/data_sources/ovirt.xml')
+    logging.debug("editing reports datasource file %s", f)
+    xml_editor = utils.XMLConfigFileHandler(f)
     xml_editor.open()
     
xml_editor.editParams({'/jdbcDataSource/connectionUrl':"jdbc:postgresql://%s:%s/%s"
 % (db_dict["host"],db_dict["port"],ENGINE_HISTORY_DB_NAME)})
     
xml_editor.editParams({'/jdbcDataSource/connectionUser':db_dict["dwh_db_user"]})
     
xml_editor.editParams({'/jdbcDataSource/connectionPassword':db_dict["dwh_db_password"]})
-    xml_editor.close()
-
-def resetReportsDatasourcePassword():
-    logging.debug("editing reports datasource file %s", FILE_DB_DATA_SOURCE)
-    xml_editor = utils.XMLConfigFileHandler(FILE_DB_DATA_SOURCE)
-    xml_editor.open()
-    xml_editor.editParams({'/jdbcDataSource/connectionPassword':""})
     xml_editor.close()
 
 @transactionDisplay("Updating Redirect Servlet")
@@ -486,13 +479,13 @@
 
     return userInput
 
-def editOvirtEngineAdminXml(password):
+def editOvirtEngineAdminXml(dir, password):
     """
     edit ovirt-engine-admin xml file and set password
     TODO handle superuser password.
     """
     logging.debug("setting password for ovirt-engine-admin")
-    xmlFile  = "%s/reports/users/ovirt-002dadmin.xml" % REPORTS_PACKAGE_DIR
+    xmlFile  = "%s/users/ovirt-002dadmin.xml" % dir
     logging.debug("opening xml file")
     xmlObj = utils.XMLConfigFileHandler(xmlFile)
     xmlObj.open()
@@ -988,6 +981,7 @@
     rc = 0
     preserveReports = False
     pghba_updated = False
+    reportsTemp = None
 
     try:
         logging.debug("starting main()")
@@ -1125,9 +1119,6 @@
             if not warUpdated or not isWarInstalled():
                 setDBConn()
 
-            # Update reports datasource configuration
-            setReportsDatasource(db_dict)
-
             if not warUpdated and isWarInstalled():
                 backupWAR()
                 with open(FILE_DEPLOY_VERSION, 'r') as verfile:
@@ -1159,17 +1150,24 @@
                 # Update oVirt-Engine vdc_options with reports relative url
                 updateServletDbRecord(TEMP_PGPASS)
 
+                reportsTemp = tempfile.mkdtemp()
+                reportsImport = os.path.join(reportsTemp, 'reports')
+                shutil.copytree('/usr/share/ovirt-engine-reports/reports', 
reportsImport,  symlinks=True)
+
                 # If the userPassword var has been populated it means we need 
to edit the Admin xml file
                 if adminPass is not None:
                     logging.debug('Setting real admin password')
-                    editOvirtEngineAdminXml(adminPass)
+                    editOvirtEngineAdminXml(reportsImport, adminPass)
 
                 if preserveReports:
                     logging.debug("Importing users")
                     utils.importUsers(savedDir)
 
+                # Update reports datasource configuration
+                setReportsDatasource(dir=reportsImport, db_dict=db_dict)
+
                 # Execute js-import to add reports to DB
-                utils.importReports()
+                utils.importReports(reportsImport)
 
                 # We import users twice because we need permissions to be
                 # preserved as well as users passwords reset after importing
@@ -1179,7 +1177,7 @@
                     utils.importUsers(savedDir)
 
                 # If this is a fresh install, we muck the password in the 
users xml files
-                editOvirtEngineAdminXml(MUCK_PASSWORD)
+                editOvirtEngineAdminXml(reportsImport, MUCK_PASSWORD)
 
                 # 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()
@@ -1249,7 +1247,8 @@
         rc = 1
     finally:
         shutil.rmtree(DIR_TEMP_SCHEDULE)
-        resetReportsDatasourcePassword()
+        if reportsTemp is not None:
+            shutil.rmtree(reportsTemp)
         if pghba_updated:
             utils.restorePgHba()
         return rc


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I8fed79744cf8767c9f6a6b017e2d9e5bc8402182
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-reports
Gerrit-Branch: master
Gerrit-Owner: Alon Bar-Lev <alo...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to