Closed
[需求]: 支持通过redfish采集光模块参数 #954
huangleishengAdd on  Jul 25Closed at  Sep 8
huangleishengCollaborators
Jul 25 Create

感谢您为社区贡献新需求!请按照以下提示提供详细信息,以便我们更好地理解并跟进。

版本分支

openUBMC main

需求属性

所属版本

openUBMC26.09

工作量

NA

是否需要编码

是

是否免测试

否

周边依赖

NA

需求来源

NA

需求描述

简要说明

支持通过redfish采集光模块参数

系统用户

网管工具

前置条件

BMC运行正常

主成功场景

支持通过redfish采集光模块参数,含SNR、host/media TLP、Tx Rx LoS/LOL、TxFault、私有参数

扩展场景(含异常场景)

NA

约束

仅UB/UBoE/RoCE端口光模块支持;某个机型/端口类型对应光模块不支持个别参数,redfish对应属性值有明确标识,如 null

非功能需求

likedislike
openUBMC-robotopenUBMC-robotCollaborators
Jul 25 Added label: sig/sig-interface
openUBMC-robotopenUBMC-robotCollaborators
Jul 25 associated Kanban: openUBMC 26.09 需求看板
openUBMC-robot
openUBMC-robotCollaborators
Jul 25 Comments:

欢迎来到 openUBMC 社区

Hey @yelvsub , 感谢你对社区的贡献.

机器人使用手册

有关指令的使用,可以点击 说明文档 或 论坛 查看详情。开发人员可以在每个PR或Issue下方评论特定指令来触发机器人任务。

联系指引

有疑问可以联系 SIG: sig-interface ,
维护者是: @DataSculptor, @WeliveWelove, @aaronlee, @huanghan ,
优秀贡献者是: @L_Ling, @PLUS_ONE, @yelvsub .

likedislike
openUBMC-robot
openUBMC-robotCollaborators
Jul 25 Comments:

Issue 工作流介绍

社区的需求和缺陷的工作流状态处于纳管中。

类型 上个状态 下个状态 评论命令 谁可以操作
需求 待办的 已接纳 /todo2accepted SIG组: sig-release-management (maintainer)
需求 已接纳 开发中 /accepted2developing 仓库成员角色: Maintainer, Committer, Contributor, Owner
需求 开发中 转测中 /developing2testing 仓库成员角色: Maintainer, Committer, Contributor, Owner
需求 转测中 待验收 /testing2UAT 仓库成员角色: Maintainer, Committer, Contributor, Owner
需求 待验收 已完成 /UAT2done SIG组: sig-QA (maintainer,committer)
需求 待办的 已挂起 /todo2suspended SIG组: sig-release-management (maintainer)
需求 已挂起 已接纳 /suspended2accepted SIG组: sig-release-management (maintainer)
需求 待办的 已拒绝 /todo2rejected SIG组: sig-release-management (maintainer)
需求 已拒绝 已接纳 /rejected2accepted SIG组: sig-release-management (maintainer)
likedislike
wangjianCollaborators
Jul 25 Comments:

/todo2accepted

likedislike
openUBMC-robotopenUBMC-robotCollaborators
Jul 25 changed custom state from 待办的 to 已接纳
huangjiapeiCollaborators
Aug 17 Comments:

/accepted2developing

likedislike
openUBMC-robotopenUBMC-robotCollaborators
Aug 17 changed custom state from 已接纳 to 开发中
zhaotianliCollaborators
Aug 22 Comments:

PR #1478 回顾分析: 【e228ba8c6e3e8dfdf49e7ef232406836】feat: 支持redfish显示光模块参数

仓库: openUBMC/rackmount
分支: nightzmare/main → openUBMC/main
合并时间: 2026-08-22 17:31
作者: nightzmare

注:get-ai-review 未检索到 OpenClaw AI 检视记录(返回空)。本回顾纳入两类 AI 生成内容:GitCode 平台 AI 代码检视(openUBMC-robot,openubmc-ai-review 标记,2 轮各 4 条 diff_comment + 2 份摘要报告,评级均为"一般":0 严重 / 2 警告 / 2 建议)与 AI 一致性维度检视(Richardli25 账号发布的 D14-D25 检视)。本 PR 为 Redfish 北向实现,配套 mdb 接口变更(评审点 1-3)属 mdb_interface 仓。


1. AI 检视意见追踪

# 来源 AI 发现 级别 后续处理 说明
1 平台AI 第1轮 (diff_comment) GetTxLosState 缺 nil 防护:Model 为 nil 时 string.match 抛错、TxLoS 为 nil 时 ~= 0 恒 true 误报 LOS(Transceivers.json:311) 警告 💬 经检视裁定接受(未改码) Richardli25 复核:与既有 GetRxLosState/GetTxFaultState 完全同构(复制既有惯例),非本 PR 新引入缺陷,不阻塞;线程 08-22 17:10 标记 resolved,最终 Formula 仍未加判空
2 平台AI 第1轮 format_scalar 对字符串类型值会抛 'number expected, got string' 错(lua:20) 警告 💬 经检视裁定接受(未改码) 复核:mdb baseType 为 Double/U16,DBus 取值恒为数值,字符串场景基本不成立(低风险观察项);最终代码仅返回值包 tonumber(string.format(...)),未按建议做入参 tonumber 预转换
3 平台AI 第1轮 返回的 PowerOnCount/ODSPHighTemperatureRuntimeSeconds 未在 "Properties" 中声明,属无效输出(lua:40) 建议 💬 经检视裁定接受(误报) 复核确认误报:该列表实为 IgnoreEtags(ETag 易变排除项)而非属性暴露控制;字段暴露由 RspBody 的 VendorDefinedMetrics Statement 决定(10 字段全部输出),两项按设计"易变=否"不入 IgnoreEtags 恰好正确
4 平台AI 第1轮 SNR/LTP 数组脚本未处理 65535 无效值,与 format_scalar 不一致(Transceivers.json:346) 建议 💬 经检视裁定接受(未改码) 复核部分成立:mdb 定义为 Double[] 且无 65535 哨兵约定,PR 方案自洽;最终 Formula 仍仅做 %.4f,无 65535 元素过滤
5 平台AI 第2轮 CHANGELOG 版本号 1.110.122 重复出现(08-21 BomId 条目已存在)(CHANGELOG.md:4) 警告 ⏳ 未响应(标记解决未改码) 合入 HEAD 仍并存 ## [1.110.122] 2026-08-21 与 ## [1.110.122] 2026-08-22,mds/service.json 亦为 1.110.122,未见裁定记录或修复
6 平台AI 第2轮 switch_null 未将 65535 视为无效值,同脚本内处理不一致(lua:30) 建议 ⏳ 未响应(标记解决未改码) 最终 switch_null 仍仅判 nil;UptimeSeconds/PowerOnCount 等 U32/U16 字段若返回 65535 会被原样透出
7 平台AI 第2轮 ProcessingFlow[3]/[5]/[9] 父对象无 nil 防护,Destination 为 nil 时整个脚本抛错(lua:32) 警告 ⏳ 未响应(标记解决未改码) 最终脚本仍直接索引 ProcessingFlow[9].Destination.*,未加父对象判空
8 平台AI 第2轮 GetTxLosState 非 NPU 分支在 TxLossState 为 nil 时返回 nil 而非 cjson.null(Transceivers.json:311) 建议 ⏳ 未响应(标记解决未改码) 最终 Formula 该分支仍直接 return,未按建议先判空再返回
指标 结果
AI 意见总数 8
已采纳并修复 0
经检视裁定接受 / 已回复说明 4
未响应(含标记解决未改码) 4

2. 人工检视补充

  • 检视人: Richardli25 (zhaotianli)、DataSculptor (wangjian)、yelvsub (huangleisheng)
  • 意见概要:
    • Richardli25(D14-D25 维度检视,08-21 22:58,结论"一致(建议合入)"):
      • 对平台 AI 第 1 轮 4 条意见逐条复核(1 误报 / 2 既有惯例低风险 / 1 部分成立),为后续"标记解决"提供了裁定依据;
      • minor① 测试用例未提交 → 开发者最终 commit(08-22 15:43)补充 275 行单测 ✅(但 VCSELVoltage 示例仍为浮点 [3.2],与底层 U16[] 毫伏整数语义不符,PR 描述自身亦建议改 [3200],未改);
      • minor② PR 描述与代码不一致(VCSELVoltage 是否做 %.4f)→ 描述未更新、代码保留 format_array(..., 4)(对 U16 无损),未消除;
      • minor③ SNR/LTP 易变标记与设计表不一致 → 评审帖已更新(遗留问题1"易变属性已确认并修改"),最终 IgnoreEtags 的 4 项 SNR/LTP + 8 项易变 VDM 字段与设计表逐项一致 ✅。
    • DataSculptor(diff_comment,08-22 15:52):北向接口新增但 PR 未附社区评审帖链接 → 开发者 3 分钟内回复"评审贴已附在需求描述里"(附截图),已解决。
    • yelvsub(需求提出者):/lgtm /approve(08-22 17:31),触发合入。
  • 解决状态: 人工 diff_comment 均已解决(resolved);3 个 minor 中 2 个已闭环、1 个(描述-代码一致性)未消除。

3. 评审贴覆盖情况

评审贴链接:【已评审】支持光模块相关接口新增属性,redfish光模块资源新增部分DFX参数

评审点 接口类型 是否涵盖
评审点1:mdb bmc.kepler.Systems.OpticalModule 新增 MediaLTP / HostLTP 资源协作 ✅ 消费侧已涵盖(映射 MediaLTP→MediaLTPdB、HostLTP→HostLTPdB;接口定义变更属 mdb_interface 仓)
评审点2:mdb OpticalModule.Voltage 新增 TxVPPVoltage / RxVPPVoltage / VCSELVoltage 资源协作 ✅ 消费侧已涵盖(Destination 新增映射 + format_array 差异化精度/哨兵处理)
评审点3:mdb OpticalModule.Temperature 新增 ORFICTemperatureCelsius 资源协作 ✅ 消费侧已涵盖(映射 + %.2f 处理)
评审点4:redfish Transceiver 资源新增 DFX 参数 Redfish ✅ 已涵盖(4 个 SNR/LTP 数组、TxLosState/TxLolState/RxLolState、VendorDefinedMetrics 10 个子字段全部落地;IgnoreEtags 易变标记与评审表一一对应)

覆盖统计: 4/4(评审点 1-3 的接口定义变更在 mdb_interface 仓实现,本 PR 完成对应消费映射;评审点 4 为本仓直接实现)

备注:AI 预审(ubmc_assistant)曾判评审点2 不通过(MDB-PROPERTY-015 "从HDK获取"与"掉电持久化"矛盾,属 mdb_interface 侧事项),评审结论最终同意全部变更;4 项遗留问题(易变属性、属性名单位、示例完备性、State 命名)均已确认处理。

4. 总结

  • AI 意见"零代码修复、全量标记解决":平台 AI 两轮共 8 条意见在 UI 全部标记 resolved,但合入 HEAD 无一对应代码改动,线程内亦无开发者回复。第 1 轮 4 条经维度检视逐条裁定后接受(含对 IgnoreEtags 机制误报的纠正),处理链条完整;第 2 轮 4 条(CHANGELOG 版本号重复、switch_null 65535、父对象 nil 防护、TxLossState nil 返回)既无修复也无裁定记录——其中 CHANGELOG 同一版本号 1.110.122 两个条目并存为客观遗留,建议后续版本顺手合并或递增。
  • 人工检视补充价值显著:Richardli25 的维度检视纠正了 AI 对 IgnoreEtags 机制的误报,并推动了单测补充(+275 行)与设计帖易变属性更新;DataSculptor 的评审帖合规提醒获得分钟级响应。
  • 开发者响应态度:对人工意见响应积极(单测补充提交、评审帖链接 3 分钟回复、CLA 签署、按检视建议同步设计帖);对 AI 意见采取"静默解决"模式——与 PR #1374 回顾发现的"标记解决≠实际改码"模式一致,建议后续对不采纳的 AI 意见在线程内简述理由,提升可追溯性。
  • 遗留小项(均不影响功能,建议后续版本一并清理):① CHANGELOG 1.110.122 条目重复;② 单测 VCSELVoltage 示例 [3.2] 与 U16[] 毫伏整数语义不符(建议 [3200]);③ PR 描述与实际不符(称"修改 2 个文件",实际合入 5 个文件;VCSELVoltage 精度处理描述与代码不一致)。

此回顾分析由 AI (OpenClaw + GLM-5-turbo) 完成

likedislike
huangjiapeiCollaborators
Aug 24 Comments:

/developing2UAT

likedislike
openUBMC-robotopenUBMC-robotCollaborators
Aug 24 changed custom state from 开发中 to 待验收
yanyajunCollaborators
Sep 8 Comments:

/UAT2done

likedislike
openUBMC-robotopenUBMC-robotCollaborators
Sep 8 changed custom state from 待验收 to 已完成
openUBMC-robotopenUBMC-robotCollaborators
Sep 8 Close issue