【已评审】redfish资源Volumes属性限定

背景

访问Storage/Volumes或Storages/Volumes创建逻辑盘,没传请求体,请求也成功了,创建了任务。会导致创建的逻辑盘缺少必要的Drives和RaidLevel等属性,结果不可预测

关联ISSUE

整体方案

  1. redfish资源Storage/Volumes的POST请求体中,Oem属性和其下级属性OemIdentifier增加Required限定
  2. redfish资源Storages/Volumes的POST请求体中,Oem属性和其下级属性OemIdentifier增加Required限定

评审点

  1. redfish资源Storage/Volumes的POST请求体中,Oem属性和其下级属性OemIdentifier增加Required限定(POST接口)
  2. redfish资源Storages/Volumes的POST请求体中,Oem属性何其下级属性OemIdentifier增加Required限定(POST接口)

详细描述

评审点1:redfish资源Storage/Volumes的POST请求体中,Oem属性和其下级属性OemIdentifier增加Required限定(POST接口)

资源Uri:/redfish/v1/Systems/:systemid/Storage/:storageid/Volumes

资源版本:openubmcvolume.v1_0_0.json

属性评审点:

POST请求体参数Oem

属性名 类型 示例/取值约束 readonly 易变属性 实现 PATCH 操作权限 描述
Oem object 非null . eg: {OemIdentifier: {“Drives”: {…}, “VolumeRaidLevel”: {…}}…} / / / / 创建逻辑盘需要的Oem属性
OemIdentifier object 非null. eg: “Huawei”: {{“Drives”: {…}…} / / / / 厂商ID

输入空,访问POST响应示例

{
    "code": "Baase.1.0 GeneralError",
    "message": "A general error has occured. See ExtendedInfo for more information",
    "Message.ExtendedInfo": [
        {
            ...
            "Message": "The create operation failed because the required property Oem was missing from the request"
        }
    ]
}

评审点2:redfish资源Storages/Volumes的POST请求体中,Oem属性何其下级属性OemIdentifier增加Required限定(POST接口)

资源Uri:/redfish/v1/Systems/:systemid/Storages/:storageid/Volumes

资源版本:openubmcvolume.v1_0_0.json

属性评审点:

POST请求体参数Oem

属性名 类型 示例/取值约束 readonly 易变属性 实现 PATCH 操作权限 描述
Oem object 非null . eg: {OemIdentifier: {“Drives”: {…}, “VolumeRaidLevel”: {…}}…} / / / / 创建逻辑盘需要的Oem属性
OemIdentifier object 非null. eg: “Huawei”: {{“Drives”: {…}…} / / / / 厂商ID

输入空,访问POST响应示例

{
    "code": "Baase.1.0 GeneralError",
    "message": "A general error has occured. See ExtendedInfo for more information",
    "Message.ExtendedInfo": [
        {
            ...
            "Message": "The create operation failed because the required property Oem was missing from the request"
        }
    ]
}

是否准备好AI预审

评审结论

问题闭环后通过

  1. 同意redfish资源Storage/Volumes的POST请求体中,Oem属性和其下级属性OemIdentifier增加Required限定(POST接口)
    资源Uri:/redfish/v1/Systems/:systemid/Storage/:storageid/Volumes
    资源版本:openubmcvolume.v1_0_0.json
    限定属性:POST请求体参数Oem

  2. 同意redfish资源Storages/Volumes的POST请求体中,Oem属性何其下级属性OemIdentifier增加Required限定(POST接口)
    资源Uri:/redfish/v1/Systems/:systemid/Storages/:storageid/Volumes
    资源版本:openubmcvolume.v1_0_0.json
    限定属性:POST请求体参数Oem

遗留问题

  1. 修改配套schema,和映射器

预审答案内容由AI生成,仅供参考:

帖子评审结论:【待评审】redfish资源Volumes的请求体设置required

帖子相关性:相关(Redfish 相关: 帖子内容包含 ‘redfish’ 关键字)

  • 总评审点数:2
  • Redfish 相关评审点:2
  • 其他评审点:0

总体结果:通过(2/2 个评审点通过)

评审点 1:redfish资源Storage/Volumes的POST请求体中,Oem属性增加Required限定(POST接口)【Redfish】

结果:通过

  • URI 示例生成:通过
  • Schema 验证:通过(5 项通过)
    • Schema 来源:DMTF ✓,OEM ✗(实际参与校验:DMTF)
    • 入口 schema 文件:dmtf/VolumeCollection.json(DMTF 官方 schema(SchemaFiles/dmtf))
    • Schema 依据:静态校验直接依据:DMTF 官方 schema(SchemaFiles/dmtf)(dmtf/VolumeCollection.json)
  • 规则合规性检查:通过(18 项检查全部通过)
    • 警告项(建议性)
      规则ID:RULE-006
      级别:建议性
      问题描述:VolumeCollection 集合资源中包含 Drives 和 VolumeRaidLevel 两个 OEM 属性,其命名暗示为非导航类属性,不符合集合资源纯净性原则
      处理建议:这是一个 severity=‘should’ 的建议性规则,建议修改以提升规范符合性

评审点 2:redfish资源Storages/Volumes的POST请求体中,Oem属性增加Required限定(POST接口)【Redfish】

结果:通过

  • URI 示例生成:通过
  • Schema 验证:通过(5 项通过)
    • Schema 来源:DMTF ✓,OEM ✗(实际参与校验:DMTF)
    • 入口 schema 文件:dmtf/VolumeCollection.json(DMTF 官方 schema(SchemaFiles/dmtf))
    • Schema 依据:静态校验直接依据:DMTF 官方 schema(SchemaFiles/dmtf)(dmtf/VolumeCollection.json)
  • 规则合规性检查:通过(18 项检查全部通过)
    • 警告项(建议性)
      规则ID:RULE-006
      级别:建议性
      问题描述:集合资源 VolumeCollection 的 Oem 中包含 Drives 和 VolumeRaidLevel 两个非导航类 OEM 属性,不符合集合资源纯净性要求
      处理建议:这是一个 severity=‘should’ 的建议性规则,建议修改以提升规范符合性

因为storage和storages下都有Volumes,所以都要修改