Add RAS data support for 'callout_self' and 'callout_unit'

With this change, 'callout_self' and 'callout_unit' actions will add a
callout with location code into the PEL.

Change-Id: I975f2059a71f7b529a40fae03273cc3c387c4cef
Signed-off-by: Zane Shelley <zshelle@us.ibm.com>
diff --git a/analyzer/ras-data/ras-data-parser.cpp b/analyzer/ras-data/ras-data-parser.cpp
index 6386b6b..78ec9d2 100644
--- a/analyzer/ras-data/ras-data-parser.cpp
+++ b/analyzer/ras-data/ras-data-parser.cpp
@@ -146,9 +146,10 @@
             auto priority = a.at("priority").get<std::string>();
             auto guard    = a.at("guard").get<bool>();
 
-            // TODO
-            trace::inf("callout_self: priority=%s guard=%c", priority.c_str(),
-                       guard ? 'T' : 'F');
+            std::string path{}; // Must be empty to callout the chip.
+
+            o_list->push(std::make_shared<HardwareCalloutResolution>(
+                path, getPriority(priority), guard));
         }
         else if ("callout_unit" == type)
         {
@@ -156,9 +157,10 @@
             auto priority = a.at("priority").get<std::string>();
             auto guard    = a.at("guard").get<bool>();
 
-            // TODO
-            trace::inf("callout_unit: name=%s priority=%s guard=%c",
-                       name.c_str(), priority.c_str(), guard ? 'T' : 'F');
+            auto path = i_data.at("units").at(name).get<std::string>();
+
+            o_list->push(std::make_shared<HardwareCalloutResolution>(
+                path, getPriority(priority), guard));
         }
         else if ("callout_connected" == type)
         {