Alex Lourie has uploaded a new change for review.

Change subject: packaging: setup: detect existing DB in remote flows
......................................................................

packaging: setup: detect existing DB in remote flows

Change-Id: Iee813572cab7e0afcf5f5dfa97e4121334c3aa5b
Bug-Url: https://bugzilla.redhat.com/1026947
Signed-off-by: Alex Lourie <[email protected]>
---
M packaging/common_utils.py
M packaging/ovirt-engine-dwh-setup.py
2 files changed, 47 insertions(+), 13 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-dwh refs/changes/38/22538/1

diff --git a/packaging/common_utils.py b/packaging/common_utils.py
index f9d6ba0..77b08b3 100755
--- a/packaging/common_utils.py
+++ b/packaging/common_utils.py
@@ -628,23 +628,28 @@
     owner = False
     logging.debug("checking if %s db already exists" % db_dict['dbname'])
     env = {'ENGINE_PGPASS': TEMP_PGPASS}
-    output, rc = execSqlCmd(
-        db_dict=db_dict,
-        sql_query="select 1",
-        envDict=env,
-    )
-    if rc == 0:
-        exists = True
-        if db_dict['username'] != db_dict['engine_user']:
-            owner = True
-    else:
+    if (
+        db_dict['username'] == 'admin' and
+        db_dict['password'] == 'dummy'
+    ):
         output, rc = runPostgresSuQuery(
             query='"select 1;"',
             database=db_dict['dbname'],
             failOnError=False,
         )
-        if rc == 0:
-            exists = True
+    else:
+        output, rc = execSqlCmd(
+            db_dict=db_dict,
+            sql_query="select 1",
+            envDict=env,
+        )
+    if rc == 0:
+        exists = True
+        if (
+            db_dict['username'] != db_dict['engine_user'] and
+            db_dict != 'admin'
+        ):
+            owner = True
 
     return exists, owner
 
diff --git a/packaging/ovirt-engine-dwh-setup.py 
b/packaging/ovirt-engine-dwh-setup.py
index f1a5595..53de271 100755
--- a/packaging/ovirt-engine-dwh-setup.py
+++ b/packaging/ovirt-engine-dwh-setup.py
@@ -282,6 +282,35 @@
 
     return db_dict
 
+def getDBStatus(db_dict, TEMP_PGPASS):
+    exists = owned = False
+    for dbdict in (
+        db_dict,
+        {
+            'dbname': DB_NAME,
+            'host': db_dict['host'],
+            'port': db_dict['port'],
+            'username': db_dict['engine_user'],
+            'password': db_dict['engine_pass'],
+            'engine_user': db_dict['engine_user'],
+            'engine_pass': db_dict['engine_pass'],
+        },
+        {
+            'dbname': DB_NAME,
+            'host': db_dict['host'],
+            'port': db_dict['port'],
+            'username': 'admin',
+            'password': 'dummy',
+            'engine_user': db_dict['engine_user'],
+            'engine_pass': db_dict['engine_pass'],
+        },
+    ):
+        exists, owned = utils.dbExists(dbdict, TEMP_PGPASS)
+        if exists:
+            break
+
+    return exists, owned
+
 
 @transactionDisplay("Setting DB connectivity")
 def setDbPass(db_dict):
@@ -447,7 +476,7 @@
                 readonly=db_dict['readonly'],
             )
 
-            dbExists, owned = utils.dbExists(db_dict, PGPASS_TEMP)
+            dbExists, owned = getDBStatus(db_dict, PGPASS_TEMP)
             if dbExists:
                 try:
                     if utils.localHost(db_dict['host']) and not owned:


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Iee813572cab7e0afcf5f5dfa97e4121334c3aa5b
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-dwh
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