pseq: Create dump on runtime pgood failure

Currently no dump is created when a power good failure occurs at
runtime. Add the call to create a dump.

Signed-off-by: Jim Wright <jlwright@us.ibm.com>
Change-Id: I1effbf13f0b2fd234deea96171efa289f9fa2380
diff --git a/phosphor-power-sequencer/src/power_sequencer_monitor.cpp b/phosphor-power-sequencer/src/power_sequencer_monitor.cpp
index df723ab..04398eb 100644
--- a/phosphor-power-sequencer/src/power_sequencer_monitor.cpp
+++ b/phosphor-power-sequencer/src/power_sequencer_monitor.cpp
@@ -33,6 +33,25 @@
     bus(bus)
 {}
 
+void PowerSequencerMonitor::createBmcDump()
+{
+    try
+    {
+        auto method = bus.new_method_call(
+            "xyz.openbmc_project.Dump.Manager", "/xyz/openbmc_project/dump/bmc",
+            "xyz.openbmc_project.Dump.Create", "CreateDump");
+        method.append(
+            std::vector<
+                std::pair<std::string, std::variant<std::string, uint64_t>>>());
+        bus.call_noreply(method);
+    }
+    catch (const sdbusplus::exception::exception& e)
+    {
+        log<level::ERR>(
+            fmt::format("Unable to create dump, error {}", e.what()).c_str());
+    }
+}
+
 void PowerSequencerMonitor::logError(
     const std::string& message,
     std::map<std::string, std::string>& additionalData)
@@ -83,6 +102,10 @@
         // Default to generic pgood error
         logError("xyz.openbmc_project.Power.Error.Shutdown", additionalData);
     }
+    if (!timeout)
+    {
+        createBmcDump();
+    }
 }
 
 } // namespace phosphor::power::sequencer