Update time stamp on VPD collection status update

StartTime and CompletedTime indicates time duration for VPD collection,
which is useful information to analyze how much time is taken to
collect VPD for any FRU.
This commits handles updating time stamp during VPD collection.

Output:
```
Time stamps reset to zero, when FRU is deleted :

Before Delete method:
root@p11bmc:/tmp/images# busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/lcd_op_panel_hill xyz.openbmc_project.Common.Progress Status; busctl introspect xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/lcd_op_panel_hill  xyz.openbmc_project.Common.Progress
s "xyz.openbmc_project.Common.Progress.OperationStatus.Completed"
NAME                                TYPE      SIGNATURE RESULT/VALUE                             FLAGS
.CompletedTime                      property  t         1756486364                               emits-change writable
.StartTime                          property  t         1756486363                               emits-change writable
.Status                             property  s         "xyz.openbmc_project.Common.Progress.Op… emits-change writable

Call Delete FRU VPD method:
root@p11bmc:/tmp/images# busctl  call com.ibm.VPD.Manager /com/ibm/VPD/Manager com.ibm.VPD.Manager deleteFRUVPD o "/xyz/openbmc_project/inventory/system/chassis/motherboard/lcd_op_panel_hill"

After Delete FRU VPD:
root@p11bmc:/tmp/images# busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/lcd_op_panel_hill xyz.openbmc_project.Common.Progress Status; busctl introspect xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/lcd_op_panel_hill  xyz.openbmc_project.Common.Progress
s "xyz.openbmc_project.Common.Progress.OperationStatus.NotStarted"
NAME                                TYPE      SIGNATURE RESULT/VALUE                             FLAGS
.CompletedTime                      property  t         0                                        emits-change writable
.StartTime                          property  t         0                                        emits-change writable
.Status                             property  s         "xyz.openbmc_project.Common.Progress.Op… emits-change writable

Time stamp updated to all Sub FRUs, ex for failed VPD collection scenario:

Before:
busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot0/pcie_card0/cxp_bot xyz.openbmc_project.Common.Progress Status; busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot0/pcie_card0 xyz.openbmc_project.Common.Progress Status; busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot0/pcie_card0/cxp_top xyz.openbmc_project.Common.Progress Status
s "xyz.openbmc_project.Common.Progress.OperationStatus.NotStarted"
s "xyz.openbmc_project.Common.Progress.OperationStatus.NotStarted"
s "xyz.openbmc_project.Common.Progress.OperationStatus.NotStarted"

root@p11bmc:/tmp/images# busctl  introspect xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot0/pcie_card0 xyz.openbmc_project.Common.Progress;  busctl  introspect xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot0/pcie_card0/cxp_top xyz.openbmc_project.Common.Progress; busctl  introspect xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot0/pcie_card0/cxp_bot xyz.openbmc_project.Common.Progress
NAME                                TYPE      SIGNATURE RESULT/VALUE                             FLAGS
.CompletedTime                      property  t         0                                        emits-change writable
.StartTime                          property  t         0                                        emits-change writable
.Status                             property  s         "xyz.openbmc_project.Common.Progress.Op… emits-change writable
NAME                                TYPE      SIGNATURE RESULT/VALUE                             FLAGS
.CompletedTime                      property  t         0                                        emits-change writable
.StartTime                          property  t         0                                        emits-change writable
.Status                             property  s         "xyz.openbmc_project.Common.Progress.Op… emits-change writable
NAME                                TYPE      SIGNATURE RESULT/VALUE                             FLAGS
.CompletedTime                      property  t         0                                        emits-change writable
.StartTime                          property  t         0                                        emits-change writable
.Status                             property  s         "xyz.openbmc_project.Common.Progress.Op… emits-change writable

Call Collect FRU VPD method:
root@p11bmc:/tmp/images# busctl  call com.ibm.VPD.Manager /com/ibm/VPD/Manager com.ibm.VPD.Manager CollectFRUVPD o "/xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot0/pcie_card0"

After Collect FRU VPD Failed:
root@p11bmc:/tmp/images# busctl  introspect xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot0/pcie_card0 xyz.openbmc_project.Common.Progress;  busctl  introspect xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot0/pcie_card0/cxp_top xyz.openbmc_project.Common.Progress; busctl  introspect xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot0/pcie_card0/cxp_bot xyz.openbmc_project.Common.Progress
NAME                                TYPE      SIGNATURE RESULT/VALUE                             FLAGS
.CompletedTime                      property  t         1756486110                               emits-change writable
.StartTime                          property  t         1756486110                               emits-change writable
.Status                             property  s         "xyz.openbmc_project.Common.Progress.Op… emits-change writable
NAME                                TYPE      SIGNATURE RESULT/VALUE                             FLAGS
.CompletedTime                      property  t         1756486110                               emits-change writable
.StartTime                          property  t         1756486110                               emits-change writable
.Status                             property  s         "xyz.openbmc_project.Common.Progress.Op… emits-change writable
NAME                                TYPE      SIGNATURE RESULT/VALUE                             FLAGS
.CompletedTime                      property  t         1756486110                               emits-change writable
.StartTime                          property  t         1756486110                               emits-change writable
.Status                             property  s         "xyz.openbmc_project.Common.Progress.Op… emits-change writable
root@p11bmc:/tmp/images# busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot0/pcie_card0/cxp_bot xyz.openbmc_project.Common.Progress Status; busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot0/pcie_card0 xyz.openbmc_project.Common.Progress Status; busctl get-property xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/pcieslot0/pcie_card0/cxp_top xyz.openbmc_project.Common.Progress Status
s "xyz.openbmc_project.Common.Progress.OperationStatus.Failed"
s "xyz.openbmc_project.Common.Progress.OperationStatus.Failed"
s "xyz.openbmc_project.Common.Progress.OperationStatus.Failed"

```

Output:
Change-Id: I835c1cc9082b8be411c4460aac3845fba249a120
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 d72b7f3..a3f8921 100644
--- a/vpd-manager/include/utility/vpd_specific_utility.hpp
+++ b/vpd-manager/include/utility/vpd_specific_utility.hpp
@@ -628,6 +628,8 @@
                                 l_propertyMap.emplace(
                                     l_propertyName,
                                     constants::vpdCollectionNotStarted);
+                                l_propertyMap.emplace("StartTime", 0);
+                                l_propertyMap.emplace("CompletedTime", 0);
                             }
                             else
                             {
@@ -1073,49 +1075,6 @@
 }
 
 /**
- * @brief API to save current time stamp in PIM.
- *
- * This API will capture current time stamp and save it in progress interface
- * for the given inventory path.
- *
- * @param[in] i_inventoryPath - Inventory path of FRU.
- * @param[in] i_property - Property to save the time.
- */
-inline void saveTimeStampInPim(const std::string& i_inventoryPath,
-                               const std::string& i_property) noexcept
-{
-    if (i_inventoryPath.empty() || i_property.empty())
-    {
-        logging::logMessage("Invalid input parameter. Can't save time in PIM.");
-        return;
-    }
-
-    try
-    {
-        types::ObjectMap l_ObjMap = {std::make_pair(
-            i_inventoryPath,
-            types::InterfaceMap{std::make_pair(
-                constants::vpdCollectionInterface,
-                types::PropertyMap{std::make_pair(
-                    i_property,
-                    types::DbusVariantType{
-                        commonUtility::getCurrentTimeSinceEpoch()})})})};
-
-        if (!dbusUtility::callPIM(move(l_ObjMap)))
-        {
-            logging::logMessage(
-                "Call to PIM failed while saving time for path " +
-                i_inventoryPath);
-        }
-    }
-    catch (const std::exception& l_ex)
-    {
-        logging::logMessage("Failed to save time stamp under PIM for reason: " +
-                            std::string(l_ex.what()));
-    }
-}
-
-/**
  * @brief API to get error code message.
  *
  * @param[in] i_errCode - error code.
diff --git a/vpd-manager/include/worker.hpp b/vpd-manager/include/worker.hpp
index a40ea24..bb778a1 100644
--- a/vpd-manager/include/worker.hpp
+++ b/vpd-manager/include/worker.hpp
@@ -189,6 +189,18 @@
      */
     void setDeviceTreeAndJson();
 
+    /**
+     * @brief API to set CollectionStatus property.
+     *
+     * This API updates the CollectionStatus property of the given FRU with the
+     * given value.
+     *
+     * @param[in] i_vpdPath - EEPROM or inventory path.
+     * @param[in] i_value - Value to be set.
+     */
+    void setCollectionStatusProperty(const std::string& i_fruPath,
+                                     const std::string& i_value) const noexcept;
+
   private:
     /**
      * @brief An API to parse and publish a FRU VPD over D-Bus.
@@ -533,18 +545,6 @@
                i_fru.value("handlePresence", true);
     }
 
-    /**
-     * @brief API to set CollectionStatus property.
-     *
-     * This API updates the CollectionStatus property of the given FRU with the
-     * given value.
-     *
-     * @param[in] i_vpdPath - EEPROM or inventory path.
-     * @param[in] i_value - Value to be set.
-     */
-    void setCollectionStatusProperty(const std::string& i_fruPath,
-                                     const std::string& i_value) const noexcept;
-
     // Parsed JSON file.
     nlohmann::json m_parsedJson{};