弃用 Cinder V1 API¶
https://blueprints.launchpad.net/cinder/+spec/deprecate-v1-api
由于 V2 API 早在 Grizzly 版本中开发并已稳定,因此应弃用 Cinder V1 API。新的特性正在开发到 V2,而 V1 将永远无法拥有这些特性。
问题描述¶
V2 API 的切换涉及客户端的一些更改,以使内容更加一致,例如 display_name 变为 name,以及 display_description 和 description。这些更改同时应用于卷和快照控制器。假设仍然有许多客户端支持 V1,以及许多已部署的云仍然使用 V1,这些云需要进行一些更改才能轻松切换。
用例¶
提议的变更¶
在 Juno 版本中保留 V1 API 的启用状态,但在 Cinder API 服务启动时给出启用警告。/v1 和 /v2 可以同时工作,这可以让用户按照自己的节奏切换客户端。在 K 版本中,关闭 V1。
备选方案¶
n/a
数据模型影响¶
n/a
REST API 影响¶
/v1 将继续正常工作并处理传入请求。
安全影响¶
n/a
通知影响¶
n/a
其他最终用户影响¶
/v1 将继续正常工作并处理传入请求。如果最终用户访问 <ip>:8776/,他们将看到 V2 列为当前版本,V1 列为已弃用版本。
性能影响¶
n/a
其他部署者影响¶
部署者必须确保在他们的 cinder.conf 中设置 enable_v1_api=true。在 Juno 之前的版本中,enable_v1_api 默认设置为 true,但 Juno 将默认将此选项设置为 false。
开发人员影响¶
n/a
实现¶
负责人¶
- 主要负责人
<thingee>
工作项¶
在 lib/cinder 中将 devstack 设置为 enable_v1_api=true。
添加更改到 grenade,以设置 enable_v1_api=true。
在使用 Cinder 客户端时,为 Nova 添加 V2 支持,但也要支持仍然启用的 V1。
为启用 V1 API 添加 Cinder API 的弃用警告,并将 enable_v1_api 默认设置为 false。
更新文档 API ref/spec 页面。在适当的地方更新运维指南。
依赖项¶
Devstack 对 Cinder v2 的支持:https://review.openstack.org/#/c/22489/
Nova 对 Cinder v2 的支持:https://review.openstack.org/#/c/43986/
Devstack 默认 enable_v1_api=true:https://review.openstack.org/#/c/102568
确保 greneade 测试仍然通过。
测试¶
V1 的单元测试仍然存在。Tempest 在 Juno 中仍然会进行 V1 测试。
文档影响¶
V1 Cinder 文档将在适当的地方提及它已被弃用。还可以提供升级说明以及保持 V1 启用的说明。这包括参考、规范和运维文档。
参考资料¶
n/a