Policy table lookup enhancements
Adds support for 2 new lookups:
1) Use the called out device path as the search modifier.
2) Use the called out FRU + the severity of the PEL error
extracted from the ESEL metadata in the log as the
search modifier.
If a match isn't found in the policy table with these modifiers,
then the code will search again using the existing modifier checks.
Note:
PEL = Platform Event Log. This is the logging standard used
by OpenPower host firmware. The PEL contents are in
the ESEL data in the AdditionalData property in an
OpenBMC error log entry.
Change-Id: I0e2f3675ece7e792f6b551a5be093351e3585eb6
Signed-off-by: Matt Spinler <spinler@us.ibm.com>
diff --git a/policy_table.hpp b/policy_table.hpp
index fb12659..a2e7346 100644
--- a/policy_table.hpp
+++ b/policy_table.hpp
@@ -26,13 +26,14 @@
std::string ceid;
};
+namespace optional_ns = std::experimental;
+
using DetailsList = std::vector<Details>;
using DetailsReference = std::reference_wrapper<const Details>;
+using FindResult = optional_ns::optional<DetailsReference>;
using PolicyMap = std::map<std::string, DetailsList>;
-namespace optional_ns = std::experimental;
-
/**
* @class Table
*
@@ -78,8 +79,8 @@
*
* @return optional<DetailsReference> - the details entry
*/
- optional_ns::optional<DetailsReference>
- find(const std::string& error, const std::string& modifier) const;
+ FindResult find(const std::string& error,
+ const std::string& modifier) const;
/**
* The default event ID to use when a match in the table