Add support for resource dump delete.

Add support for deleting resource dumps in host memory.
Change requestDelete to accept dump type.
Update system dump delete to pass dump type.

Signed-off-by: Dhruvaraj Subhashchandran <dhruvaraj@in.ibm.com>
Change-Id: I8dcf85a2b38da15ff8451003c11232e340c4ca89
diff --git a/dump-extensions/openpower-dumps/resource_dump_entry.cpp b/dump-extensions/openpower-dumps/resource_dump_entry.cpp
index efbb758..e8e73f3 100644
--- a/dump-extensions/openpower-dumps/resource_dump_entry.cpp
+++ b/dump-extensions/openpower-dumps/resource_dump_entry.cpp
@@ -12,6 +12,10 @@
 {
 namespace resource
 {
+// TODO #ibm-openbmc/issues/2859
+// Revisit host transport impelementation
+// This value is used to identify the dump in the transport layer to host,
+constexpr auto TRANSPORT_DUMP_TYPE_IDENTIFIER = 7;
 using namespace phosphor::logging;
 
 void Entry::initiateOffload(std::string uri)
@@ -30,6 +34,21 @@
     phosphor::dump::host::requestOffload(sourceDumpId());
 }
 
+void Entry::delete_()
+{
+    auto srcDumpID = sourceDumpId();
+
+    // Remove Dump entry D-bus object
+    phosphor::dump::Entry::delete_();
+
+    // Remove resource dump when host is up by using source dump id
+    // which is present in resource dump entry dbus object as a property.
+    if (phosphor::dump::isHostRunning())
+    {
+        phosphor::dump::host::requestDelete(srcDumpID,
+                                            TRANSPORT_DUMP_TYPE_IDENTIFIER);
+    }
+}
 } // namespace resource
 } // namespace dump
 } // namespace openpower
diff --git a/dump-extensions/openpower-dumps/resource_dump_entry.hpp b/dump-extensions/openpower-dumps/resource_dump_entry.hpp
index cc5172d..3e099a9 100644
--- a/dump-extensions/openpower-dumps/resource_dump_entry.hpp
+++ b/dump-extensions/openpower-dumps/resource_dump_entry.hpp
@@ -88,6 +88,11 @@
         status(OperationStatus::Completed);
         completedTime(timeStamp);
     }
+
+    /**
+     * @brief Delete resource dump in host memory and the entry dbus object
+     */
+    void delete_() override;
 };
 
 } // namespace resource
diff --git a/dump-extensions/openpower-dumps/system_dump_entry.cpp b/dump-extensions/openpower-dumps/system_dump_entry.cpp
index f950c5d..af7714d 100644
--- a/dump-extensions/openpower-dumps/system_dump_entry.cpp
+++ b/dump-extensions/openpower-dumps/system_dump_entry.cpp
@@ -12,6 +12,10 @@
 {
 namespace system
 {
+// TODO #ibm-openbmc/issues/2859
+// Revisit host transport impelementation
+// This value is used to identify the dump in the transport layer to host,
+constexpr auto TRANSPORT_DUMP_TYPE_IDENTIFIER = 3;
 using namespace phosphor::logging;
 
 void Entry::initiateOffload(std::string uri)
@@ -42,7 +46,8 @@
     // which is present in system dump entry dbus object as a property.
     if (phosphor::dump::isHostRunning())
     {
-        phosphor::dump::host::requestDelete(srcDumpID);
+        phosphor::dump::host::requestDelete(srcDumpID,
+                                            TRANSPORT_DUMP_TYPE_IDENTIFIER);
     }
 }
 } // namespace system