背景
光模块脏污方案变动,因此redfish接口需要做相应调整
关联ISSUE
整体方案
1、调整已有脏污检测北向接口。
脏污检测配置接口增加配置项参数Operation,用来支持各检测阶段的配置。取值包括InitiationPhase1、DetectionPhase1 、InitiationPhase2、 DetectionPhase2。其中InitiationPhase1初始化阶段一,DetectionPhase1启动阶段一检测,InitiationPhase2初始化阶段二,DetectionPhase2启动阶段二检测,阶段二检测完成后可获取检测结果。
脏污检测查询接口增加返回内容DetectionPhase、LocalContaminationDetected、RemoteContaminationDetected、FirstContaminationDistance、SecondContaminationDistance,用来支持脏污检测精细化结果展示。其中DetectionPhase表示检测所处阶段、LocalContaminationDetected表示本端Rx光口脏污检测结果、RemoteContaminationDetected表示对端Tx光口脏污检测结果、FirstContaminationDistance表示各通道最大脏污点与本端光模块之间的距离、SecondContaminationDistance表示各通道第二大脏污点与本端光模块之间的距离
评审点
脏污检测北向接口变更
详细描述
评审点1 /redfish/v1/Managers/ManagerId/DiagnosticService/ContaminationDetection/Actions/ContaminationDetection.Start 请求体变更
- 操作权限:DiagnoseMgmt
- 请求类型:POST
- 请求URL: /redfish/v1/Managers/ManagerId/DiagnosticService/ContaminationDetection/Actions/ContaminationDetection.Start(变更)
- 请求头:无
- 请求体:
| 变更类型 | 属性名称 | 属性类型 | 说明 | 接口约束 |
|---|---|---|---|---|
| 新增 | Operation | string(enum) | 要启动的检测操作(必选参数) | 取值 InitiationPhase1,DetectionPhase1, InitiationPhase2, DetectionPhase2 |
请求体举例
{
"Detectors": [
"300001","300002"
],
"Operation": "InitiationPhase1"
}
评审点2 /redfish/v1/Managers/ManagerId/DiagnosticService/ContaminationDetection/Actions/ContaminationDetection.GetResult 响应体变更
- 操作权限:DiagnoseMgmt
- 请求类型:POST
- 请求URL: /redfish/v1/Managers/ManagerId/DiagnosticService/ContaminationDetection/Actions/ContaminationDetection.GetResult(变更)
- 请求头:无
- 响应体:
| 变更类型 | 属性名称 | 属性类型 | 说明 | 接口约束 |
|---|---|---|---|---|
| 新增 | DetectionPhase | string(enum) | 脏污检测所处阶段 | 取值 None, Phase1, Phase2 |
| 删除 | ContaminationDistance | number | 脏污位置点与检测对象之间的距离 | 无 |
| 新增 | LocalContaminationDetected | string(enum) | 本端Rx光口脏污检测结果 | “Detected”, “NotDetected”, “Unknown” ;"Unknown"表示检测结论未确定 |
| 新增 | RemoteContaminationDetected | string(enum) | 对端Tx光口脏污检测结果 | “Detected”, “NotDetected”, “Unknown” ;"Unknown"表示检测结论未确定 |
| 新增 | FirstContaminationDistance | array,数组元素类型为number | 各通道最大脏污点与本端光模块之间的距离 | 数字类型数组,单位米,负值表示该通道未检测到脏污 |
| 新增 | SecondContaminationDistance | array,数组元素类型为number | 各通道第二大脏污点与本端光模块之间的距离 | 数字类型数组,单位米,负值表示该通道未检测到脏污 |
响应体举例
{
"error": {
"code": "Base.1.0.GeneralError",
"message": "A general error has occurred. See ExtendedInfo for more information.",
"@Message.ExtendedInfo": [
{
"@odata.type": "#Message.v1_0_0.Message",
"MessageId": "Base.1.0.Success",
"RelatedProperties": [],
"Message": "Successfully Completed Request",
"MessageArgs": [],
"Severity": "OK",
"Resolution": "None",
"Oem": {
"{OemIdentifier}": {
"Detections": [
{
"DetectorId": "300001",
"DetectionPhase": "Phase2", # 检测阶段,取值 None, Phase1, Phase2
"DetectionStatus": "Pending", # 特定DetectionPhase的检测状态,取值 "Pending" - 未启动, "Running" - 正在进行, "Completed" - 完成,"Unknown" - 状态未知(执行异常)
"Result": {
"ContaminationDetected": "Detected", # 综合检测结论,"Detected", "NotDetected", "Unknown" ;"Unknown"表示检测结论未确定
"LocalContaminationDetected": "Detected",
"RemoteContaminationDetected": "Detected",
"FirstContaminationDistance": [10.0, -1, …], # 各通道最大脏污点与本端光模块之间的距离。浮点类型数组,单位米,负值表示该通道未检测到脏污
"SecondContaminationDistance": [-1, -1, …] # 各通道第二大脏污点与本端光模块之间的距离。浮点类型数组,单位米,负值表示该通道未检测到脏污
}
}
]
}
}
}
]
}
}
评审结论
同意 /redfish/v1/Managers/ManagerId/DiagnosticService/ContaminationDetection/Actions/ContaminationDetection.Start 请求体变更
| 变更类型 | 属性名称 | 属性类型 | 说明 | 接口约束 |
|---|---|---|---|---|
| 新增 | Operation | string(enum) | 要启动的检测操作 | 取值 InitiationPhase1,DetectionPhase1, InitiationPhase2, DetectionPhase2 |
同意/redfish/v1/Managers/ManagerId/DiagnosticService/ContaminationDetection/Actions/ContaminationDetection.GetResult 响应体变更
| 变更类型 | 属性名称 | 属性类型 | 说明 | 接口约束 |
|---|---|---|---|---|
| 新增 | DetectionPhase | string(enum) | 脏污检测所处阶段 | 取值 None, Phase1, Phase2 |
| 删除 | ContaminationDistance | number | 脏污位置点与检测对象之间的距离 | 无 |
| 新增 | LocalContaminationDetected | string(enum) | 本端Rx光口脏污检测结果 | “Detected”, “NotDetected”, “Unknown” ;"Unknown"表示检测结论未确定 |
| 新增 | RemoteContaminationDetected | string(enum) | 对端Tx光口脏污检测结果 | “Detected”, “NotDetected”, “Unknown” ;"Unknown"表示检测结论未确定 |
| 新增 | FirstContaminationDistance | array,数组元素类型为number | 各通道最大脏污点与本端光模块之间的距离 | 数字类型数组,单位米,负值表示该通道未检测到脏污 |
| 新增 | SecondContaminationDistance | array,数组元素类型为number | 各通道第二大脏污点与本端光模块之间的距离 | 数字类型数组,单位米,负值表示该通道未检测到脏污 |
遗留问题
1、修改之后是否存在兼容性问题
闭环:周边配套组件尚未完成开发,该功能还未在产品正式商用,不存在兼容性问题
2、社区需要发布接口变更通知
闭环:社区变更通知已发:光模块脏污检测Redfish接口变更通知
