已合并
【9695118001ec4a9e96aa727698a153c9】feat: 支持CPU主板备件更换标志属性变化实时刷新 #283
【9695118001ec4a9e96aa727698a153c9】feat: 支持CPU主板备件更换标志属性变化实时刷新 #283
已合并
liucong创建于 9月18日
liucong成员
9月18日

当前PR是否有AI参与:

  • [] 是
    1. AI Agent 平台: opencode
    2. AI 模型: deepseek-flash
    3. Prompt上下文: 为 DPU 备件更换配置恢复功能补充/修复单元测试,并将增量代码覆盖率提升至 80% 以上

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

bios 对象的备件更换标志(replace_flag)用于判断 CPU 主板是否发生备件更换,进而在更换后触发 BIOS 配置数据恢复。此前 replace_flag 只在 get_replace_flag() 初始化时通过 GetComponentComponentObject 读取一次 CPU 主板组件(bmc.kepler.Systems.Component)的 ReplaceFlag 属性,运行期该属性发生变化时无法感知,导致备件更换标志状态滞后。

变更类型

修改方案:

  • mds/service.json:为 /bmc/kepler/Systems/${SystemId}/Components/${Id} 的 bmc.kepler.Systems.Component 接口增加 ReplaceFlag 属性订阅;版本号更新至 1.110.29。
  • gen/bios/client.lua:生成 OnComponentPropertiesChanged 方法,用于订阅指定 CPU 主板组件的 ReplaceFlag 属性变化。
  • src/lualib/pojo/bios_object_mutihost.lua:get_replace_flag() 中注册 ReplaceFlag 属性监听回调,属性变化时实时刷新 self.replace_flag 并记录日志;保留原有初始化读取逻辑,订阅失败不影响原逻辑。
  • test/unit/test_backup_config.lua:补充属性变化监听回调的单元测试,覆盖订阅路径、初值读取与回调后 replace_flag 更新。
  • CHANGELOG:新增 1.110.29 变更记录。

验证方案:

  • 执行 bingo test -ut -cov:953 个用例全部通过,0 失败。
  • 增量代码覆盖率(temp/coverage/dt_result.json):100%(lua 增量行全覆盖)。
  • 流程覆盖:首次插入建基线;ReplaceFlag 0→1 触发恢复;升级中禁止恢复;bluefield 卡跳过恢复。

测试建议:

  • 重点验证:首次插入(ReplaceFlag=0)成功创建初始备份;ReplaceFlag 变为 1 时按差异项恢复配置;配置一致时不触发恢复。
  • 边界验证:mdb.get_object 失败、非目标组件路径、属性中无 ReplaceFlag 时的处理。
  • 升级并发:DPU_UPGRADING=1 时 restore_from_backup 返回 false 且不落库。

自验证报告:

该PR关联的issue

(格式为 fixes #<issue号>, 或者resolves #<issue号>):

希望检视人员了解:

  • get_replace_flag 与属性回调中都会调用一次 check_and_restore,其中首次插入会创建基线,这是有意为之。
  • restore_from_backup 在升级中直接返回 false,调用方需按返回值处理。
  • 卡片发生备件更换由 BMC 统一维护的 Component.ReplaceFlag 属性驱动,不再依赖 SN。

影响范围

仅涉及 bios 组件备件更换标志的刷新时机,由"仅初始化读取"变为"初始化读取 + 属性变化实时刷新",不改变对外接口与原有行为。

验证

  • 新增/维护单元测试:test/unit/test_backup_config.lua。
  • mds/service.json JSON 格式校验通过。
likedislike
Pull Request已成功合入, 合并人@openUBMC-robot
(感谢 liucong 的贡献)
Lliucong成员
9月18日 创建了 pull request,commit 860676c3
Lliucong成员
9月18日 关联了issue:[需求]: 支持CPU主板备件更换标志(ReplaceFlag)变化实时刷新
openUBMC-robotopenUBMC-robot成员
9月18日 将nathanael,xiaoxinglxs,changxingOpenUBMC,yelvsub设为审查人
openUBMC-robotopenUBMC-robot成员
9月18日 添加了label:sig/sig-hardware
openUBMC-robot
openUBMC-robot成员
9月18日 评论:

欢迎来到 openUBMC 社区

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

机器人使用手册

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

联系指引

有疑问可以联系 SIG: sig-hardware ,
维护者是: @changxingOpenUBMC, @nathanael, @xiaoxinglxs, @yelvsub ,
优秀贡献者是: @huangjiapei, @weiziang .

likedislike
openUBMC-robotopenUBMC-robot成员
9月18日 添加了label:openUBMC-cla/yes
openUBMC-robot
openUBMC-robot成员
9月18日 评论:

CLA 签署成功

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

likedislike
openUBMC-robotopenUBMC-robot成员
9月18日 添加了label:needs-issue
openUBMC-robot
openUBMC-robot成员
9月18日 评论:

关联 Issue 通知

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

likedislike
openUBMC-robot
openUBMC-robot成员
9月18日 评论:

/ai review

likedislike
atomgit-bot
atomgit-bot成员
9月18日 评论:

代码审查

✅ 未发现问题

likedislike
不准确?
openUBMC-robot
openUBMC-robot成员
9月18日 评论:

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

likedislike
openUBMC-robotopenUBMC-robot成员
9月18日 添加了label:ci-running
openUBMC-robotopenUBMC-robot成员
9月18日 删除了label:ci-running
openUBMC-robot
openUBMC-robot成员
9月18日 评论:
任务名称结果
pre-commit检查✅SUCCESS
PR描述检查❌FAILED
静态检查✅SUCCESS
防投毒检查✅SUCCESS
开源合规检查✅SUCCESS
编译构建✅SUCCESS
UT测试✅SUCCESS
IT测试✅SUCCESS
代码覆盖率✅SUCCESS
ipmi修改✅SUCCESS
修改行数检查✅SUCCESS
likedislike
openUBMC-robotopenUBMC-robot成员
9月18日 添加了label:ci-failed
Lliucong成员
9月18日 修改了pull request 的描述
openUBMC-robotopenUBMC-robot成员
9月18日 删除了label:ci-failed
openUBMC-robot
openUBMC-robot成员
9月18日 评论:
任务名称结果
pre-commit检查✅SUCCESS
PR描述检查❌FAILED
静态检查✅SUCCESS
防投毒检查✅SUCCESS
开源合规检查✅SUCCESS
编译构建✅SUCCESS
UT测试✅SUCCESS
IT测试✅SUCCESS
代码覆盖率✅SUCCESS
ipmi修改✅SUCCESS
修改行数检查✅SUCCESS
likedislike
openUBMC-robotopenUBMC-robot成员
9月18日 添加了label:ci-failed
Lliucong成员
9月18日 修改了pull request 的描述
openUBMC-robotopenUBMC-robot成员
9月18日 删除了label:ci-failed
openUBMC-robot
openUBMC-robot成员
9月18日 评论:
任务名称结果
pre-commit检查✅SUCCESS
PR描述检查✅SUCCESS
静态检查✅SUCCESS
防投毒检查✅SUCCESS
开源合规检查✅SUCCESS
编译构建✅SUCCESS
UT测试✅SUCCESS
IT测试✅SUCCESS
代码覆盖率✅SUCCESS
ipmi修改✅SUCCESS
修改行数检查✅SUCCESS
likedislike
openUBMC-robotopenUBMC-robot成员
9月18日 添加了label:ci-successful
Lliucong成员
9月20日 关联了issue:[缺陷]: 支持CPU主板备件更换标志(ReplaceFlag)变化实时刷新
openUBMC-robotopenUBMC-robot成员
9月20日 删除了label:needs-issue
liucong成员
9月20日 评论:

/publish

likedislike
huangjiapei成员
9月20日 评论:

/lgtm
/approve

likedislike
openUBMC-robotopenUBMC-robot成员
9月20日 添加了label:approvedlgtm
openUBMC-robot
openUBMC-robot成员
9月20日 评论:

  • 标签 lgtm, approved 已被添加. 这意味着 huangjiapei 已经检查过代码了. 👋
Tips
  • 如果PR还没有被合入, 请评论 /check-pr 进行检查. 😄
likedislike
openUBMC-robotopenUBMC-robot成员
9月20日 合入了pull request,合并节点 SHA:6a4311cd42639a5801cb01d67072cd80b0f5d990
openUBMC-robotopenUBMC-robot成员
9月20日 修改标题为 “【9695118001ec4a9e96aa727698a153c9】feat: 支持CPU主板备件更换标志属性变化实时刷新”,原标题为“feat: 支持CPU主板备件更换标志属性变化实时刷新”
openubmc-ci-bot成员
9月20日 评论:

This component has been successfully published.

likedislike