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

Reply via email to