def instantiate_practices(config, **kwargs):
kwargs.setdefault('propagate_map_exceptions', True)
kwargs.setdefault('on_load_failure_callback', extension_load_failure_callback)
kwargs.setdefault('verify_requirements', True)
kwargs.setdefault('names', config.get('PRACTICES_ENABLED',
six.viewkeys(config.get('PRACTICES', {}))))
practices = stevedore.named.NamedExtensionManager(**kwargs)
logger.debug("'{!s}' practices: loaded {!s}", kwargs['namespace'], practices.names())
for plugin in practices:
plugin_config = config.get('PRACTICES', {}).get(plugin.name, {})
plugin.obj = plugin.plugin(plugin_config)
plugin.obj.plugin_name = plugin.name
logger.debug("'{!s}' practices: instantiated {!s}", kwargs['namespace'], practices.names())
return practices
评论列表
文章目录