Alex Lourie has uploaded a new change for review. Change subject: packaging: moving .pgpass to a common location (#847415) ......................................................................
packaging: moving .pgpass to a common location (#847415) https://bugzilla.redhat.com/847415 Change-Id: I2dece89583f3066fbd7d3ccd68cdbd14d94cf12a Signed-off-by: Alex Lourie <[email protected]> --- M packaging/fedora/setup/basedefs.py M packaging/fedora/setup/common_utils.py M packaging/fedora/setup/engine-upgrade.py 3 files changed, 28 insertions(+), 3 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/65/7665/1 diff --git a/packaging/fedora/setup/basedefs.py b/packaging/fedora/setup/basedefs.py index dcc341d..b085479 100644 --- a/packaging/fedora/setup/basedefs.py +++ b/packaging/fedora/setup/basedefs.py @@ -11,7 +11,6 @@ DB_HOST="localhost" DB_USER="engine" DB_PORT="5432" -DB_PASS_FILE="/root/.pgpass" PGPASS_FILE_TEMPLATE="hostname:port:database:username:password" JBOSS_SECURITY_DOMAIN="EncryptDBPassword" JBOSS_KERB_AUTH="EngineKerberosAuth" @@ -30,6 +29,8 @@ PGPASS_FILE_USER_LINE = "DB USER credentials" PGPASS_FILE_ADMIN_LINE = "DB ADMIN credentials" PGPASS_FILE_CLOSING_LINE = "##### End of %s DB settings section." % APP_NAME +DB_PASS_FILE="/etc/%s/.pgpass" % ENGINE_SERVICE_NAME +ORIG_PASS_FILE="/root/.pgpass" JBOSS_HTTP_PORT="8700" JBOSS_HTTPS_PORT="8701" diff --git a/packaging/fedora/setup/common_utils.py b/packaging/fedora/setup/common_utils.py index 2c510a6..d9cf03d 100755 --- a/packaging/fedora/setup/common_utils.py +++ b/packaging/fedora/setup/common_utils.py @@ -327,6 +327,7 @@ def execSqlCommand(userName, dbName, sqlQuery, failOnError=False, errMsg=output_messages.ERR_SQL_CODE): logging.debug("running sql query \'%s\' on db." % sqlQuery) + os.environ["PGPASSFILE"] = basedefs.DB_PASS_FILE cmd = [ basedefs.EXEC_PSQL, "-U", userName, @@ -337,6 +338,7 @@ #TODO: refactor this and previous functions into same execution. def execRemoteSqlCommand(userName, dbHost, dbPort, dbName, sqlQuery, failOnError=False, errMsg=output_messages.ERR_SQL_CODE): + os.environ["PGPASSFILE"] = basedefs.DB_PASS_FILE logging.debug("running sql query '%s' on db server: \'%s\'." % (sqlQuery, dbHost)) cmd = [ basedefs.EXEC_PSQL, diff --git a/packaging/fedora/setup/engine-upgrade.py b/packaging/fedora/setup/engine-upgrade.py index 6f0d06e..15c0471 100755 --- a/packaging/fedora/setup/engine-upgrade.py +++ b/packaging/fedora/setup/engine-upgrade.py @@ -3,13 +3,13 @@ # Imports import sys import os +import shutil import logging import traceback import types import pwd from optparse import OptionParser import yum -from StringIO import StringIO import common_utils as utils import basedefs @@ -43,6 +43,10 @@ SERVER_PORT = basedefs.DB_PORT SERVER_ADMIN = basedefs.DB_ADMIN +# .pgpass definition +os.environ["PGPASSFILE"] = basedefs.DB_PASS_FILE + +# CONST BACKUP_DIR = "/var/lib/ovirt-engine/backups" BACKUP_FILE = "ovirt-engine_db_backup" LOG_PATH = "/var/log/ovirt-engine" @@ -90,6 +94,9 @@ MSG_ERR_EXP_UPD_DC_TYPE="Failed updating default Data Center Storage Type in %s db" MSG_ERROR_JBOSS_PID = "Error: JBoss service is dead, but pid file exists" MSG_ERROR_YUM_TID = "Error: Yum transaction mismatch" +MSG_ERROR_PGPASS = "Error: DB password file was not found on this system. Verify \ +that this system was previously installed and that there's a password file at %s or %s" % \ +(basedefs.DB_PASS_FILE, basedefs.ORIG_PASS_FILE) MSG_INFO_DONE = "DONE" MSG_INFO_ERROR = "ERROR" @@ -684,7 +691,22 @@ db = DB() DB_NAME_TEMP = "%s_%s" % (basedefs.DB_NAME, utils.getCurrentDateTime()) - # Functions/parameters definitions + # Handle pgpass + if not os.path.exists(basedefs.DB_PASS_FILE): + if not os.path.exists(basedefs.ORIG_PASS_FILE): + logging.error(MSG_ERROR_PGPASS) + print MSG_ERROR_PGPASS + sys.exit(1) + else: + logging.info("Info: Found .pgpass file at old location. Moving it to a new location.") + shutil.copy(basedefs.ORIG_PASS_FILE, basedefs.DB_PASS_FILE) + + # File is copied/created by root, so no need to verify the owner. + os.chmod(basedefs.DB_PASS_FILE, 0600) + else: + logging.info("Info: %s file found. Continue.", basedefs.DB_PASS_FILE) + + # Functions/parameters definitions stopEngineService = [stopEngine] upgradeFunc = [rhyum.update] postFunc = [runPost] -- To view, visit http://gerrit.ovirt.org/7665 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I2dece89583f3066fbd7d3ccd68cdbd14d94cf12a Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Alex Lourie <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
