Set error code for getParsedJson API
This commit updates getParsedJson API to set error codes in case of
error. This helps caller of the API to take action based on the error
code returned from the API.
Change-Id: I0b88806bbc2201ae162e1714613fa6a9bfe3df9d
Signed-off-by: Rekha Aparna <vrekhaaparna@ibm.com>
diff --git a/vpd-manager/src/single_fab.cpp b/vpd-manager/src/single_fab.cpp
index f2c73f8..0b3875e 100644
--- a/vpd-manager/src/single_fab.cpp
+++ b/vpd-manager/src/single_fab.cpp
@@ -23,14 +23,24 @@
{
try
{
+ uint16_t l_errCode = 0;
auto l_parsedVsbpJsonObj =
- jsonUtility::getParsedJson(pimPersistVsbpPath);
+ jsonUtility::getParsedJson(pimPersistVsbpPath, l_errCode);
+
+ if (l_errCode)
+ {
+ throw JsonException(
+ "Failed to parse JSON file [ " +
+ std::string(pimPersistVsbpPath) + " ], error : " +
+ vpdSpecificUtility::getErrCodeMsg(l_errCode),
+ pimPersistVsbpPath);
+ }
+
if (!l_parsedVsbpJsonObj.contains("value0") ||
!l_parsedVsbpJsonObj["value0"].contains(constants::kwdIM) ||
!l_parsedVsbpJsonObj["value0"][constants::kwdIM].is_array())
{
- throw std::runtime_error(
- "Json is empty or mandatory tag(s) missing from JSON");
+ throw std::runtime_error("Mandatory tag(s) missing from JSON");
}
const types::BinaryVector l_imValue =