【已评审】生效接口新增错误引擎描述生效失败原因

关联issue

固件管理支持统一生效接口-支持返回详细错误原因信息

背景

固件管理支持统一生效接口,当前支持redfish和webrest两种对外接口,当遇到固件生效失败的各种错误时,用户需要知道生效失败的具体原因,固件管理需要新增错误引擎将详细生效失败原因传递给北向接口。

评审点

新增错误引擎 FirmwareActiveError

示例:

        "FirmwareActivateFailed": {
            "Description": "An error occurred during the firmware activation process.",
            "Message": "An error occurred during the firmware activation process. Details: %1",
            "Severity": "Warning",
            "NumberOfArgs": 1,
            "ParamTypes": [
                "string"
            ],
            "Resolution": "Locate the cause based on error information, rectify the fault, and submit the request again.",
            "HttpStatusCode": 400,
            "IpmiCompletionCode": "0xFF",
            "SnmpStatusCode": 5,
            "TraceDepth": 0
        }

评审结论

  1. 当前错误引擎中激活使用的是 Active 还是 Activation,要明确清楚,不要混用
  2. HTTPStatusCode 不是 400,4XX的错误专门指的是请求错误,当前应该是服务端处理失败
  3. SNMPStatusCode 5 的含义不是这个,确认清楚之后再使用

— 答复

  1. 结果采用 Activate / Activation
  2. 和升级其他错误引擎保持一致,HTTPStatusCode 使用 400, SNMPStatusCode 使用 5

修正为:
Rectify the fault acccording to XXX, and submit the request again

问题:错误引擎需要区分当前是生效条件不满足导致的失败,而不是BMC内部处理异常导致的失败
问题2:messageId 为 NotPermitted