Пример #1
0
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))
Пример #2
0
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()
Пример #3
0
 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")
Пример #4
0
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")
Пример #5
0
        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()
Пример #6
0
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: