X-Git-Url: http://git.cascardo.info/?p=cascardo%2Fipsilon.git;a=blobdiff_plain;f=ipsilon%2Futil%2Fsessions.py;h=b870319abec1a0953570585350a1f49ea25d543b;hp=b7244711909ee6b274a48686cd4bd57d0e57ec52;hb=ba59365931a4e35226b3d9be216d867ff1549846;hpb=5e0b9747121eab67c5a3ee3bb42a677e35da7fd6 diff --git a/ipsilon/util/sessions.py b/ipsilon/util/sessions.py old mode 100755 new mode 100644 index b724471..b870319 --- a/ipsilon/util/sessions.py +++ b/ipsilon/util/sessions.py @@ -1,10 +1,8 @@ -#!/usr/bin/python -# -# Copyright (C) 2014 Ipsilon project Contributors, for licensee see COPYING +# Copyright (C) 2014 Ipsilon project Contributors, for license see COPYING import base64 from cherrypy.lib.sessions import Session -from ipsilon.util.data import SqlStore, SqlQuery +from ipsilon.util.data import Store, SqlQuery import threading try: import cPickle as pickle @@ -15,10 +13,21 @@ except ImportError: SESSION_COLUMNS = ['id', 'data', 'expiration_time'] +class SessionStore(Store): + def _initialize_schema(self): + q = self._query(self._db, 'sessions', SESSION_COLUMNS, + trans=False) + q.create() + + def _upgrade_schema(self, old_version): + raise NotImplementedError() + + class SqlSession(Session): dburi = None _db = None + _store = None _proto = 2 locks = {} @@ -30,7 +39,9 @@ class SqlSession(Session): if k == 'storage_dburi': cls.dburi = v - cls._db = SqlStore(cls.dburi) + cls._store = SessionStore(database_url=cls.dburi) + # pylint: disable=protected-access + cls._db = cls._store._db def _exists(self): q = SqlQuery(self._db, 'sessions', SESSION_COLUMNS)