驱动程序内部信息

https://blueprints.launchpad.net/ironic/+spec/driver-internal-info

问题描述

驱动程序应该拥有其自身的信息,这些信息不能被用户/管理员操作。这些信息不是由管理员输入的,例如 driver_info,并且可能在部署过程中发生变化。它们只能由驱动程序自身使用。

一个例子是 ipmitool。并非所有 IPMI 固件都支持设置启动设备持久化,因此我们需要在本地保存此信息。

提议的变更

  • 在节点表中添加一个新的内部属性 driver_internal_info,该属性不能通过调用 node.update API 被管理员/用户修改

  • 修改 node.update 以在通过 node.update API 更新驱动程序时清除 driver_internal_info

备选方案

将这些信息保存在一个名为 driver_interal_info 的新表中。

数据模型影响

node 表中添加一个新的内部属性 driver_internal_info。该字段是一个 json 字典。

REST API 影响

driver_internal_info 字段添加到节点详情 API 中。

RPC API 影响

驱动程序 API 影响

Nova 驱动程序影响

安全影响

其他最终用户影响

可扩展性影响

性能影响

其他部署者影响

开发人员影响

其他驱动程序应将其自身的信息保存到新的属性中。

实现

负责人

主要负责人

tan-lin-good

工作项

  • 使用迁移在节点表中添加 driver_internal_info

  • 更新对象 Node。

  • 支持在节点更改其驱动程序时清除其 driver_internal_infos。

  • 使用此功能更新一些驱动程序。

依赖项

测试

添加单元测试。

升级和向后兼容性

添加数据库迁移脚本。

文档影响

更新开发者文档。

参考资料