Redfish Profile 创建工具与流程
Redfish Profile 简介
Redfish Profile 是一种标准化的格式,用于指定 Redfish 的支持情况,并轻松传达实现水平。由于 Redfish 每个模式都有独立版本,因此“支持哪个版本的 Redfish”这个问题没有实际意义。HW Management 项目已创建“基线”配置文件,服务器项目正在扩展该配置文件为“服务器”配置文件,其他项目也可以扩展基线配置文件为其设备创建配置文件。
Profile 文档结构
Profile 文档是一个简单的 JSON 文档结构,基于资源和属性要求,格式允许轻松与检索到的 Redfish 负载进行比较。例如,“PropertyRequirements”对象包含 Redfish 属性。可以基于其他 Profile 构建定义,还可以指定 Redfish 协议功能、资源/属性、操作和注册表。
Profile 版本控制
Profile 和资源需求中都支持版本控制。Profile 一旦发布就是静态定义,不会随着模式添加功能而扩大范围。建议“新版本的 Profile”只需使用新名称。模式(资源)版本为“<主版本>.<次版本>.<勘误>”。主版本:客户端和服务必须匹配主版本。次版本:添加新的向后兼容功能。勘误:错误修复或澄清(无功能变化)。
Profile 文档结构详解
- 每个部分都是一个 JSON 对象。
- 资源(模式)和注册表对象遵循定义模式的名称(例如,“EthernetInterface”)。
- 属性级需求嵌套在资源需求内,命名为遵循定义的属性名称(例如,“AssetTag”、“SpeedMbps”)。
- Profile 级信息和协议需求。
- 基本信息如名称、版本、作者等。
- 能够包含其他 Profile 以构建过去的工作基础,但 Profile 不能放宽包含的其他 Profile 的要求,只能添加额外的要求。
- “协议需求”是 Redfish 功能的一部分,不是 JSON 响应负载的一部分。
- 对于 OCP Profile,这些由基线覆盖,此处仅作为示例。
- 资源(模式)级需求。
- 按模式名称组织。
- Profile 可以包含任何数量的标准模式的需求。
- 资源级“ReadRequirement”设置需要模式所需的属性。
- 属性级需求包含在资源级对象中。
- “MinVersion” – 所需的最小模式版本。
- 属性级基本功能。
- JSON 对象遵循属性名称。
- 未列出的属性没有需求。
- 空对象默认为“必需”。
- “ReadRequirement”:
- “MinCount”:
- “WriteRequirement”:
- “Values”:
- 属性级条件需求。
- “ConditionalRequirements”:如果满足一个或多个条件,则应用于属性。
- “Purpose”:文本提供条件需求的理由。
- “SubordinateToResource”:如果资源匹配父级层次结构,则需求适用。
- 比较属性/值:使用资源内的另一个属性作为键,如果键的值与值列表匹配,则添加需求。
- 操作级功能。
- 在每个资源(模式)内按操作名称组织。
- 允许参数需求。
- “AllowableValues”支持“ActionRequirements”。
- 消息注册表级功能。
- 按注册表名称组织。
- 允许多个注册表。
- 允许包含 OEM 注册表。
- 资源级“ReadRequirement”设置需要完整注册表需求。
- 消息按需列出“Requirement”。
- 注意 OCP Profile 目前没有注册表需求。
Profile 规范
- 从 DMTF 网站下载:http://www.dmtf.org/standards/redfish。
- Redfish 互操作性规范(DMTF 文档 DSP0272)。
- Profile 包(DMTF 文档 DSP8013)。
- 包括一个 JSON Schema 文档,用于验证 Profile。
- 示例 Profile 文档,展示 Profile 结构和功能示例。
- 未来的包版本将包含发布的 Profile。
Profile 工具
- 使用 JSON schema 验证器验证 Profile 文档。
- 确保文档符合规范定义的格式。
- 例如:https://www.jsonschemavalidator.net/。
- Profile 互操作验证器。
- 开源工具,用于检查 Redfish 服务实现是否符合 Profile。
- https://github.com/DMTF/Redfish-Interop-Validator。
- 文档生成器。
- 开源工具,将 Profile 文档与 Redfish 模式结合。
- 将自动生成特定于您的 Profile 的“用户指南”。
- https://github.com/DMTF/Redfish-Tools。
行动号召
- 为您的 OCP 项目创建 Profile。
- 从 OCP 基线 Profile 构建。
- 获得OCP 孵化委员会对 Profile 的批准。
- 发布您的 Profile 文档(和用户指南)。
- 在 OCP 项目页面上。
- 提交通过 DMTF 的 Profile 仓库重新发布。
- 发布的 Profile 包含在 DSP8013 包中。
- 直接实施使用 OCP 一致性测试套件测试一致性。