【已评审】新增BMC协处理器升级失败北向接口展示

ISSUE链接

暂无

背景

前置评审

前置评审遗留问题

需要进一步明确客户对于该报错之后的进一步处理措施,以及评估清楚影响之后再行评审。

遗留问题答复

  • BMC协处理器升级失败有两种报错:
    • 固件问题导致写flash失败:当前情况如果是固件问题,则在之前的固件校验中会处理,按照已有的固件升级失败进行处理
    • 发送核间通信进行生效失败:如果核间通信错误,一般属于硬件异常或者当前不支持,需做复位BMC或AC处理;如果复位和AC均无法处理,则需要更换BMC插卡
  • 因此BMC协处理器升级失败可以采取的处理措施如下:
    • 更换BMC固件,查看是否可以升级成功
    • 复位BMC,复位启动之后查看固件版本,确认协处理器固件版本是否升级成功
    • AC掉电,启动之后查看固件版本,确认协处理器固件版本是否升级成功

评审背景

  • BMC协处理器是与BMC包一同升级,当前BMC协处理器升级失败不影响BMC固件升级
  • BMC协处理器升级失败需要被客户感知,在BMC协处理器升级失败后,需要终止BMC固件升级流程
  • 升级失败需要给出具体原因:即BMC协处理器升级失败

当前现状

  • BMC协处理器升级失败不影响BMC固件升级。如果BMC固件中的安全协处理器升级失败,则记录日志,BMC继续升级
  • 现在BMC的升级就是在升级失败之后通过具体的错误引擎(OEM错误消息)来区分升级失败的具体原因,然后根据这个错误消息展示到北向接口上,给接口调用者进行提示。

差距

  • BMC固件中的安全协处理器升级失败,BMC固件升级流程继续,未被终止,客户无法感知
  • 前端没有BMC协处理器升级失败的展示

解决方案

  • 修改处理流程:BMC协处理器升级失败后终止BMC升级流程,返回特定内部错误码(40),上报BMC协处理器升级失败
    • 错误引擎可采用原有错误引擎FirmwareUpgradeError,通过Message传参coprocessor firmware upgrade failed展示出BMC协处理器升级失败
  • 北向接口需要适配 “BMC协处理器升级失败” 信息提示
    • WEB:页面提示BMC协处理器升级失败,需新增升级错误码表示BMC协处理器升级失败
    • CLI:通过错误引擎Message展示,无需特殊适配
    • SNMP:SNMP查询升级状态时,提示一个数字表示升级失败原因,需新增snmp升级状态错误值
    • Redfish:通过错误引擎展示,无需特殊适配
    • IPMI:IPMI查询升级任务时,提示一个数字表示升级失败原因,需新增ipmi对外展示错误码

评审点

评审点1:WEB界面升级失败提示BMC协处理器升级失败

  • WEB界面新增升级失败弹窗提示:BMC协处理器升级失败
  • UIRest接口升级失败新增返回的升级的失败错误码: 40=表示BMC协处理器升级失败

评审点2:SNMP升级接口新增升级状态错误值

新增SNMP升级接口状态错误值: -16:coprocessor firmware upgrade failed
新增之后SNMP升级接口状态错误值如下:

firmwareUpgradeState OBJECT-TYPE
            SYNTAX INTEGER
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Information about firmware upgrading state.
                the value defined as:
                  -1: upgrade not start or completed,
                  -2: file uploading,
                  -3: checking preUpgrade,
                  -4: invalid URI or file not exist,
                  -5: file upload failed,
                  -6: file too large or memory not enough,
                  -7: invalid upgrade package,
                  -8: not support upgrade in current state,
                  -9: upgrade failed,
                  -10: The upgrade file does not match the device to be upgraded,
                  -11: The BIOS upgrade fails because the ME status is not correct,
                  -12: Unknown error,
                  -13: The version of the update pack does not match the current web interface version,
                  -14: Powering on... Failed to upgrade the firmware,
                  -15: The upgrade package version is too early,
                  -16:coprocessor firmware upgrade failed
                  [0,100]:represents upgrade progress in percentage while firmware being upgrading."
            ::= { firmwareUpgrade 2 } 

评审点3:IPMI查询升级任务接口新增返回码

IPMI查询升级任务进度时,根据后端的错误码会计算出返回的进度的值。当前由于新增的升级失败的错误码是 40,对应计算之后的IPMI查询升级任务接口的返回码是 A8h
计算公式如下: IPMI响应错误码 = (升级失败错误码 | 128) & 255

评审结论

  • 评审点1:通过,同意新增WEB升级接口的弹窗提示,提示内容为:BMC协处理器升级失败
  • 评审点2:通过,同意新增SNMP升级接口升级状态值,取值和含义说明为:-16:coprocessor firmware upgrade failed
  • 评审点3:通过,同意新增IPMI查询升级任务接口返回码,返回码和含义说明为:A8h=coprocessor firmware upgrade failed

【预审】
这个是 HTTP 错误码?还是UIRest 返回的升级的失败原因 Code?

这地方需要补充计算方式,以及IPMI查询升级的响应中增加A8h