Create error log on fail

Use elog to create error log on fail.
Resolves openbmc/openbmc#1352

Change-Id: I1c362390110c5b3fcae3335a0bd0a7dd11540883
Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
diff --git a/elog-errors.hpp b/elog-errors.hpp
new file mode 100644
index 0000000..5461ef6
--- /dev/null
+++ b/elog-errors.hpp
@@ -0,0 +1,271 @@
+// This file was autogenerated.  Do not edit!
+// See elog-gen.py for more details
+#pragma once
+
+#include <string>
+#include <tuple>
+#include <type_traits>
+#include <sdbusplus/exception.hpp>
+#include <phosphor-logging/log.hpp>
+#include <phosphor-logging/elog.hpp>
+
+namespace sdbusplus
+{
+namespace xyz
+{
+namespace openbmc_project
+{
+namespace Software
+{
+namespace Version
+{
+namespace Error
+{
+    struct UnTarFailure;
+} // namespace Error
+} // namespace Version
+} // namespace Software
+} // namespace openbmc_project
+} // namespace xyz
+} // namespace sdbusplus
+
+namespace sdbusplus
+{
+namespace xyz
+{
+namespace openbmc_project
+{
+namespace Software
+{
+namespace Version
+{
+namespace Error
+{
+    struct InternalFailure;
+} // namespace Error
+} // namespace Version
+} // namespace Software
+} // namespace openbmc_project
+} // namespace xyz
+} // namespace sdbusplus
+
+namespace sdbusplus
+{
+namespace xyz
+{
+namespace openbmc_project
+{
+namespace Software
+{
+namespace Version
+{
+namespace Error
+{
+    struct ManifestFileFailure;
+} // namespace Error
+} // namespace Version
+} // namespace Software
+} // namespace openbmc_project
+} // namespace xyz
+} // namespace sdbusplus
+
+
+namespace phosphor
+{
+
+namespace logging
+{
+
+namespace xyz
+{
+namespace openbmc_project
+{
+namespace Software
+{
+namespace Version
+{
+namespace _UnTarFailure
+{
+
+struct PATH
+{
+    static constexpr auto str = "PATH=%s";
+    static constexpr auto str_short = "PATH";
+    using type = std::tuple<std::decay_t<decltype(str)>,const char*>;
+    explicit constexpr PATH(const char* a) : _entry(entry(str, a)) {};
+    type _entry;
+};
+
+}  // namespace _UnTarFailure
+
+struct UnTarFailure : public sdbusplus::exception_t
+{
+    static constexpr auto errName = "xyz.openbmc_project.Software.Version.UnTarFailure";
+    static constexpr auto errDesc = "An error occurred during untar.";
+    static constexpr auto L = level::ERR;
+    using PATH = _UnTarFailure::PATH;
+    using metadata_types = std::tuple<PATH>;
+
+    const char* name() const noexcept
+    {
+        return errName;
+    }
+
+    const char* description() const noexcept
+    {
+        return errDesc;
+    }
+
+    const char* what() const noexcept
+    {
+        return errName;
+    }
+};
+
+} // namespace Version
+} // namespace Software
+} // namespace openbmc_project
+} // namespace xyz
+
+
+namespace details
+{
+
+template <>
+struct map_exception_type<sdbusplus::xyz::openbmc_project::Software::Version::Error::UnTarFailure>
+{
+    using type = xyz::openbmc_project::Software::Version::UnTarFailure;
+};
+
+}
+
+namespace xyz
+{
+namespace openbmc_project
+{
+namespace Software
+{
+namespace Version
+{
+namespace _ManifestFileFailure
+{
+
+struct PATH
+{
+    static constexpr auto str = "PATH=%s";
+    static constexpr auto str_short = "PATH";
+    using type = std::tuple<std::decay_t<decltype(str)>,const char*>;
+    explicit constexpr PATH(const char* a) : _entry(entry(str, a)) {};
+    type _entry;
+};
+
+}  // namespace _ManifestFileFailure
+
+struct ManifestFileFailure : public sdbusplus::exception_t
+{
+    static constexpr auto errName = "xyz.openbmc_project.Software.Version.ManifestFileFailure";
+    static constexpr auto errDesc = "An error when reading the Manifest file.";
+    static constexpr auto L = level::ERR;
+    using PATH = _ManifestFileFailure::PATH;
+    using metadata_types = std::tuple<PATH>;
+
+    const char* name() const noexcept
+    {
+        return errName;
+    }
+
+    const char* description() const noexcept
+    {
+        return errDesc;
+    }
+
+    const char* what() const noexcept
+    {
+        return errName;
+    }
+};
+
+} // namespace Version
+} // namespace Software
+} // namespace openbmc_project
+} // namespace xyz
+
+
+namespace details
+{
+
+template <>
+struct map_exception_type<sdbusplus::xyz::openbmc_project::Software::Version::Error::ManifestFileFailure>
+{
+    using type = xyz::openbmc_project::Software::Version::ManifestFileFailure;
+};
+
+}
+
+namespace xyz
+{
+namespace openbmc_project
+{
+namespace Software
+{
+namespace Version
+{
+namespace _InternalFailure
+{
+
+struct FAIL
+{
+    static constexpr auto str = "FAIL=%s";
+    static constexpr auto str_short = "FAIL";
+    using type = std::tuple<std::decay_t<decltype(str)>,const char*>;
+    explicit constexpr FAIL(const char* a) : _entry(entry(str, a)) {};
+    type _entry;
+};
+
+}  // namespace _InternalFailure
+
+struct InternalFailure : public sdbusplus::exception_t
+{
+    static constexpr auto errName = "xyz.openbmc_project.Software.Version.InternalFailure";
+    static constexpr auto errDesc = "The operation failed internally during processing the image.";
+    static constexpr auto L = level::ERR;
+    using FAIL = _InternalFailure::FAIL;
+    using metadata_types = std::tuple<FAIL>;
+
+    const char* name() const noexcept
+    {
+        return errName;
+    }
+
+    const char* description() const noexcept
+    {
+        return errDesc;
+    }
+
+    const char* what() const noexcept
+    {
+        return errName;
+    }
+};
+
+} // namespace Version
+} // namespace Software
+} // namespace openbmc_project
+} // namespace xyz
+
+
+namespace details
+{
+
+template <>
+struct map_exception_type<sdbusplus::xyz::openbmc_project::Software::Version::Error::InternalFailure>
+{
+    using type = xyz::openbmc_project::Software::Version::InternalFailure;
+};
+
+}
+
+
+} // namespace logging
+
+} // namespace phosphor