Prime system blueprint from wait-vpd-parsers

This commit updates wait-vpd-parsers to prime system blueprint.
As part of PST VPD collection flow, priming inventory objects needs to
be triggered as a part of systemd target, instead of being triggered by
vpd-manager.
This commit only implements only stub APIs under PrimeInventory class.

Change-Id: I144b13192e9ce39461c331c51ed7d4d9e952809c
Signed-off-by: Anupama B R <anupama.b.r1@ibm.com>
diff --git a/wait-vpd-parser/src/wait_vpd_parser.cpp b/wait-vpd-parser/src/wait_vpd_parser.cpp
index 44f1da3..352f5cd 100644
--- a/wait-vpd-parser/src/wait_vpd_parser.cpp
+++ b/wait-vpd-parser/src/wait_vpd_parser.cpp
@@ -2,6 +2,7 @@
 
 #include "constants.hpp"
 #include "logger.hpp"
+#include "prime_inventory.hpp"
 #include "utility/dbus_utility.hpp"
 
 #include <CLI/CLI.hpp>
@@ -104,20 +105,34 @@
 
 int main(int argc, char** argv)
 {
-    CLI::App l_app{"Wait VPD parser app"};
+    try
+    {
+        CLI::App l_app{"Wait VPD parser app"};
 
-    // default retry limit and sleep duration values
-    unsigned l_retryLimit{100};
-    unsigned l_sleepDurationInSeconds{2};
+        // default retry limit and sleep duration values
+        unsigned l_retryLimit{100};
+        unsigned l_sleepDurationInSeconds{2};
 
-    l_app.add_option("--retryLimit, -r", l_retryLimit, "Retry limit");
-    l_app.add_option("--sleepDurationInSeconds, -s", l_sleepDurationInSeconds,
-                     "Sleep duration in seconds between each retry");
+        l_app.add_option("--retryLimit, -r", l_retryLimit, "Retry limit");
+        l_app.add_option("--sleepDurationInSeconds, -s",
+                         l_sleepDurationInSeconds,
+                         "Sleep duration in seconds between each retry");
 
-    CLI11_PARSE(l_app, argc, argv);
+        CLI11_PARSE(l_app, argc, argv);
 
-    return collectAllFruVpd()
-               ? checkVpdCollectionStatus(l_retryLimit,
-                                          l_sleepDurationInSeconds)
-               : vpd::constants::VALUE_1;
+        PrimeInventory l_primeObj;
+        l_primeObj.primeSystemBlueprint();
+
+        return collectAllFruVpd()
+                   ? checkVpdCollectionStatus(l_retryLimit,
+                                              l_sleepDurationInSeconds)
+                   : vpd::constants::VALUE_1;
+    }
+    catch (const std::exception& l_ex)
+    {
+        const auto l_logger = vpd::Logger::getLoggerInstance();
+        l_logger->logMessage("Exiting from wait-vpd-parser, reason: " +
+                             std::string(l_ex.what()));
+        return vpd::constants::VALUE_1;
+    }
 }