PEL: Make action flags optional in the registry

A future commit will fill in the field if it isn't
present.

Signed-off-by: Matt Spinler <spinler@us.ibm.com>
Change-Id: I67371433162ce2198a362796d274695a1bd6a6dc
diff --git a/extensions/openpower-pels/registry.cpp b/extensions/openpower-pels/registry.cpp
index f0efb3e..dc5a71a 100644
--- a/extensions/openpower-pels/registry.cpp
+++ b/extensions/openpower-pels/registry.cpp
@@ -291,7 +291,11 @@
             Entry entry;
             entry.name = (*e)["Name"];
             entry.subsystem = helper::getSubsystem((*e)["Subsystem"]);
-            entry.actionFlags = helper::getActionFlags((*e)["ActionFlags"]);
+
+            if (e->find("ActionFlags") != e->end())
+            {
+                entry.actionFlags = helper::getActionFlags((*e)["ActionFlags"]);
+            }
 
             if (e->find("MfgActionFlags") != e->end())
             {
diff --git a/extensions/openpower-pels/registry.hpp b/extensions/openpower-pels/registry.hpp
index c55c624..d75c30a 100644
--- a/extensions/openpower-pels/registry.hpp
+++ b/extensions/openpower-pels/registry.hpp
@@ -99,7 +99,7 @@
     /**
      * @brief The PEL action flags field.
      */
-    uint16_t actionFlags;
+    std::optional<uint16_t> actionFlags;
 
     /**
      * @brief  The optional action flags to use instead when in manufacturing
diff --git a/extensions/openpower-pels/user_header.cpp b/extensions/openpower-pels/user_header.cpp
index 6dfbc09..f4337f3 100644
--- a/extensions/openpower-pels/user_header.cpp
+++ b/extensions/openpower-pels/user_header.cpp
@@ -56,7 +56,7 @@
     _problemDomain = 0;
     _problemVector = 0;
 
-    _actionFlags = entry.actionFlags;
+    _actionFlags = entry.actionFlags.value_or(0);
 
     _reserved4Byte2 = 0;