Close connections after creating the tables
authorPatrick Uiterwijk <puiterwijk@redhat.com>
Thu, 3 Sep 2015 23:32:00 +0000 (01:32 +0200)
committerPatrick Uiterwijk <puiterwijk@redhat.com>
Fri, 4 Sep 2015 02:42:38 +0000 (04:42 +0200)
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 <puiterwijk@redhat.com>
Reviewed-by: Rob Crittenden <rcritten@redhat.com>
ipsilon/providers/openid/store.py
ipsilon/util/data.py
ipsilon/util/sessions.py

index 7c637d4..0eaee0a 100644 (file)
@@ -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:
index e483562..8d2a1d5 100644 (file)
@@ -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:
index 8df3b4d..86113a1 100644 (file)
@@ -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: