暴露支持的电源状态¶
https://bugs.launchpad.net/ironic/+bug/1734827
本 SPEC 建议添加一个新的 API 来暴露节点支持的电源状态。此 API 将有助于判断节点是否支持某个电源操作,因为它取决于电源接口是否支持软关机和软重启等电源操作。
问题描述¶
Ironic 自 Ocata 版本以来支持软关机和软重启。但是,并非所有电源接口都支持这些新的电源操作。因此,需要一个新的 API 来查看节点是否支持某个电源操作。该提议的 API 与获取节点支持的启动设备 API 类似,该 API 的描述见 此处。
提议的变更¶
将引入新的 API 来获取节点的当前电源状态和支持的电源状态。详情请参见“REST API 影响”部分
GET /v1/nodes/{node_ident}/states/power
GET /v1/nodes/{node_ident}/states/power/supported
还将为新的 API 添加新的 CLI。详情请参见“客户端 (CLI) 影响”部分
openstack baremetal node power show [--supported] <node>
备选方案¶
另一种选择是仅添加一个新的 API 来获取支持的电源状态。还有一些其他选项可以通过 CLI 支持该 API
将一个新的选项添加到
openstack baremetal node show以显示支持的电源状态。添加一个新的子命令来显示支持的电源状态,例如:
openstack baremetal node supported power show。
但是,当前的设计更符合现有 API 和启动设备的 CLI 的一致性。
数据模型影响¶
无
状态机影响¶
无
REST API 影响¶
我们将引入两个 API。它们将从一个新的 Bare Metal API 版本开始可用。
获取节点的当前电源状态
GET /v1/nodes/{node_ident}/states/power
响应如下
{ "power_state": "power on" }
获取节点的支持的电源状态
GET /v1/nodes/{node_ident}/states/power/supported
响应包含节点的支持的电源状态:例如
{ "supported_power_states": [ "power on", "power off", "rebooting", "soft rebooting", "soft power off" ] }
客户端 (CLI) 影响¶
openstack baremetal CLI 将支持新的 API。
“ironic” CLI¶
无
不再向“ironic” CLI 添加新功能。
“openstack baremetal” CLI¶
将添加一个新的子命令
openstack baremetal node power show [--supported] <node>
在不使用 --supported 选项的情况下,此命令将显示指定节点的电源状态。当指定 --supported 选项时,此命令将显示支持的电源状态。
RPC API 影响¶
将添加一个新的 RPC API,get_supported_power_states。这将同步返回指定节点支持的电源状态列表。
驱动程序 API 影响¶
无
驱动程序 API get_suuported_power_states 已经在基本的电源接口中定义。如果电源接口没有覆盖该方法,则将返回默认列表,其中包含上电、关机和重启。
Nova 驱动程序影响¶
无
新的 API 可用于查看是否支持请求的电源操作。虽然这可能对 Nova 驱动程序有所帮助,但目前没有计划进行更改。
Ramdisk 影响¶
无
安全影响¶
无
其他最终用户影响¶
无
可扩展性影响¶
无
性能影响¶
无
其他部署者影响¶
无
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
shiina-hironori (irc:hshiina)
- 其他贡献者
无
工作项¶
添加新的 RPC API。
添加新的 Baremetal API。
添加 OSC baremetal 子命令。
为 tempest 添加一个新的 API 测试。
将新的 API 添加到 API 参考中。
依赖项¶
无
测试¶
将在 Tempest 中添加一个 API 测试。
升级和向后兼容性¶
无
文档影响¶
新的 API 将被添加到 Baremetal API 参考中。
参考资料¶
此变更最初是在审查支持软关机的 SPEC 时提到的:https://review.opendev.org/#/c/186700/