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