#include "bmc_dump_entry.hpp" #include "dump_manager.hpp" #include "dump_offload.hpp" #include "dump_utils.hpp" #include namespace phosphor { namespace dump { namespace bmc { void Entry::delete_() { // Delete Dump file from Permanent location try { std::filesystem::remove_all(file.parent_path()); } catch (const std::filesystem::filesystem_error& e) { // Log Error message and continue lg2::error("Failed to delete dump file, errormsg: {ERROR}", "ERROR", e); } // Remove Dump entry D-bus object phosphor::dump::Entry::delete_(); } void Entry::initiateOffload(std::string uri) { phosphor::dump::offload::requestOffload(file, id, uri); offloaded(true); } void Entry::updateFromFile(const std::filesystem::path& dumpPath) { // Extract dump details from the file name auto dumpDetails = phosphor::dump::extractDumpDetails(dumpPath); if (!dumpDetails) { lg2::error("Failed to extract dump details from file name: {PATH}", "PATH", dumpPath); throw std::logic_error("Invalid dump file name format"); } auto [extractedId, extractedTimestamp, extractedSize] = *dumpDetails; if (id != extractedId) { lg2::error("Id({ID}) is not matching with id on filename" "({ID_FILENAME})", "ID", id, "ID_FILENAME", extractedId); throw std::logic_error("Invalid dump id in filename"); } // Update the entry with extracted details startTime(extractedTimestamp); elapsed(extractedTimestamp); completedTime(extractedTimestamp); size(extractedSize); status(OperationStatus::Completed); } } // namespace bmc } // namespace dump } // namespace phosphor