已开启
fix: 支持SSU定位灯控制(Redfish/Web) #1505
huangminghao创建于 3 天前
fix: 支持SSU定位灯控制(Redfish/Web) #1505
已开启
huangminghao创建于 3 天前
huangminghao成员
3 天前

interface-sig评审贴:

当前PR是否有AI参与:

[x] 是
__1. Agent平台信息: Trae
__2. 模型信息: Claude
__3. Prompt摘要: 按两份接口评审贴定位灯结论,结合component_drivers仓ssu_card.sr南向契约(Led_SSUUID为CPLD UID灯位直控,仅支持闪烁/关闭)与chassis仓SetState/主从控制实现,调整SSU定位灯Redfish/Web北向映射

PR功能描述 / 为什么需要这个合入:

SSU模组定位灯经Redfish/Web北向控制:南向为bmc.kepler.Systems.Led的SetState(chassis仓实现,含主从控制)。SSU定位灯硬件仅支持闪烁/关闭,不支持常亮。

修改方案:

  1. redfish/mapping_config/Chassis/Chassis.json:/redfish/v1/Chassis/SSU:id新增LocationIndicatorActive GET/PATCH。PATCH true→SetState(5, 255)(闪烁255秒自动灭,应对硬件无常亮档位),false→SetState(0, 0);GET State映射0→false、5/255→true、其他→null
  2. web_backend/mapping_config/System/SSUs.json(新增):/UI/Rest/System/SSUs列表GET与/SSUs/:id详情GET/PATCH,映射规则同Redfish
  3. plugins/orchestrator/chassis.lua(redfish/web两份):get_ssu_path(GetPath bmc.dev.Chassis Id='SSU'+id)、get_ssu_led_path(GetPath bmc.kepler.Systems.Led Name='SSU'+id+'_UID')、get_ssu_list
  4. schemastore chassis.json:uris新增/redfish/v1/Chassis/SSU:id

验证方案:

  • json语法校验通过;SetState入参(State U8、Interval U8)与mdb_interface bmc.kepler.Systems.Led契约逐字段核对一致
  • 闪烁State=5(LED_BLINK)与chassis仓uid_state一致;255秒interval与chassis仓identify倒计时(interval*10秒后自动关灯)衔接

测试建议:

  • PATCH true后GET应返回true且灯闪烁,255秒后自动关闭;PATCH false立即关闭
  • 不存在的SSU id(IsValidSSUId为false)返回404

自验证报告:

  • 本地json语法校验通过;与评审贴7191/7410定位灯字段命名、URI、boolean语义核对一致

该PR关联的issue:

fixes #

希望检视人员了解:

  1. 代码由AI辅助开发者编写,且开发者已人工逐行核对逻辑、校验功能正确性,且与开发者预期一致;
  2. GET保留255→true兜底(历史常亮值),新设置统一为5(闪烁);SSU定位灯主从控制在chassis仓PR(openUBMC/chassis#94)实现,本PR仅北向映射。
likedislike
合并受阻
Hhuangminghao成员
3 天前 关联了issue:PowerConverter接口Schema文件补充字段定义
openUBMC-robotopenUBMC-robot成员
3 天前 将WeliveWelove,DataSculptor,huanghan,aaronlee设为审查人
openUBMC-robotopenUBMC-robot成员
3 天前 添加了label:sig/sig-interface
openUBMC-robot
openUBMC-robot成员
3 天前 评论:

欢迎来到 openUBMC 社区

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

机器人使用手册

有关指令的使用,可以点击 说明文档论坛 查看详情。开发人员可以在每个PR或Issue下方评论特定指令来触发机器人任务。您可以自助配置此仓库的 PR 合并规则,更多详情,请参阅机器人自助配置使用手册

联系指引

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

likedislike
openUBMC-robotopenUBMC-robot成员
3 天前 添加了label:ai-co-authored
openUBMC-robotopenUBMC-robot成员
3 天前 添加了label:openUBMC-cla/yes
openUBMC-robotopenUBMC-robot成员
3 天前 添加了label:ai-includes-code
openUBMC-robot
openUBMC-robot成员
3 天前 评论:

CLA 签署成功

yelmh, 感谢您的代码贡献。 所有的代码贡献者都已完成了 CLA 签署。 👍

likedislike
openUBMC-robotopenUBMC-robot成员
3 天前 添加了label:needs-issue
openUBMC-robot
openUBMC-robot成员
3 天前 评论:

关联 Issue 通知

@yelmh , 提交的PR需要关联issue,指导链接:https://forum.openubmc.cn/t/topic/208
如果已经关联了issue, 但是needs-issue标签仍然存在,你可以在评论 /check-issue 来移除它。

likedislike
openUBMC-robotopenUBMC-robot成员
3 天前 添加了label:ai-compliance-successful
openUBMC-robot
openUBMC-robot成员
3 天前 评论:

The pipeline(pipeline number:2059) is running. >>> Check Pipeline <<<.Please wait a moment...

likedislike
openUBMC-robotopenUBMC-robot成员
3 天前 添加了label:ci-running
openUBMC-robot
openUBMC-robot成员
3 天前 评论:

/ai review

likedislike
atomgit-bot
atomgit-bot成员
3 天前 评论:

代码审查

✅ 未发现问题

likedislike
openUBMC-robotopenUBMC-robot成员
3 天前 删除了label:ci-running
openUBMC-robot
openUBMC-robot成员
3 天前 评论:
任务名称结果
pre-commit检查✅SUCCESS
防投毒检查✅SUCCESS
开源合规检查✅SUCCESS
编译构建✅SUCCESS
ipmi修改✅SUCCESS
修改行数检查✅SUCCESS
AI Review✅SUCCESS
likedislike
openUBMC-robotopenUBMC-robot成员
3 天前 添加了label:ci-successful
Hhuangminghao成员
3 天前 关联了issue:[需求]: 支持ASU模组定位灯控制
wangjian成员3 天前进行代码检视1
interface_config/redfish/mapping_config/Chassis/Chassis.json
@@ -1392,0 +1459,4 @@
1459+ {
1460+ "Type": "Property",
1461+ "Path": "${Statements/GetSSUPath()}",
1462+ "Interface": "bmc.dev.Chassis",
wangjian3 天前评论:

资源协作接口 bmc.dev.Chassis 在 mdb_interface 中未定义(属性/方法须先在社区接口库定义)。

likedislike
wangjian成员3 天前进行代码检视1
interface_config/redfish/mapping_config/Chassis/Chassis.json
@@ -1389,6 +1389,179 @@
13891389 }
13901390 ]
13911391 },
1392+ {
wangjian3 天前评论:

PATCH 的 SetState 调用中,Params 为 ["${Statements/SetLocationIndicatorActiveState()}", 255],即 Interval 固定为 255。但 PR 描述中明确说明'PATCH true→SetState(5, 255)(闪烁255秒自动灭)',且 chassis 仓的 identify 倒计时为 interval10 秒。25510=2550 秒(42.5分钟),与 PR 描述中'闪烁255秒自动灭'不符。PR 描述声称 255 秒,但实际实现为 2550 秒,存在明显的时间语义偏差。

likedislike