【已评审】支持新增redfish标准SEL接口

背景

当前redfish标准接口存在缺失,需要评审新增redfish标准接口以及属性。

关联ISSUE

[需求]: 支持LogService资源升级

评审点

评审点1:
新增URI:/redfish/v1/Managers/:managerid/LogServices/SEL
评审点2:
新增URI:/redfish/v1/Managers/:managerid/LogServices/SEL/Entries
评审点3:
新增URI:/redfish/v1/Managers/:managerid/LogServices/SEL/Entries/:entriesid
评审点4:
新增资源协作接口路径:/bmc/kepler/Managers/:managerid/LogServices/SEL

详细描述

评审点1:

新增URI:/redfish/v1/Managers/:managerid/LogServices/SEL

1.1 新增查询属性

请求URI:/redfish/v1/Managers/:managerid/LogServices/SEL(新增)
请求类型:GET
操作权限:ReadOnly
应用场景:redfish接口获取SEL信息

属性名称 类型 操作权限 默认值 取值范围 是否为易变属性 属性说明 约束
@odata.context string ReadOnly /redfish/v1/$metadata#LogService.LogService 日志服务的OData描述信息
@odata.id string(uri) ReadOnly /redfish/v1/Managers/${Uri/managerid}/LogServices/SEL 日志服务的访问路径
@odata.type string ReadOnly #LogService.v1_8_1.LogService 日志服务的类型
Id string ReadOnly SEL 日志服务 ID
Name string ReadOnly SEL 日志服务名称
DateTime string (date-time) ReadOnly 日志服务当前的日期和时间(带 UTC 偏移量)
DateTimeLocalOffset string ReadOnly 时区偏移量
Entries{ object ReadOnly 日志条目集合资源
@odata.id string(uri) ReadOnly 日志条目集合的链接
}
LogEntryType string (enum) ReadOnly SEL SEL 日志条目类型
LogPurposes array (string) ReadOnly Diagnostic Diagnostic 日志用途
MaxNumberOfRecords integer ReadOnly 2000 最大可处理的日志条目数量
Overflow boolean ReadOnly false 日志是否已溢出
OverWritePolicy string (enum) R:ReadOnly W:BasicSetting WrapsWhenFull “Unknown”, “WrapsWhenFull” 日志空间已满时的覆盖策略
Persistency boolean ReadOnly true 冷重启后日志是否保持持久性
ServiceEnable boolean ReadOnly true 服务是否已启用
Status{ object ReadOnly 日志服务的状态
State string ReadOnly Enabled 日志服务资源及其附属部分的状态
Health string (enum) ReadOnly OK “OK”, “Warning”, “Critical” 日志服务资源及其附属部分的健康状态
}
SyslogFilters array ReadOnly 本地记录日志的消息过滤器列表
Actions{ object ReadOnly 日志服务的可用操作集合资源
#LogService.ClearLog{ object ReadOnly 日志清理接口资源
target string(uri) ReadOnly /redfish/v1/Managers/${Uri/managerid}/LogServices/SEL/Actions/LogService.ClearLog 日志清理接口的访问路径
@Redfish.ActionInfo string(uri) ReadOnly /redfish/v1/Managers/${Uri/managerid}/LogServices/SEL/ClearLogActionInfo 日志清理接口说明的访问路径
}}

1.2 新增修改属性

请求URI:/redfish/v1/Managers/:managerid/LogServices/SEL(新增)
请求类型:PATCH
操作权限:BasicSetting
请求头:If-Match
请求体:

属性名称 类型 操作权限 属性说明
DateTime string(date-time) BasicSetting 日志服务当前的日期和时间(带有所需的UTC偏移量)
DateTimeLocalOffset string BasicSetting 时区偏移量

1.3 新增 ClearLog Action

请求URI:/redfish/v1/Managers/:managerid/LogServices/SEL/Actions/LogService.ClearLog(新增)
请求类型:POST
操作权限:BasicSetting
请求头:Content-Type : application/json;charset=utf-8
请求体:无

1.4 新增 ClearLog ActionInfo

请求URI:/redfish/v1/Managers/${Uri/managerid}/LogServices/SEL/ClearLogActionInfo(新增)
请求类型:GET
操作权限:ReadOnly

属性名称 类型 操作权限 默认值 属性说明
@odata.context string ReadOnly /redfish/v1/$metadata#ActionInfo.ActionInfo 清除日志说明的OData描述信息
@odata.id string(uri) ReadOnly /redfish/v1/Managers/${Uri/managerid}/LogServices/SEL/ClearLogActionInfo 清除日志说明的访问路径
@odata.type string ReadOnly #ActionInfo.v1_0_1.ActionInfo 清除日志说明的类型
Id string ReadOnly ClearLogActionInfo 清除日志说明的ID
Name string ReadOnly Clear Log Action Info 清除日志说明的名称
Parameters array ReadOnly 清除日志操作的参数
Oem object ReadOnly {} 制造商/供应商专有的扩展属性

1.5 schema文件说明

新增schema文件logservice.v1_8_1.json

评审点2:

新增URI: /redfish/v1/Managers/:managerid/LogServices/SEL/Entries
请求类型:GET
操作权限:ReadOnly
应用场景:redfish接口获取日志条目集合信息

属性名称 类型 默认值 属性说明
@odata.context string /redfish/v1/$metadata#LogEntryCollection.LogEntryCollection 日志条目集合的OData描述信息
@odata.id string(uri) /redfish/v1/Managers/${Uri/managerid}/LogServices/SEL/Entries 日志条目集合的访问路径
@odata.type string #LogEntryCollection.LogEntryCollection 日志条目集合的类型
Name string Log Service Collection 日志条目集合的名称
Members@odata.count integer 日志条目集合的数量
Members{ object 日志条目链接的集合
@odata.id string(uri) 单条日志的访问路径
}
Members@odata.nextLink string 下一组部分日志的访问链接

schema文件说明
新增schema文件 logentry.json logentrycollection.json

评审点3:

新增URI:/redfish/v1/Managers/:managerid/LogServices/SEL/Entries/:entriesid
请求类型:GET
操作权限:ReadOnly
应用场景:redfish接口获取单条日志信息

属性名称 类型 操作权限 默认值 取值范围 是否为易变属性 属性说明 约束
@odata.context string ReadOnly /redfish/v1/$metadata#LogEntry.LogEntry 事件日志的OData描述信息
@odata.id string ReadOnly /redfish/v1/Managers/${Uri/managerid}/LogServices/SEL/Entries/${Uri/entriesid} 事件日志的访问路径
@odata.type string ReadOnly #LogEntry.v1_20_0.LogEntry 事件日志的类型
Id string ReadOnly ${Uri/entriesid} 事件 ID
Name string ReadOnly Log Entry ${Uri/entriesid} 事件名称
Created string (date-time) ReadOnly 事件创建的时间
EntryType string (enum) ReadOnly SEL SEL 当前事件的类型
EventId string ReadOnly 事件的唯一实例标识
EventTimestamp string (date-time) ReadOnly 事件产生的时间
EventType string (enum) ReadOnly Alert Alert 事件类型
GeneratorId string ReadOnly SEL 事件产生的设备标识
Message string ReadOnly 事件的描述信息
MessageArgs array ReadOnly 事件描述信息中的动态参数
Persistency boolean ReadOnly true 当前事件是否掉电持久化
Resolution string ReadOnly 当前事件的修复建议
ResolutionSteps array ReadOnly 当前事件的修复步骤
SensorNumber integer ReadOnly IPMI 规范中的传感器编号
SensorType string (enum) ReadOnly IPMI 规范中的传感器类型
ServiceProviderNotified boolean ReadOnly true 事件是否已上报
Severity string (enum) ReadOnly “OK”, “Warning”, “Critical” 事件的严重等级
SpecificEventExistsInGroup boolean ReadOnly false 事件是否分组

schema文件说明
新增schema文件 logentry.v1_20_0.json

评审点4:

资源path:/bmc/kepler/Managers/:managerid/LogServices/SEL(新增)
变化类型:新增资源path

评审结论

1、同意新增URI /redfish/v1/Managers/:managerid/LogServices/SEL 包括GET操作,操作权限:ReadOnly;PATCH操作,操作权限:BasicSetting,请求头:If-Match 请求体包括DateTime、DateTimeLocalOffset (详情见评审点1)
2、同意新增URI /redfish/v1/Managers/:managerid/LogServices/SEL/Actions/LogService.ClearLog 请求类型:POST, 操作权限:BasicSetting,请求头:Content-Type : application/json;charset=utf-8,请求体:无 (详情见 1.3 新增 ClearLog Action)
3、同意新增URI /redfish/v1/Managers/${Uri/managerid}/LogServices/SEL/ClearLogActionInfo 请求类型:GET,操作权限:ReadOnly (详情见 1.4 新增 ClearLog ActionInfo)
4、同意新增URI /redfish/v1/Managers/:managerid/LogServices/SEL/Entries 包括GET操作,操作权限:ReadOnly;(详情见 评审点2)
5、同意新增URI /redfish/v1/Managers/:managerid/LogServices/SEL/Entries/:entriesid 包括GET操作,操作权限:ReadOnly;(详情见 评审点3)
6、同意新增schema文件 logservice.v1_8_1.json、logentry.json、logentrycollection.json、logentry.v1_20_0.json
7、同意新增SEL的资源协作接口路径: /bmc/kepler/Managers/:managerid/LogServices/SEL

遗留问题

@liuwei 这个资源是 传感器事件 SEL,不是 EventLog,需要修改

@liuwei 目前没有诊断数据,这部分不是 required 属性,可以不实现

这个属性是 read-write 属性,并且 openUBMC 已经支持两种记录方式

已修改

@pengqiang-gs 已修改