def init_all_dbs(): import loader loader.start() import leapi_dyncode as dyncode from lodel.plugin.datasource_plugin import DatasourcePlugin from lodel.settings.utils import SettingsError from lodel.leapi.leobject import LeObject from lodel.plugin import Plugin from lodel import logger ds_cls = dict() # EmClass indexed by rw_datasource for cls in dyncode.dynclasses: ds = cls._datasource_name if ds not in ds_cls: ds_cls[ds] = [cls] else: ds_cls[ds].append(cls) for ds_name in ds_cls: mh = DatasourcePlugin.init_migration_handler(ds_name) #Retrieve plugin_name & ds_identifier for logging purpose plugin_name, ds_identifier = DatasourcePlugin.plugin_name( ds_name, False) try: mh.init_db(ds_cls[ds_name]) except Exception as e: msg = "Migration failed for datasource %s(%s.%s) when running \ init_db method: %s" msg %= (ds_name, plugin_name, ds_identifier, e) logger.info("Database initialisation done for %s(%s.%s)" % (ds_name, plugin_name, ds_identifier))
def test(): cap = 16 id_queue = multiprocessing.Manager().Queue(maxsize=cap) data_queue = multiprocessing.Manager().Queue(maxsize=cap) loader = multiprocessing.Process(target=Loader.loading, args=(id_queue, data_queue, "xiejian")) loader.start() threading.Thread(target=put, args=(id_queue, )).start() threading.Thread(target=get, args=(data_queue, )).start()
def run(cls, args): import loader loader.start() from lodel.plugin.hooks import LodelHook hlist = LodelHook.hook_list() print("Registered hooks : ") for name in sorted(hlist.keys()): print("\t- %s is registered by :" % name) for hfun, priority in hlist[name]: msg = "\t\t- {modname}.{funname} with priority : {priority}" print(msg.format( modname=hfun.__module__, funname=hfun.__name__, priority=priority)) print("\n")
def list_registered_hooks(): import loader loader.start() from lodel.plugin.hooks import LodelHook hlist = LodelHook.hook_list() print("Registered hooks are : ") for name in sorted(hlist.keys()): print("\t- %s is registered by : " % name) for reg_hook in hlist[name]: hook, priority = reg_hook msg = "\t\t- {modname}.{funname} with priority : {priority}" msg = msg.format(modname=hook.__module__, funname=hook.__name__, priority=priority) print(msg) print("\n")
print("\t- %s is registered by : " % name) for reg_hook in hlist[name]: hook, priority = reg_hook msg = "\t\t- {modname}.{funname} with priority : {priority}" msg = msg.format(modname=hook.__module__, funname=hook.__name__, priority=priority) print(msg) print("\n") ##@brief update plugin's discover cache #@note impossible to give arguments from a Makefile... #@todo write a __main__ to be able to run ./lodel_admin def update_plugin_discover_cache(path_list=None): os.environ['LODEL2_NO_SETTINGS_LOAD'] = 'True' import loader from lodel.plugin.plugins import Plugin res = Plugin.discover(path_list) print("Plugin discover result in %s :\n" % res['path_list']) for pname, pinfos in res['plugins'].items(): print("\t- %s %s -> %s" % (pname, pinfos['version'], pinfos['path'])) if __name__ == '__main__': _simlink_hack() import loader loader.start() from lodel.plugin.scripts import main_run main_run()
def save_cookie(response, token): response.set_cookie( COOKIE_SESSION_ID, SecureCookie({ 'token': token }, COOKIE_SECRET_KEY).serialize()) def empty_cookie(response): response.set_cookie(COOKIE_SESSION_ID, '') #Starting instance try: loader.start() #Works only in MONOSITE mode except NameError: pass #providing access to dyncode # WSGI Application def application(env, start_response): request = LodelRequest(env) session_token = None try: #We have to create the client before restoring cookie in order to be able #to log messages with client infos client = WebUiClient(env['REMOTE_ADDR'], env['HTTP_USER_AGENT'], None) session_token = load_cookie(request) if session_token is not None and len(session_token) > 0: