Update error type for runtime error
In case there is a generic runtime exception thrown by VPD-Manager,
"FirmwareError" error type needs to be used to call out BMC firmware.
This is required as current implementation does not have any call out
in case of runtime exceptions and phosphor-logging downgrades the
severity in case of no call out.
Change-Id: I3ccd2f2e9cd947d4334f6676d955a320828320c8
Signed-off-by: Sunny Srivastava <sunnsr25@in.ibm.com>
diff --git a/vpd-manager/include/types.hpp b/vpd-manager/include/types.hpp
index 51ec239..b4dc22e 100644
--- a/vpd-manager/include/types.hpp
+++ b/vpd-manager/include/types.hpp
@@ -186,7 +186,8 @@
InternalFailure, /* Should be used for any generic firmware failure */
FruMissing, /* Should be used in case of presence failure */
SystemTypeMismatch,
- UnknownSystemSettings
+ UnknownSystemSettings,
+ FirmwareError
};
using InventoryCalloutData = std::tuple<std::string, CalloutPriority>;
diff --git a/vpd-manager/src/event_logger.cpp b/vpd-manager/src/event_logger.cpp
index 5eecc62..c59c8ba 100644
--- a/vpd-manager/src/event_logger.cpp
+++ b/vpd-manager/src/event_logger.cpp
@@ -47,7 +47,8 @@
{types::ErrorType::SystemTypeMismatch,
"com.ibm.VPD.Error.SystemTypeMismatch"},
{types::ErrorType::UnknownSystemSettings,
- "com.ibm.VPD.Error.UnknownSystemSettings"}};
+ "com.ibm.VPD.Error.UnknownSystemSettings"},
+ {types::ErrorType::FirmwareError, "com.ibm.VPD.Error.FirmwareError"}};
const std::unordered_map<types::CalloutPriority, std::string>
EventLogger::m_priorityMap = {
@@ -304,7 +305,7 @@
const std::exception& i_exception)
{
types::ExceptionDataMap l_errorInfo{
- {"ErrorType", types::ErrorType::InternalFailure},
+ {"ErrorType", types::ErrorType::FirmwareError},
{"ErrorMsg", i_exception.what()}};
try
@@ -382,14 +383,14 @@
auto l_itrToErrType = l_exceptionDataMap.find("ErrorType");
if (l_itrToErrType == l_exceptionDataMap.end())
{
- return types::ErrorType::InternalFailure;
+ return types::ErrorType::FirmwareError;
}
auto l_ptrToErrType =
std::get_if<types::ErrorType>(&l_itrToErrType->second);
if (!l_ptrToErrType)
{
- return types::ErrorType::InternalFailure;
+ return types::ErrorType::FirmwareError;
}
return *l_ptrToErrType;