【已评审】北向接口升级适配“BMC协处理器升级失败”信息展示

ISSUE链接

暂无

评审背景

  • BMC协处理器是与BMC包一同升级,当前BMC协处理器升级失败不影响BMC固件升级
  • DFX场景:对于有 BMC协处理器固件的BMC固件升级场景中,在升级流程上要先保证升级BMC协处理器固件,如果升级失败则直接退出当前升级流程

当前现状以及差距

现状

BMC协处理器升级失败不影响BMC固件升级。如果BMC固件中的安全协处理器升级失败,则记录日志,BMC继续升级

差距

  • BMC固件中的安全协处理器升级失败,则相应的BMC固件升级流程需要报失败,无法满足DFX场景
  • 升级失败需要给出具体原因:即BMC协处理器升级失败

解决方案

  • 修改处理流程:如果当前BMC固件中的安全协处理器升级失败,则相应的BMC固件升级流程失败
  • 北向接口需要适配 “BMC协处理器升级失败” 信息提示

决策点1 web界面适配BMC协处理器升级失败

web界面新增失败原因提示“BMC协处理器升级失败

决策点2 新增snmp升级状态错误值

新增snmp升级状态错误值 -16:coprocessor firmware upgrade failed
当前snmp升级状态错误值如下,没有BMC协处理器失败的错误值,需要新增

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,
                  [0,100]:represents upgrade progress in percentage while firmware being upgrading."
            ::= { firmwareUpgrade 2 } 

决策点3 IPMI查询升级任务时提示BMC协处理器升级失败

CoprocessorFirmwareUpgradeFailed = 40
ipmi对外展示:0xa8
表示BMC协处理器升级失败

评审结论

不通过,不同意在北向接口中增加关于协处理器升级失败的描述,需要进一步明确客户对于该报错之后的进一步处理措施,以及评估清楚影响之后再行评审。

升级失败的错误,在没有特别详细说明的情况下,为什么不能用通用的操作失败错误或通过HTTP响应码体现,非得新增一个OEM的消息?

现在BMC的升级就是在升级失败之后通过具体的错误引擎(OEM错误消息)来区分升级失败的具体原因,然后根据这个错误消息展示到北向接口上,给接口调用者进行提示。具体北向接口展示:

  • WEB:页面提示升级失败以及失败的原因
  • CLI:命令行回显提示升级失败以及失败的原因
  • SNMP:SNMP查询升级状态时提示升级失败以及失败的原因(一个数字)
  • Redfish:Redfish查询升级任务时提示升级失败以及失败的原因(Redfish Error Message)
  • IPMI:IPMI查询升级任务时提示升级是啊比以及失败的原因(一个数字)

@linyao 需要确认当前对于上述升级的接口,是否可以通过 一个通用的升级失败的错误引擎 + 具体的失败错误原因(动态参数) 的方式进行处理;然后北向接口中是通过增加错误码进行映射到具体的错误信息上

可以通过升级失败通用错误码FirmwareUpgradeError返回
Message:“An error occurred during the firmware upgrade process. Details: %1”,可以使用动态参数说明