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

Change subject: packaging: setup: database: move connect to database library
......................................................................

packaging: setup: database: move connect to database library

this will enable use of single tweaks for different driver versions.

Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1067058
Change-Id: I36aa977fd6768b1ea3a96660d8473bf6ecffa277
Signed-off-by: Alon Bar-Lev <alo...@redhat.com>
---
M packaging/setup/ovirt_engine_setup/database.py
M packaging/setup/plugins/ovirt-engine-rename/core/database.py
M 
packaging/setup/plugins/ovirt-engine-setup/ovirt-engine-common/db/connection.py
3 files changed, 76 insertions(+), 70 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/32/25332/1

diff --git a/packaging/setup/ovirt_engine_setup/database.py 
b/packaging/setup/ovirt_engine_setup/database.py
index 155ef6e..5bdef5d 100644
--- a/packaging/setup/ovirt_engine_setup/database.py
+++ b/packaging/setup/ovirt_engine_setup/database.py
@@ -58,6 +58,65 @@
         self._environment = environment
         self._dbenvkeys = dbenvkeys
 
+    def connect(
+        self,
+        host=None,
+        port=None,
+        secured=None,
+        securedHostValidation=None,
+        user=None,
+        password=None,
+        database=None,
+    ):
+        if host is None:
+            host = self.environment[self._dbenvkeys['host']]
+        if port is None:
+            port = self.environment[self._dbenvkeys['port']]
+        if secured is None:
+            secured = self.environment[self._dbenvkeys['secured']]
+        if securedHostValidation is None:
+            securedHostValidation = self.environment[
+                self._dbenvkeys['hostValidation']
+            ]
+        if user is None:
+            user = self.environment[self._dbenvkeys['user']]
+        if password is None:
+            password = self.environment[self._dbenvkeys['password']]
+        if database is None:
+            database = self.environment[self._dbenvkeys['database']]
+
+        sslmode = 'allow'
+        if secured:
+            if securedHostValidation:
+                sslmode = 'verify-full'
+            else:
+                sslmode = 'require'
+
+        #
+        # old psycopg2 does not know how to ignore
+        # uselss parameters
+        #
+        if not host:
+            connection = psycopg2.connect(
+                database=database,
+            )
+        else:
+            #
+            # port cast is required as old psycopg2
+            # does not support unicode strings for port.
+            # do not cast to int to avoid breaking usock.
+            #
+            connection = psycopg2.connect(
+                host=host,
+                port=str(port),
+                user=user,
+                password=password,
+                database=database,
+                sslmode=sslmode,
+            )
+
+        return connection
+
     def execute(
         self,
         statement,
@@ -97,30 +156,6 @@
                 )
 
         ret = []
-        if host is None:
-            host = self.environment[self._dbenvkeys['host']]
-        if port is None:
-            port = self.environment[self._dbenvkeys['port']]
-        if secured is None:
-            secured = self.environment[self._dbenvkeys['secured']]
-        if securedHostValidation is None:
-            securedHostValidation = self.environment[
-                self._dbenvkeys['hostValidation']
-            ]
-        if user is None:
-            user = self.environment[self._dbenvkeys['user']]
-        if password is None:
-            password = self.environment[self._dbenvkeys['password']]
-        if database is None:
-            database = self.environment[self._dbenvkeys['database']]
-
-        sslmode = 'allow'
-        if secured:
-            if securedHostValidation:
-                sslmode = 'verify-full'
-            else:
-                sslmode = 'require'
-
         old_autocommit = None
         _connection = None
         cursor = None
@@ -136,28 +171,15 @@
             else:
                 self.logger.debug('Creating own connection')
 
-                #
-                # old psycopg2 does not know how to ignore
-                # uselss parameters
-                #
-                if not host:
-                    _connection = connection = psycopg2.connect(
-                        database=database,
-                    )
-                else:
-                    #
-                    # port cast is required as old psycopg2
-                    # does not support unicode strings for port.
-                    # do not cast to int to avoid breaking usock.
-                    #
-                    _connection = connection = psycopg2.connect(
-                        host=host,
-                        port=str(port),
-                        user=user,
-                        password=password,
-                        database=database,
-                        sslmode=sslmode,
-                    )
+                _connection = connection = self.connect(
+                    host=host,
+                    port=port,
+                    secured=secured,
+                    securedHostValidation=securedHostValidation,
+                    user=user,
+                    password=password,
+                    database=database,
+                )
 
             if not transaction:
                 old_autocommit = __backup_autocommit(connection)
diff --git a/packaging/setup/plugins/ovirt-engine-rename/core/database.py 
b/packaging/setup/plugins/ovirt-engine-rename/core/database.py
index e59eb1f..5e205de 100644
--- a/packaging/setup/plugins/ovirt-engine-rename/core/database.py
+++ b/packaging/setup/plugins/ovirt-engine-rename/core/database.py
@@ -19,7 +19,6 @@
 """database plugin."""
 
 
-import psycopg2
 import urlparse
 import gettext
 _ = lambda m: gettext.dgettext(message=m, domain='ovirt-engine-setup')
@@ -79,22 +78,16 @@
         name=osetupcons.Stages.DB_CONNECTION_AVAILABLE,
     )
     def _connection(self):
-        # must be here as we do not have database at validation
-        self.environment[
-            osetupcons.DBEnv.CONNECTION
-        ] = psycopg2.connect(
-            host=self.environment[osetupcons.DBEnv.HOST],
-            port=self.environment[osetupcons.DBEnv.PORT],
-            user=self.environment[osetupcons.DBEnv.USER],
-            password=self.environment[osetupcons.DBEnv.PASSWORD],
-            database=self.environment[osetupcons.DBEnv.DATABASE],
-        )
         self.environment[
             osetupcons.DBEnv.STATEMENT
         ] = database.Statement(
             dbenvkeys=osetupcons.Const.ENGINE_DB_ENV_KEYS,
             environment=self.environment,
         )
+        # must be here as we do not have database at validation
+        self.environment[
+            osetupcons.DBEnv.CONNECTION
+        ] = self.environment[osetupcons.DBEnv.STATEMENT].connect()
 
     @plugin.event(
         stage=plugin.Stages.STAGE_VALIDATION,
diff --git 
a/packaging/setup/plugins/ovirt-engine-setup/ovirt-engine-common/db/connection.py
 
b/packaging/setup/plugins/ovirt-engine-setup/ovirt-engine-common/db/connection.py
index 407017a..3f44c31 100644
--- 
a/packaging/setup/plugins/ovirt-engine-setup/ovirt-engine-common/db/connection.py
+++ 
b/packaging/setup/plugins/ovirt-engine-setup/ovirt-engine-common/db/connection.py
@@ -24,9 +24,6 @@
 _ = lambda m: gettext.dgettext(message=m, domain='ovirt-engine-setup')
 
 
-import psycopg2
-
-
 from otopi import constants as otopicons
 from otopi import util
 from otopi import transaction
@@ -290,22 +287,16 @@
         ),
     )
     def _connection(self):
-        # must be here as we do not have database at validation
-        self.environment[
-            osetupcons.DBEnv.CONNECTION
-        ] = psycopg2.connect(
-            host=self.environment[osetupcons.DBEnv.HOST],
-            port=self.environment[osetupcons.DBEnv.PORT],
-            user=self.environment[osetupcons.DBEnv.USER],
-            password=self.environment[osetupcons.DBEnv.PASSWORD],
-            database=self.environment[osetupcons.DBEnv.DATABASE],
-        )
         self.environment[
             osetupcons.DBEnv.STATEMENT
         ] = database.Statement(
             dbenvkeys=osetupcons.Const.ENGINE_DB_ENV_KEYS,
             environment=self.environment,
         )
+        # must be here as we do not have database at validation
+        self.environment[
+            osetupcons.DBEnv.CONNECTION
+        ] = self.environment[osetupcons.DBEnv.STATEMENT].connect()
 
 
 # vim: expandtab tabstop=4 shiftwidth=4


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I36aa977fd6768b1ea3a96660d8473bf6ecffa277
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.4.0
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