Add association intf if there is inventory path metadata

Change-Id: I7d717d8ea5ccb3186bc18a4d1fea848eb7b0fdff
Signed-off-by: Tom Joseph <tomjoseph@in.ibm.com>
diff --git a/elog_meta.cpp b/elog_meta.cpp
index 5dfcab0..514296e 100644
--- a/elog_meta.cpp
+++ b/elog_meta.cpp
@@ -43,6 +43,24 @@
     }
 }
 
+template <>
+void build<xyz::openbmc_project::Common::
+           Callout::Inventory::CALLOUT_INVENTORY_PATH>(
+    const std::string& match,
+    const std::vector<std::string>& data,
+    AssociationList& list)
+{
+    std::map<std::string, std::string> metadata;
+    parse(data, metadata);
+    auto iter = metadata.find(match);
+    if (metadata.end() != iter)
+    {
+        list.emplace_back(std::make_tuple(CALLOUT_FWD_ASSOCIATION,
+                                          CALLOUT_REV_ASSOCIATION,
+                                          std::string(iter->second.c_str())));
+    }
+}
+
 #endif
 
 } // namespace associations
diff --git a/elog_meta.hpp b/elog_meta.hpp
index e31afa9..c0de428 100644
--- a/elog_meta.hpp
+++ b/elog_meta.hpp
@@ -113,6 +113,13 @@
     const std::vector<std::string>& data,
     AssociationList& list);
 
+template <>
+void build<xyz::openbmc_project::Common::
+           Callout::Inventory::CALLOUT_INVENTORY_PATH>(
+    const std::string& match,
+    const std::vector<std::string>& data,
+    AssociationList& list);
+
 #endif // PROCESS_META