将 CLI 默认 API 版本更改为最新的 ironic API 版本¶
https://bugs.launchpad.net/python-ironicclient/+bug/1671145
在使用 ironic CLI 或 OpenStack CLI (OSC) 时,默认使用 ironic API 版本 1.9。 本规范建议将两个 CLI 中默认使用的 ironic API 版本提高到最新的兼容 API 版本。
问题描述¶
目前,ironic CLI 和 baremetal OSC 插件默认使用 API 版本,该版本可以追溯到 Liberty 发布版本。 [1]
这意味着,任何未使用 CLI 并未指定版本的新用户,只能使用撰写本文时几乎两年前的功能。 这限制了新功能的发现性和可用性。
此外,如果我们将来提高 API 中支持的最低 API 版本,我们无论如何都需要提高最低 CLI 版本。
提议的变更¶
在 Pike 周期中,当用户运行任一 CLI 而未指定版本时,将打印一条警告消息,指示 CLI 将很快默认使用最新的兼容 API 版本。 针对 OSC 插件的建议措辞如下
您正在使用 OpenStack CLI baremetal (ironic) 插件的默认 API 版本。 当前为 API 版本 1.9。 在未来,默认版本将是 API 和 CLI 都理解的最新 API 版本。 您可以通过传递带有所需版本的 –os-baremetal-api-version 参数或使用 OS_BAREMETAL_API_VERSION 环境变量来保留当前行为。
将使用类似的措辞来描述
ironic工具您正在使用
ironicCLI 工具的默认 API 版本。 当前为 API 版本 1.9。 在未来,默认版本将是 API 和 CLI 都理解的最新 API 版本。 您可以通过传递带有所需版本的 –ironic-api-version 参数或使用 IRONIC_API_VERSION 环境变量来保留当前行为。如果用户希望继续使用 API 版本 1.9,他们应在命令行中明确指定。
在 Queens 周期中,CLI 使用的默认 API 版本将更改为与 CLI 兼容的 API 的最新版本。 如果仅指定主版本(例如,
--os-baremetal-api-version=1),将使用该主版本的最新兼容版本(例如,如果这是最新的 1.XX 版本,则为 1.32)。最新的兼容版本将通过 CLI 和 ironic 之间的版本协商确定。 CLI 将首先向 ironic API 的根端点发出请求,该请求返回 ironic API 的版本。 [2] 如果 ironic API 版本低于客户端兼容的最大版本,CLI 将使用 API 服务上运行的版本以确保兼容性。 否则,将使用客户端可以处理的最大 ironic API 版本。
注意
我们可能会在 Queens 周期中弃用
ironic工具。 如果发生这种情况,我们可能会决定跳过将此更改应用于此工具,而选择继续进行弃用。 这取决于单独的规范。
客户端库的更改不在本规范的范围内。
此更改在 Pike PTG 中进行了详细讨论。 [3]
备选方案¶
我们可以定期提高 CLI 使用的默认 API 版本。 这具有不可预测性,从用户角度来看是不利的,并且不能解决最新功能的发现性问题。 它也不利于 CLI 代码库的可维护性。
我们可以将默认值保持为 1.9,并始终记录警告,而无需将默认值更改为最新版本。 这不能解决易用性或发现性问题,并且永久性地为不希望每次调用 CLI 时都指定版本的用户增加额外的烦恼。
我们可以只将
latest传递给 API,而不在提供版本时。 但是,这种方法可能会导致潜在的破坏性行为,如果我们将来对 API 进行破坏性更改。
数据模型影响¶
无
状态机影响¶
无
REST API 影响¶
无
客户端 (CLI) 影响¶
“ironic” CLI¶
当调用 ironic CLI 而未指定 --ironic-api-version 时,将记录一条警告,指示默认值将很快是最新的兼容 API 版本。
在弃用期之后,默认值将相应更改,假设 ironic CLI 本身在此之前未被弃用。
“openstack baremetal” CLI¶
当调用 OSC baremetal 插件而未指定 --os-baremetal-api-version 时,将记录一条警告,指示默认值将很快是最新的兼容 API 版本。
在弃用期之后,默认值将相应更改。
RPC API 影响¶
无
驱动程序 API 影响¶
无
Nova 驱动程序影响¶
无
Ramdisk 影响¶
无
安全影响¶
无
其他最终用户影响¶
无
可扩展性影响¶
无
性能影响¶
无
其他部署者影响¶
无
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
dtantsur
- 其他贡献者
mariojv
工作项¶
添加警告消息
在标准的弃用期(发布边界或 3 个月,以较长者为准)之后,更改 CLI 使用的默认 API 版本。
依赖项¶
无
测试¶
将添加适当的单元和功能测试。
升级和向后兼容性¶
如果用户有使用 CLI 而未指定版本的脚本或工具,则需要更新这些脚本或工具以指定版本。
文档影响¶
无。 将添加适当的发行说明。