Support FRU Type in vpd tool
Test:
./vpd-tool --dumpObject --object /system/chassis/motherboard/cpu0
[
{
"/system/chassis/motherboard/cpu0": {
"CC": "CB41",
"DR": "A WAY PROC CUOD",
"FN": "1234567",
"LocationCode": "U78DA.ND1.1234567-P0-C15",
"PN": "1345678",
"SN": "YLAB41010000",
"TYPE": "fruAndModule", <=================================
"type": "xyz.openbmc_project.Inventory.Item.Cpu"
}
}
]
./vpd-tool --dumpObject --object /system/chassis/motherboard/cpu1
[
{
"/system/chassis/motherboard/cpu1": {
"CC": "BB41",
"DR": "A WAY PROC CUOD",
"FN": "1234567",
"LocationCode": "U78DA.ND1.1234567-P0-C15",
"PN": "1345678",
"SN": "YLAB41010000",
"TYPE": "moduleOnly", <==================================
"type": "xyz.openbmc_project.Inventory.Item.Cpu"
}
}
]
./vpd-tool --dumpObject --object /system/chassis/motherboard/ebmc_card_bmc
[
{
"/system/chassis/motherboard/ebmc_card_bmc": {
"CC": "6B58",
"DR": "EBMC ",
"FN": "F191014",
"LocationCode": "U78DA.ND1.1234567-P0-C5",
"PN": "PN12345",
"SN": "YL6B58010000",
"TYPE": "FRU", <=================================
"type": "xyz.openbmc_project.Inventory.Item.Bmc"
}
}
]
Change-Id: Ie36631913481514e9f06bd50415a3d6b057f8510
Signed-off-by: Alpana Kumari <alpankum@in.ibm.com>
diff --git a/vpd_tool_impl.cpp b/vpd_tool_impl.cpp
index fa1f57e..c24eb93 100644
--- a/vpd_tool_impl.cpp
+++ b/vpd_tool_impl.cpp
@@ -127,6 +127,8 @@
}
addFruTypeAndLocation(exIntf, objectName, kwVal);
+ kwVal.emplace("TYPE", fruType);
+
output.emplace(invPath, kwVal);
return output;
}
@@ -172,6 +174,13 @@
bool exIntfCheck = false;
json output = json::object({});
+ fruType = "FRU";
+
+ // check type and add FRU Type in object
+ if (itemEEPROM.find("type") != itemEEPROM.end())
+ {
+ fruType = itemEEPROM.at("type");
+ }
if (itemEEPROM.value("inherit", true))
{
@@ -194,6 +203,7 @@
}
output.emplace(itemEEPROM.at("inventoryPath"), js);
}
+
return output;
}
diff --git a/vpd_tool_impl.hpp b/vpd_tool_impl.hpp
index 852638c..3062c3b 100644
--- a/vpd_tool_impl.hpp
+++ b/vpd_tool_impl.hpp
@@ -14,6 +14,9 @@
const std::string keyword;
const std::string value;
+ // Store Type of FRU
+ std::string fruType;
+
/**
* @brief Debugger
* Displays the output in JSON.