functions: Parse json file to set bios attr table

The elements.json file have entries as follow:
    "lids": [
        {
            "element_name": "HBD.RAINIER_2U_XML",
            "short_lid_name": "81e00630",
        },
        {
            "element_name": "HBD.RAINIER_2U_XML.iplTime",
            "short_lid_name": "81e0068d",
        },
        {
            "element_name": "NVRAM.P10",
            "short_lid_name": "81e0066b",
        },
        {
            "element_name": "HDAT.RAINIER_4U_XML",
            "short_lid_name": "81e00675",
        },

Need to parse the element name and lid name depending on the system. The
.P10 files are common to all P10 systems, the .<system> applies only to
the system name provided by Entity Manager. The .iplTIme takes
precedence and should be the lid number that it's picked up, so use []
instead of insert to overwrite an entry if it had already being set.

In the example above, the string for a rainier 2U should look like:
HBD=81e0068d,NVRAM=81e0066b.

Change-Id: I55b317ffef6a7fbe3fd5ee92e7f0188d831b7972
Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>
diff --git a/item_updater_main.cpp b/item_updater_main.cpp
index 21164e9..c6a8175 100644
--- a/item_updater_main.cpp
+++ b/item_updater_main.cpp
@@ -91,9 +91,11 @@
                            "Update the bios attribute table with the host "
                            "firmware data details.")
             ->callback([&bus, &loop, &subcommandContext, extensionMap]() {
+                auto elementsJsonFilePath = "/usr/share/hostfw/elements.json"s;
                 subcommandContext.push_back(
                     functions::process_hostfirmware::updateBiosAttrTable(
-                        bus, extensionMap, loop));
+                        bus, extensionMap, std::move(elementsJsonFilePath),
+                        loop));
             }));
 
     CLI11_PARSE(app, argc, argv);