start works on storage
This commit is contained in:
@ -55,9 +55,8 @@ class StorageType(object):
|
||||
def get(self):
|
||||
if self.storage_type is None:
|
||||
self.storage_type = self.default_storage
|
||||
storage = self.storage_type
|
||||
if self.mod is None:
|
||||
modulepath = 'tiramisu.storage.{0}'.format(storage)
|
||||
modulepath = 'tiramisu.storage.{0}'.format(self.storage_type)
|
||||
mod = __import__(modulepath)
|
||||
for token in modulepath.split(".")[1:]:
|
||||
mod = getattr(mod, token)
|
||||
@ -66,9 +65,10 @@ class StorageType(object):
|
||||
|
||||
|
||||
storage_type = StorageType()
|
||||
storage_option_type = StorageType()
|
||||
|
||||
|
||||
def set_storage(name, **kwargs):
|
||||
def set_storage(type_, name, **kwargs):
|
||||
"""Change storage's configuration
|
||||
|
||||
:params name: is the storage name. If storage is already set, cannot
|
||||
@ -76,8 +76,12 @@ def set_storage(name, **kwargs):
|
||||
|
||||
Other attributes are differents according to the selected storage's name
|
||||
"""
|
||||
storage_type.set(name)
|
||||
setting = storage_type.get().setting
|
||||
if type_ == 'option':
|
||||
storage_option_type.set(name)
|
||||
setting = storage_option_type.get().setting
|
||||
else:
|
||||
storage_type.set(name)
|
||||
setting = storage_type.get().setting
|
||||
for option, value in kwargs.items():
|
||||
try:
|
||||
getattr(setting, option)
|
||||
@ -96,10 +100,13 @@ def _impl_getstate_setting():
|
||||
return state
|
||||
|
||||
|
||||
def get_storage(session_id, persistent, test):
|
||||
def get_storage(type_, session_id, persistent, test):
|
||||
"""all used when __setstate__ a Config
|
||||
"""
|
||||
return storage_type.get().Storage(session_id, persistent, test)
|
||||
if type_ == 'option':
|
||||
return storage_option_type.get().Storage(session_id, persistent, test)
|
||||
else:
|
||||
return storage_type.get().Storage(session_id, persistent, test)
|
||||
|
||||
|
||||
def get_storages(context, session_id, persistent):
|
||||
@ -113,18 +120,29 @@ def get_storages(context, session_id, persistent):
|
||||
return imp.Settings(storage), imp.Values(storage)
|
||||
|
||||
|
||||
def list_sessions():
|
||||
def get_storages_option():
|
||||
imp = storage_option_type.get()
|
||||
return imp.Base, imp.OptionDescription
|
||||
|
||||
|
||||
def list_sessions(type_):
|
||||
"""List all available session (persistent or not persistent)
|
||||
"""
|
||||
return storage_type.get().list_sessions()
|
||||
if type_ == 'option':
|
||||
return storage_option_type.get().list_sessions()
|
||||
else:
|
||||
return storage_type.get().list_sessions()
|
||||
|
||||
|
||||
def delete_session(session_id):
|
||||
def delete_session(type_, session_id):
|
||||
"""Delete a selected session, be careful, you can deleted a session
|
||||
use by an other instance
|
||||
:params session_id: id of session to delete
|
||||
"""
|
||||
return storage_type.get().delete_session(session_id)
|
||||
if type_ == 'option':
|
||||
return storage_option_type.get().delete_session(session_id)
|
||||
else:
|
||||
return storage_type.get().delete_session(session_id)
|
||||
|
||||
|
||||
__all__ = (set_storage, list_sessions, delete_session)
|
||||
|
@ -27,5 +27,7 @@ use it. But if something goes wrong, you will lost your modifications.
|
||||
from .value import Values
|
||||
from .setting import Settings
|
||||
from .storage import setting, Storage, list_sessions, delete_session
|
||||
from .option import Base, OptionDescription
|
||||
|
||||
__all__ = (setting, Values, Settings, Storage, list_sessions, delete_session)
|
||||
__all__ = (setting, Values, Settings, Storage, list_sessions, delete_session,
|
||||
Base, OptionDescription)
|
||||
|
Reference in New Issue
Block a user