Neutron代理扩展 Agent extensions

云计算 专栏收录该内容
40 篇文章 0 订阅

所有引用代理都使用一个通用的扩展机制,该机制允许引入和启用核心资源扩展而无需更改代理代码。此机制允许单个代理同时运行多个代理扩展。这种机制对位于Neutron代码树之外的第三方扩展特别有用。

在此框架下,代理向其每个扩展公开其API,从而允许扩展访问代理内部的资源。例如,在第2层,在每个端口事件上,代理可以触发其扩展中的handle_port方法。

与代理API对象的交互顺序如下:

  1. 代理初始化代理API对象。
  2. 代理将代理API对象传递到扩展管理器中。
  3. 管理器将代理API对象传递到每个扩展中。
  4. 扩展调用新的代理API对象方法来接收(例如)分配了cookie的网桥封装器。
    +-----------+
    | Agent API +--------------------------------------------------+
    +-----+-----+                                                  |
          |                                   +-----------+        |
          |1                               +--+ Extension +--+     |
          |                                |  +-----------+  |     |
    +---+-+-+---+  2  +--------------+  3  |                 |  4  |
    |   Agent   +-----+ Ext. manager +-----+--+   ....    +--+-----+
    +-----------+     +--------------+     |                 |
                                           |  +-----------+  |
                                           +--+ Extension +--+
                                              +-----------+

每个扩展都可通过定义在特定命名空间中的stevedore入口点引用。例如,L2扩展通过neutron.agent.l2.extensions命名空间被引用。

相关模块包括:

  • neutron_lib.agent.extension:

    此模块为所有L2及L3的代理扩展定义抽象扩展接口。

  • neutron_lib.agent.l2_extension:

  • neutron_lib.agent.l3_extension:

    这些模块是neutron_lib.agent.extension.AgentExtension的子类和定义特定层的抽象扩展接口。

  • neutron.agent.agent_extensions_manager:

    此模块包含一个管理器,它允许扩展在运行时自行加载。

  • neutron.agent.l2.l2_agent_extensions_manager:

  • neutron.agent.l3.l3_agent_extensions_manager:

    每个模块都将核心资源事件传递给已加载的扩展。

Agent API 对象

每个代理都可以将“代理API对象”传递到其扩展中,以便以可控的方式将其内部开放给它们。为适应不同的代理,每个扩展可以定义一个consume_api()方法接收代理的对象。

此代理API对象是neutron第三方公共接口的一部分。对接口的所有更改将以向后兼容的方式进行管理。

此时,在L2端,只有L2 Open vSwitch代理为扩展提供代理API对象。

相关模块包括:

  • neutron_lib.agent.extension
  • neutron_lib.agent.l2_extension
  • neutron_lib.agent.l3_extension
  • neutron.agent.agent_extensions_manager
  • neutron.agent.l2.l2_agent_extensions_manager
  • neutron.agent.l3.l3_agent_extensions_manager
  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值