Neutron/LBaaS/DriverAPI
目录
- 1 范围
- 2 API
- 2.1 get_service_type(self)
- 2.2 get_type(self)
- 2.3 get_version(self)
- 2.4 create_vip(self, device, vip)
- 2.5 update_vip(self, device, new_vip, old_vip)
- 2.6 delete_vip(self, device, vip)
- 2.7 create_pool(self, device, pool)
- 2.8 update_pool(self, device, new_pool, old_pool)
- 2.9 delete_pool(self, device, pool)
- 2.10 create_member(self, device, member)
- 2.11 update_member(self, device, new_member, old_member)
- 2.12 delete_member(self, device, member)
- 2.13 create_health_monitor(self, device, health_monitor, pool_id)
- 2.14 delete_health_monitor(self, device, health_monitor, pool_id)
- 2.15 get_pool_stats(self, device, pool_id)
- 3 错误处理
范围
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: 包含池的字典
update_pool(self, device, new_pool, old_pool)
更新负载均衡器池。
- :param device: 包含负载均衡器信息的字典
- :param new_pool: 包含更新后的池的字典
- :param old_pool: 包含池的先前版本的字典
delete_pool(self, device, pool)
删除负载均衡器池。
对于虚拟负载均衡器,此方法可能会关闭 VM。
- :param device: 包含负载均衡器信息的字典
- :param pool: 包含要删除的池的字典
create_member(self, device, member)
创建负载均衡器成员。
- :param device: 包含负载均衡器信息的字典
- :param member: 包含成员的字典
update_member(self, device, new_member, old_member)
更新负载均衡器成员。
- :param device: 包含负载均衡器信息的字典
- :param new_member: 包含更新后的成员的字典
- :param old_member: 包含成员的先前版本的字典
delete_member(self, device, member)
删除负载均衡器成员。
- :param device: 包含负载均衡器信息的字典
- :param 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 - 错误的描述