背景
部分客户希望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
响应体:
- 比如这个sensors接口:
{
"@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
响应体:
- 比如这个sensors接口:
{
"@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接口响应体自动分页功能 |
| 实现方式 | 配置导入导出功能承载 |