【待评审】新增资源协作属性控制redfish接口返回集合资源时是否自动分页

背景

部分客户希望redfish接口返回集合资源时不进行自动分页。

整体方案

添加一个资源树属性作为开关,用于控制redfish接口返回集合资源时是否自动分页。该属性支持通过配置导入导出以及装备定制化进行修改。

评审点

评审点1:新增资源协作接口AutoPagingEnabled,用于控制redfish接口响应体的自动分页功能
评审点2:新增配置导入导出项AutoPagingEnabled,用于控制redfish接口响应体的自动分页功能
评审点3:新增配置装备定制化项BMCSet_RedfishAutoPagingEnabled,用于控制redfish接口响应体的自动分页功能

详细描述

评审点1:新增资源协作接口AutoPagingEnabled,用于控制redfish接口响应体的自动分页功能

资源path:/bmc/kepler/Redfish/QueryConfig(新增)
资源interface:bmc.kepler.Redfish.QueryConfig(新增)
变化类型:新增资源协作接口属性AutoPagingEnabled

属性名称 变化类型 签名 默认值 读写权限 持久化 变化通知 接口说明
AutoPagingEnabled 新增属性 b true R: ReadOnly
W: BasicSetting
PoweroffPer true 用于控制redfish接口响应体的自动分页功能
  • 默认使能自动分页功能,调用集合资源接口时,若是响应体中子资源数量超过32时,Members中最大展示数量为32,且含有Members@odata.nextLink属性。

    • 比如这个sensors接口:
      uri:/redfish/v1/chassis/1/sensors
      method:GET
      响应体:
{
    "@odata.context": "/redfish/v1/$metadata#SensorCollection.SensorCollection",
    "@odata.id": "/redfish/v1/Chassis/1/Sensors",
    "@odata.type": "#SensorCollection.SensorCollection",
    "Name": "Sensor Collection",
    "Members@odata.count": 139,
    "Members": [
        {
            "@odata.id": "/redfish/v1/Chassis/1/Sensors/sensorid"
        }
		......,最大子资源数量为32
    ],
    "Members@odata.nextLink": "/redfish/v1/Chassis/1/Sensors?$skip=32&$top=32"
}
  • 不使能自动分页功能,调用集合资源接口时,Members中最大展示数量为当前已有的数量,没有Members@odata.nextLink属性。
    • 比如这个sensors接口:
      uri:/redfish/v1/chassis/1/sensors
      method:GET
      响应体:
{
    "@odata.context": "/redfish/v1/$metadata#SensorCollection.SensorCollection",
    "@odata.id": "/redfish/v1/Chassis/1/Sensors",
    "@odata.type": "#SensorCollection.SensorCollection",
    "Name": "Sensor Collection",
    "Members@odata.count": 139,
    "Members": [
        {
            "@odata.id": "/redfish/v1/Chassis/1/Sensors/sensorid"
        }
		......,最大子资源数量为139
    ]
}

评审点2:新增配置导入导出项AutoPagingEnabled,用于控制redfish接口响应体的自动分页功能

配置项名称(中文) 配置项类别 配置项 归属组件 取值说明 导入导出类型(ExportOnly,ImportAndExport) 导出后是否可直接导入(无修改)
redfish响应体自动分页功能使能状态 QueryConfig AutoPagingEnabled redfish boolean类型,默认取值为true,表示使能redfish响应体自动分页功能。 ImportAndExport

配置项详情:

{
    "type": "object",
    "properties": {
        "Description": {
            "const": "Configurations of redfish"
        },
        "ConfigData": {
            "type": "object",
            "properties": {
                "QueryConfig": {
                    "type": "object",
                    "properties": {
                        "AutoPagingEnabled": {
                            "type": "boolean",
                            "AttributeType": "ImportAndExport",
                            "description": "redfish响应体自动分页功能使能状态,true表示功能使能,false表示未使能"
							"CustomDefault": true
                        }
                    }
                },
				......
            }
        }
    }
}

评审点3:新增配置装备定制化项BMCSet_RedfishAutoPagingEnabled,用于控制redfish接口响应体的自动分页功能

说明
定制化项名称 BMCSet_RedfishAutoPagingEnabled
归属组件 redfish
类型 string
默认值 “on”
处理逻辑 if (BMCSet_RedfishAutoPagingEnabled == “off” )
关闭redfish接口响应体自动分页功能
else
开启redfish接口响应体自动分页功能
说明 redfish接口响应体自动分页功能开关
off:关闭redfish接口响应体自动分页功能
on或不配置:开启redfish接口响应体自动分页功能
实现方式 配置导入导出功能承载