跳转到: 导航, 搜索

Neutron/LBaaS/DriverAPI

< Neutron‎ | LBaaS

范围

LBaaS 驱动是一个将抽象模型转换为特定厂商配置并配置负载均衡设备的模块。本文档描述了驱动程序的 API。

API

create_vip (device, vip)
update_vip (device, new_vip, old_vip)
delete_vip (device, vip)

create_pool (device, pool)
update_pool (device, new_pool, old_pool)
delete_pool (device, pool)

create_member (device, member)
update_member (device, new_member, old_member)
delete_member (device, member)

create_health_monitor (device, health_monitor, pool_id)
delete_health_monitor (device, health_monitor, pool_id)

get_pool_stats (device, pool_id)


所有更新方法都会接收新的和旧的对象。驱动程序实现者如何将更改应用于实际配置由他们决定。对于某些设备(如 HAProxy),用较新的配置替换旧配置的部分可能更容易。对于其他设备(如 Cisco ACE LB),计算新旧对象之间的差异并仅应用差异可能更容易。

健康监控操作用于将健康监控器关联到由 pool_id 指定的池。从 Grizzly 开始,驱动程序无法更新健康监控器。Member 和 Vip 对象具有 'pool_id' 属性,用于查找这些对象关联的池。统计信息以字典形式返回,驱动程序可以将 'update_time' 属性设置为指示数据实际的时间。

get_service_type(self)

返回驱动程序处理的服务类型,例如 "LOADBALANCER"。

get_type(self)

返回驱动程序的类型,该值用于标识。

get_version(self)

返回驱动程序的版本,例如 "1.0"。

create_vip(self, device, vip)

创建负载均衡 Vip。

  •  :param device: 包含负载均衡设备信息的字典
  •  :param vip: 包含 Vip 的字典

update_vip(self, device, new_vip, old_vip)

更新负载均衡 Vip。

  •  :param device: 包含负载均衡设备信息的字典
  •  :param new_vip: 包含更新后的 Vip 的字典
  •  :param old_vip: 包含 Vip 的先前版本的字典

delete_vip(self, device, vip)

删除负载均衡 Vip。

  •  :param device: 包含负载均衡设备信息的字典
  •  :param vip: 包含要删除的 Vip 的字典

create_pool(self, device, pool)

创建负载均衡池。

对于虚拟负载均衡设备,此方法也可能执行配置。如果需要,它可以更新设备详细信息,例如管理设置。

  •  :param device: 包含负载均衡设备信息的字典
  •  :param pool: 包含 Pool 的字典

update_pool(self, device, new_pool, old_pool)

更新负载均衡池。

  •  :param device: 包含负载均衡设备信息的字典
  •  :param new_pool: 包含更新后的 Pool 的字典
  •  :param old_pool: 包含 Pool 的先前版本的字典

delete_pool(self, device, pool)

删除负载均衡池。

对于虚拟负载均衡设备,此方法可能会关闭 VM。

  •  :param device: 包含负载均衡设备信息的字典
  •  :param pool: 包含要删除的 Pool 的字典

create_member(self, device, member)

创建负载均衡成员。

  •  :param device: 包含负载均衡设备信息的字典
  •  :param member: 包含 Member 的字典

update_member(self, device, new_member, old_member)

更新负载均衡成员。

  •  :param device: 包含负载均衡设备信息的字典
  •  :param new_member: 包含更新后的 Member 的字典
  •  :param old_member: 包含 Member 的先前版本的字典

delete_member(self, device, member)

删除负载均衡成员。

  •  :param device: 包含负载均衡设备信息的字典
  •  :param member: 包含要删除的 Member 的字典

create_health_monitor(self, device, health_monitor, pool_id)

在指定的池中创建健康监控器。

  •  :param device: 包含负载均衡设备信息的字典
  •  :param health_monitor: 包含健康监控器的字典
  •  :param pool_id: 池的 ID

delete_health_monitor(self, device, health_monitor, pool_id)

在指定的池中删除健康监控器。

  •  :param device: 包含负载均衡设备信息的字典
  •  :param health_monitor: 包含健康监控器的字典
  •  :param pool_id: 池的 ID

get_pool_stats(self, device, pool_id)

获取指定池的统计信息。

  •  :param device: 包含负载均衡设备信息的字典
  •  :param pool_id: 池的 ID
  •  :return: 包含统计数据的字典

错误处理

驱动程序通过引发异常来报告错误。框架支持以下类型的异常

UnsupportedFeature

当驱动程序不支持某个功能时,会引发此异常。

示例:当驱动程序被要求配置会话持久性,但它不支持时。

参数:

  • name - 功能的名称

UnsupportedOption

当请求不支持的选项时,会引发此异常。

示例:当驱动程序被要求配置类型为“some_exotic”的“lb_method”时,它不支持该选项。

参数:

  • feature - 功能的名称
  • option - 选项的名称

AttributeRequired

当对象缺少某些必需的属性时,会引发此异常。

示例:当驱动程序被要求配置基于 cookie 的会话持久性时,但缺少 cookie 的名称。

参数:

  • name - 属性的名称

ConfigError

在设备配置过程中发生任何错误时,会引发此异常。

参数:

  • msg - 错误的描述