def _load_all_resources(): manager = plugin_manager.PluginManager('heat.engine.resources') resource_mapping = plugin_manager.PluginMapping('resource') res_plugin_mappings = resource_mapping.load_all(manager) for mapping in res_plugin_mappings: name, cls = mapping if all_resources.get(name) is not None: all_resources[name].append(cls) else: all_resources[name] = [cls]
def _load_global_resources(env): manager = plugin_manager.PluginManager(__name__) # Sometimes resources should not be available for registration in Heat due # to unsatisfied dependencies. We look first for the function # 'available_resource_mapping', which should return the filtered resources. # If it is not found, we look for the legacy 'resource_mapping'. resource_mapping = plugin_manager.PluginMapping( ['available_resource', 'resource']) constraint_mapping = plugin_manager.PluginMapping('constraint') _register_resources(env, resource_mapping.load_all(manager)) _register_constraints(env, constraint_mapping.load_all(manager))
def _load_all_resources(): from oslo_log import log as logging logging.getLogger('heat.engine.environment').logger.setLevel(logging.ERROR) manager = plugin_manager.PluginManager('heat.engine.resources') resource_mapping = plugin_manager.PluginMapping('resource') res_plugin_mappings = resource_mapping.load_all(manager) for mapping in res_plugin_mappings: name, cls = mapping if all_resources.get(name) is not None: all_resources[name].append(cls) else: all_resources[name] = [cls]
def test_load_all(self): import heat.tests.test_plugin_manager mgr = plugin_manager.PluginManager('heat.tests') pm = plugin_manager.PluginMapping('current_test') # NOTE(chmou): We force the modules to be ourself so we can get # the current_test_mapping if not we will would be # skipped by plugin_loader.load_modules since we are skipping # the loading of the package with tests in there mgr.modules = [heat.tests.test_plugin_manager] all_items = pm.load_all(mgr) for item in current_test_mapping().iteritems(): self.assertIn(item, all_items)
def _load_global_resources(env): _register_constraints( env, _get_mapping('heat.constraints')) # 注册约束 约束的格式:name:plugin _register_stack_lifecycle_plugins( env, _get_mapping('heat.stack_lifecycle_plugins')) # 生命周期 _register_event_sinks(env, _get_mapping('heat.event_sinks')) # 事件接收 manager = plugin_manager.PluginManager( __name__) # __name__ = __main__, 被调用时 = __init__ # TODO: 遗留问题,此处为何传参是 __name__? # Sometimes resources should not be available for registration in Heat due # to unsatisfied dependencies. We look first for the function # 'available_resource_mapping', which should return the filtered resources. # If it is not found, we look for the legacy 'resource_mapping'. # 首先查找自己定义的可用的资源,没有就查找 resource_mapping resource_mapping = plugin_manager.PluginMapping( ['available_resource', 'resource']) # constraint_mapping = plugin_manager.PluginMapping('constraint') _register_resources(env, resource_mapping.load_all(manager)) _register_constraints(env, constraint_mapping.load_all(manager))