弃用 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_descriptiondescription。这些更改同时应用于卷和快照控制器。假设仍然有许多客户端支持 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 页面。在适当的地方更新运维指南。

依赖项

测试

V1 的单元测试仍然存在。Tempest 在 Juno 中仍然会进行 V1 测试。

文档影响

V1 Cinder 文档将在适当的地方提及它已被弃用。还可以提供升级说明以及保持 V1 启用的说明。这包括参考、规范和运维文档。

参考资料

n/a