添加启用/禁用分段的选项¶
https://blueprints.launchpad.net/masakari/+spec/enable-to-segment
问题描述¶
有时,操作员希望暂时禁用实例高可用性。例如,当我们计划更新硬件或在运行 masakari-monitors 的计算节点上拉取最新代码时,我们需要停止 masakari-api 和 masakari-engine 服务,以防止其执行任何高可用性恢复工作流程。如果您忘记停止这些服务,最终会导致混乱,并且您需要花费大量时间来恢复损坏的实例。
因此,我们需要一个简单的解决方案,允许 masakari 在不要求操作员停止这些服务的情况下,暂时禁用实例高可用性。
提议的变更¶
本规范主要是添加一个启用/禁用分段的选项
为分段添加
enabled选项。创建新分段时,默认情况下将启用它。选项enabled具有布尔值:‘True’ 表示分段已启用,将处理该分段的通知;‘False’ 表示分段已禁用,将忽略该分段的通知。用户可以通过
PUT /segment/<segment_uuid>API 修改enabled选项。
备选方案¶
无
数据模型影响¶
是的,将在 failover_segments 表中添加一个新的数据库列 enabled,类型为 Boolean,默认值为 True。
REST API 影响¶
以下更改将在新的 API 微版本中引入。
POST /segments
请求示例
{ "segment": { "service_type": "COMPUTE", "recovery_method": "AUTO", "name": "segment", "enabled": True } }
响应示例
{ "segment": { "uuid": "5fd9f925-0379-40db-a7f8-786a0b655b2a", "deleted": false, "created_at": "2017-04-21T08:59:53.991030", "description": null, "recovery_method": "AUTO", "updated_at": null, "service_type": "COMPUTE", "deleted_at": null, "id": 4, "name": "segment", "enabled": True } }
PUT /segments/{segment_id}
请求示例
{ "segment": { "name": "new_segment", "enabled": False } }
响应示例
{ "segment": { "uuid": "5fd9f925-0379-40db-a7f8-786a0b655b2a", "deleted": false, "created_at": "2017-04-21T08:59:54.000000", "description": null, "recovery_method": "AUTO", "updated_at": "2017-04-21T09:47:03.748028", "service_type": "COMPUTE", "deleted_at": null, "id": 4, "name": "new_segment", "enabled": False } }
GET /segments
响应示例
{ "segments": [ { "uuid": "9e800031-6946-4b43-bf09-8b3d1cab792b", "deleted": false, "created_at": "2017-04-20T10:17:17.000000", "description": "Segment1", "recovery_method": "auto", "updated_at": null, "service_type": "Compute", "deleted_at": null, "id": 1, "name": "segment2", "enabled": True } ] }
GET /segments/<segment_uuid>
响应示例
{ "segment": { "uuid": "5fd9f925-0379-40db-a7f8-786a0b655b2a", "deleted": false, "created_at": "2017-04-21T08:59:53.991030", "description": null, "recovery_method": "AUTO", "updated_at": null, "service_type": "COMPUTE", "deleted_at": null, "id": 4, "name": "new_segment", "enabled": False } }
安全影响¶
无
通知影响¶
字段 enabled 将被添加到 masakari 通知中的分段中。例如,create.segment.start 通知的数据格式如下所示
{
"event_type": "segment.create.start",
"message_id": "e44cb15b-dcba-409e-b0e1-9ee103b9a168",
"payload": {
"masakari_object.data": {
"description": null,
"fault": null,
"name": "test",
"recovery_method": "auto",
"service_type": "compute",
"enabled": True
},
"masakari_object.name": "SegmentApiPayload",
"masakari_object.namespace": "masakari",
"masakari_object.version": "1.1"
},
"publisher_id": "masakari-api:fake-mini",
"timestamp": "2018-11-22 09:25:12.393979"
}
其他最终用户影响¶
python-masakariclient、masakari-dashboard 和 openstacksdk 将更新以支持分段中 enabled 参数的新微版本。
性能影响¶
无
其他部署者影响¶
无
开发人员影响¶
无
实现¶
负责人¶
主要负责人
suzhengwei <sugar-2008@163.com>
工作项¶
创建一个新的 API 微版本来处理分段中的
enabled参数。更新启用分段的文档
更新 python-masakariclient、masakari-dashboard 和 openstacksdk 以管理分段的
enabled参数。添加功能测试
依赖项¶
无
测试¶
需要单元测试和功能测试。
添加必要的单元测试和功能测试,这些测试将在 gate 中运行。
文档影响¶
更新 Masakari API 参考文档。
参考资料¶
无
历史¶
发布名称 |
描述 |
|---|---|
Ussuri |
引入 |
Victoria |
重新提出 |