Esempio n. 1
0
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]
Esempio n. 2
0
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))
Esempio n. 3
0
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]
Esempio n. 4
0
    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)
Esempio n. 5
0
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))