12345678910111213141516171819202122232425262728293031323334353637383940 |
- #-*- coding: utf-8 -*-
-
- from lodel.plugin import LodelHook
- from lodel.settings import Settings
- from lodel import logger
-
- ##@package lodel.plugin.core_hooks
- #@brief Lodel2 internal hooks declaration
-
- ##@brief Bootstrap hook to check datasources configuration
- @LodelHook('lodel2_bootstraped')
- def datasources_bootstrap_callaback(hook_name, caller, payload):
- for ds_name in Settings.datasources._fields:
- ds_conf = getattr(Settings.datasources, ds_name)
- identifier = getattr(ds_conf, 'identifier')
-
- # Now we are trying to fetch the datasource given the identifier
- ds_family_name, ds_name = identifier.split('.',1)
- try:
- ds_fam = getattr(Settings.datasource, ds_family_name)
- except AttributeError:
- msg = "No datasource family named '%s' found"
- msg %= ds_family_name
- raise NameError(msg)
- try:
- ds = getattr(ds_fam, ds_name)
- except AttributeError:
- msg = "No datasource configured for identifier '%s' found"
- msg %= identifier
- raise NameError(msg)
-
-
- log_msg = "Found a datasource named '%s' identified by '%s'"
- log_msg %= (ds_name, identifier)
- logger.debug(log_msg)
-
- @LodelHook("lodel2_dyncode_loaded")
- def lodel2_plugins_custom_methods(self, caller, dynclasses):
- from lodel.plugin.plugins import CustomMethod
- CustomMethod.set_registered(dynclasses)
|