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;