From 2ff2f766737abf1615bca802677cb2386b32213d Mon Sep 17 00:00:00 2001 From: Patrick Uiterwijk Date: Fri, 4 Sep 2015 01:32:00 +0200 Subject: [PATCH] Close connections after creating the tables This needs to be done manually in the case of upgrades, because there is no cherrypy end_request to help us close sessions. Everytime we do a self._query a new connection is allocated, so we need to make sure to terminate them all. Signed-off-by: Patrick Uiterwijk Reviewed-by: Rob Crittenden --- ipsilon/providers/openid/store.py | 2 ++ ipsilon/util/data.py | 6 ++++++ ipsilon/util/sessions.py | 1 + 3 files changed, 9 insertions(+) diff --git a/ipsilon/providers/openid/store.py b/ipsilon/providers/openid/store.py index 7c637d4..0eaee0a 100644 --- a/ipsilon/providers/openid/store.py +++ b/ipsilon/providers/openid/store.py @@ -82,9 +82,11 @@ class OpenIDStore(Store, OpenIDStoreInterface): q = self._query(self._db, 'association', UNIQUE_DATA_TABLE, trans=False) q.create() + q._con.close() # pylint: disable=protected-access q = self._query(self._db, 'openid_extensions', OPTIONS_TABLE, trans=False) q.create() + q._con.close() # pylint: disable=protected-access def _upgrade_schema(self, old_version): if old_version == 1: diff --git a/ipsilon/util/data.py b/ipsilon/util/data.py index e483562..8d2a1d5 100644 --- a/ipsilon/util/data.py +++ b/ipsilon/util/data.py @@ -331,6 +331,7 @@ class Store(Log): # the main codebase, and even in the same database. q = self._query(self._db, 'dbinfo', OPTIONS_TABLE, trans=False) q.create() + q._con.close() # pylint: disable=protected-access cls_name = self.__class__.__name__ current_version = self.load_options('dbinfo').get('%s_schema' % cls_name, {}) @@ -608,6 +609,7 @@ class AdminStore(Store): 'provider_config']: q = self._query(self._db, table, OPTIONS_TABLE, trans=False) q.create() + q._con.close() # pylint: disable=protected-access def _upgrade_schema(self, old_version): if old_version == 1: @@ -632,6 +634,7 @@ class AdminStore(Store): q = self._query(self._db, table, UNIQUE_DATA_TABLE, trans=False) q.create() + q._con.close() # pylint: disable=protected-access class UserStore(Store): @@ -654,6 +657,7 @@ class UserStore(Store): def _initialize_schema(self): q = self._query(self._db, 'users', OPTIONS_TABLE, trans=False) q.create() + q._con.close() # pylint: disable=protected-access def _upgrade_schema(self, old_version): if old_version == 1: @@ -678,6 +682,7 @@ class TranStore(Store): q = self._query(self._db, 'transactions', UNIQUE_DATA_TABLE, trans=False) q.create() + q._con.close() # pylint: disable=protected-access def _upgrade_schema(self, old_version): if old_version == 1: @@ -779,6 +784,7 @@ class SAML2SessionStore(Store): q = self._query(self._db, self.table, UNIQUE_DATA_TABLE, trans=False) q.create() + q._con.close() # pylint: disable=protected-access def _upgrade_schema(self, old_version): if old_version == 1: diff --git a/ipsilon/util/sessions.py b/ipsilon/util/sessions.py index 8df3b4d..86113a1 100644 --- a/ipsilon/util/sessions.py +++ b/ipsilon/util/sessions.py @@ -21,6 +21,7 @@ class SessionStore(Store): q = self._query(self._db, 'sessions', SESSION_TABLE, trans=False) q.create() + q._con.close() # pylint: disable=protected-access def _upgrade_schema(self, old_version): if old_version == 1: -- 2.20.1