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