Implement cleanup for sessions
authorPatrick Uiterwijk <puiterwijk@redhat.com>
Fri, 4 Sep 2015 16:13:39 +0000 (18:13 +0200)
committerPatrick Uiterwijk <puiterwijk@redhat.com>
Fri, 4 Sep 2015 17:53:36 +0000 (19:53 +0200)
Signed-off-by: Patrick Uiterwijk <puiterwijk@redhat.com>
Reviewed-by: Rob Crittenden <rcritten@redhat.com>
ipsilon/util/sessions.py

index 86113a1..5a9854b 100644 (file)
@@ -4,6 +4,7 @@ import base64
 from cherrypy.lib.sessions import Session
 from ipsilon.util.data import Store, SqlQuery
 import threading
+import datetime
 try:
     import cPickle as pickle
 except ImportError:
@@ -36,6 +37,14 @@ class SessionStore(Store):
         else:
             raise NotImplementedError()
 
+    def _cleanup(self):
+        # pylint: disable=protected-access
+        table = SqlQuery(self._db, 'sessions', SESSION_TABLE)._table
+        # pylint: disable=no-value-for-parameter
+        d = table.delete().where(table.c.expiration_time
+                                 <= datetime.datetime.now())
+        return d.execute().rowcount
+
 
 class SqlSession(Session):