所有权信息存储

https://storyboard.openstack.org/#!/story/2001814

在拥有大量硬件设备的大型企业中,底层硬件的所有权可能存在多种情况,以便进行跟踪。一个很好的例子是在混合服务提供商场景中,运营商可能直接拥有部分硬件,可能租赁硬件,最终可能拥有客户拥有的硬件。

我们无法使用现有的节点字段来模拟这种情况,因为硬件所有者之间可能还存在资源共享协议。因此,我们需要某种方式来存储和表示硬件的最终所有者,以便进行跟踪和物流管理。

问题描述

虽然场景各不相同,但最终需要能够以顶层方式存储关于谁拥有特定硬件的信息。

当进行税务资产清点或仅仅是简单地跟踪硬件来源时,这些信息至关重要。

提供搜索和返回已知由特定组织拥有的硬件的能力,可以更快地关联硬件的处置情况,以便进行审计和会计处理。

提议的变更

建议向节点对象添加一个新的信息性字段,可以通过 REST API 查询,并存储在数据库中。目前预计不会对该字段进行其他用途。

未来,如果存在聚合多个管理系统的驱动程序,也可以自动使用该字段,但这超出本次讨论范围。

备选方案

操作员可以将此信息存储在 extra 中,但随后他们仍然需要转储所有节点才能获取包含所需特定信息的节点列表。操作员可能会遇到 API 响应数量的限制,并且可能需要创建他们自己的工具来处理列表处理。

数据模型影响

将在节点表中添加一个 owner 字段,类型为 VARCHAR(255),数据库中的默认值为 null

状态机影响

REST API 影响

owner 字段将作为节点的一部分返回。API 将更新,允许用户通过 API 设置和取消该值。

此外,节点列表的 GET 语法将更新,以允许返回匹配的节点列表。

对该字段的 POST/PATCH 操作将受到新的微版本保护。除非提供了足够的微版本,否则 GET 操作将不会返回该字段。

客户端 (CLI) 影响

“ironic” CLI

“openstack baremetal” CLI

需要进行相应的更改,以启用用户从命令行设置/取消该值的功能。

RPC API 影响

驱动程序 API 影响

Nova 驱动程序影响

Ramdisk 影响

安全影响

其他最终用户影响

可扩展性影响

性能影响

其他部署者影响

开发人员影响

实现

负责人

主要负责人

TheJulia - juliaashleykreger@gmail.com

其他贡献者

工作项

  • 添加数据库字段。

  • 添加对象字段。

  • 添加 REST API 功能和微版本。

  • 更新 REST API 文档。

  • 更新 python-ironicclient。

依赖项

测试

将添加基本的 API CRUD 测试。由于这是一个 API 用户/裸机运营商的信息性字段,因此不需要进行额外的测试。

升级和向后兼容性

该字段将在升级过程的一部分中创建,并在数据库模式中具有默认值。

文档影响

需要更新 REST API 文档。

参考资料