Update CollectionStatus on FRU deletion
This commit updates the CollectionStatus of the FRU to its default
value “NotStarted”, when resetDataUnderPIM API is triggered.
deleteFRUVPD method internally calls resetDataUnderPIM API, hence the
default CollectionStatus will be reflected for all the sub FRUs after
completion of the deletion.
Output:
```
root@p10bmc:~# busctl call com.ibm.VPD.Manager /com/ibm/VPD/Manager com.ibm.VPD.Manager deleteFRUVPD o /xyz/openbmc_project/inventory/system/chassis/motherboard/dimm2
root@p10bmc:~# busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/dimm2 com.ibm.VPD.Collection CollectionStatus
s "com.ibm.VPD.Collection.Status.NotStarted"
root@p10bmc:~# busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/dimm2/unit0 com.ibm.VPD.Collection CollectionStatus
s "com.ibm.VPD.Collection.Status.NotStarted"
root@p10bmc:~# busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/dimm2/unit1 com.ibm.VPD.Collection CollectionStatus
s "com.ibm.VPD.Collection.Status.NotStarted"
root@p10bmc:~# busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/dimm2/unit2 com.ibm.VPD.Collection CollectionStatus
s "com.ibm.VPD.Collection.Status.NotStarted"
root@p10bmc:~# busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/dimm2/unit3 com.ibm.VPD.Collection CollectionStatus
s "com.ibm.VPD.Collection.Status.NotStarted"
```
Change-Id: I8d329754553de78fb8463493322c49a63b16120e
Signed-off-by: Anupama B R <anupama.b.r1@ibm.com>
diff --git a/vpd-manager/include/utility/vpd_specific_utility.hpp b/vpd-manager/include/utility/vpd_specific_utility.hpp
index 8493730..ced7ef1 100644
--- a/vpd-manager/include/utility/vpd_specific_utility.hpp
+++ b/vpd-manager/include/utility/vpd_specific_utility.hpp
@@ -583,7 +583,7 @@
const std::vector<std::string>& l_vpdRelatedInterfaces{
constants::operationalStatusInf, constants::inventoryItemInf,
- constants::assetInf};
+ constants::assetInf, constants::vpdCollectionInterface};
for (const auto& [l_service, l_interfaceList] : l_getObjectMap)
{
@@ -621,8 +621,18 @@
else if (std::holds_alternative<std::string>(
l_propertyValue))
{
- l_propertyMap.emplace(l_propertyName,
- std::string{});
+ if (l_propertyName.compare("CollectionStatus") ==
+ constants::STR_CMP_SUCCESS)
+ {
+ l_propertyMap.emplace(
+ l_propertyName,
+ constants::vpdCollectionNotStarted);
+ }
+ else
+ {
+ l_propertyMap.emplace(l_propertyName,
+ std::string{});
+ }
}
else if (std::holds_alternative<bool>(l_propertyValue))
{