Implement led assert and deassert based on faults
Change-Id: I28378b155da15282b1b5bf0403075b55bda5b70d
Signed-off-by: Dhruvaraj Subhashchandran <dhruvaraj@in.ibm.com>
diff --git a/elog-errors.hpp b/elog-errors.hpp
new file mode 100644
index 0000000..1cc6f4a
--- /dev/null
+++ b/elog-errors.hpp
@@ -0,0 +1,402 @@
+// 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 Led
+{
+namespace Fru
+{
+namespace Monitor
+{
+namespace Error
+{
+ struct AssociationRetrieveError;
+} // namespace Error
+} // namespace Monitor
+} // namespace Fru
+} // namespace Led
+} // namespace openbmc_project
+} // namespace xyz
+} // namespace sdbusplus
+
+namespace sdbusplus
+{
+namespace xyz
+{
+namespace openbmc_project
+{
+namespace Led
+{
+namespace Fru
+{
+namespace Monitor
+{
+namespace Error
+{
+ struct InventoryPathError;
+} // namespace Error
+} // namespace Monitor
+} // namespace Fru
+} // namespace Led
+} // namespace openbmc_project
+} // namespace xyz
+} // namespace sdbusplus
+
+namespace sdbusplus
+{
+namespace xyz
+{
+namespace openbmc_project
+{
+namespace Led
+{
+namespace Mapper
+{
+namespace Error
+{
+ struct ObjectNotFoundError;
+} // namespace Error
+} // namespace Mapper
+} // namespace Led
+} // namespace openbmc_project
+} // namespace xyz
+} // namespace sdbusplus
+
+namespace sdbusplus
+{
+namespace xyz
+{
+namespace openbmc_project
+{
+namespace Led
+{
+namespace Mapper
+{
+namespace Error
+{
+ struct MethodError;
+} // namespace Error
+} // namespace Mapper
+} // namespace Led
+} // namespace openbmc_project
+} // namespace xyz
+} // namespace sdbusplus
+
+
+namespace phosphor
+{
+
+namespace logging
+{
+
+namespace xyz
+{
+namespace openbmc_project
+{
+namespace Led
+{
+namespace Fru
+{
+namespace Monitor
+{
+namespace _InventoryPathError
+{
+
+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 _InventoryPathError
+
+struct InventoryPathError : public sdbusplus::exception_t
+{
+ static constexpr auto errName = "xyz.openbmc_project.Led.Fru.Monitor.InventoryPathError";
+ static constexpr auto errDesc = "Invalid Inventory Path.";
+ static constexpr auto L = level::INFO;
+ using PATH = _InventoryPathError::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 Monitor
+} // namespace Fru
+} // namespace Led
+} // namespace openbmc_project
+} // namespace xyz
+
+
+namespace details
+{
+
+template <>
+struct map_exception_type<sdbusplus::xyz::openbmc_project::Led::Fru::Monitor::Error::InventoryPathError>
+{
+ using type = xyz::openbmc_project::Led::Fru::Monitor::InventoryPathError;
+};
+
+}
+
+namespace xyz
+{
+namespace openbmc_project
+{
+namespace Led
+{
+namespace Fru
+{
+namespace Monitor
+{
+namespace _AssociationRetrieveError
+{
+
+struct ELOG_ENTRY_PATH
+{
+ static constexpr auto str = "ELOG_ENTRY_PATH=%s";
+ static constexpr auto str_short = "ELOG_ENTRY_PATH";
+ using type = std::tuple<std::decay_t<decltype(str)>,const char*>;
+ explicit constexpr ELOG_ENTRY_PATH(const char* a) : _entry(entry(str, a)) {};
+ type _entry;
+};
+
+} // namespace _AssociationRetrieveError
+
+struct AssociationRetrieveError : public sdbusplus::exception_t
+{
+ static constexpr auto errName = "xyz.openbmc_project.Led.Fru.Monitor.AssociationRetrieveError";
+ static constexpr auto errDesc = "Error in retrieving the associations from elog entry.";
+ static constexpr auto L = level::INFO;
+ using ELOG_ENTRY_PATH = _AssociationRetrieveError::ELOG_ENTRY_PATH;
+ using metadata_types = std::tuple<ELOG_ENTRY_PATH>;
+
+ const char* name() const noexcept
+ {
+ return errName;
+ }
+
+ const char* description() const noexcept
+ {
+ return errDesc;
+ }
+
+ const char* what() const noexcept
+ {
+ return errName;
+ }
+};
+
+} // namespace Monitor
+} // namespace Fru
+} // namespace Led
+} // namespace openbmc_project
+} // namespace xyz
+
+
+namespace details
+{
+
+template <>
+struct map_exception_type<sdbusplus::xyz::openbmc_project::Led::Fru::Monitor::Error::AssociationRetrieveError>
+{
+ using type = xyz::openbmc_project::Led::Fru::Monitor::AssociationRetrieveError;
+};
+
+}
+
+namespace xyz
+{
+namespace openbmc_project
+{
+namespace Led
+{
+namespace Mapper
+{
+namespace _MethodError
+{
+
+struct METHOD_NAME
+{
+ static constexpr auto str = "METHOD_NAME=%s";
+ static constexpr auto str_short = "METHOD_NAME";
+ using type = std::tuple<std::decay_t<decltype(str)>,const char*>;
+ explicit constexpr METHOD_NAME(const char* a) : _entry(entry(str, a)) {};
+ type _entry;
+};
+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;
+};
+struct INTERFACE
+{
+ static constexpr auto str = "INTERFACE=%s";
+ static constexpr auto str_short = "INTERFACE";
+ using type = std::tuple<std::decay_t<decltype(str)>,const char*>;
+ explicit constexpr INTERFACE(const char* a) : _entry(entry(str, a)) {};
+ type _entry;
+};
+
+} // namespace _MethodError
+
+struct MethodError : public sdbusplus::exception_t
+{
+ static constexpr auto errName = "xyz.openbmc_project.Led.Mapper.MethodError";
+ static constexpr auto errDesc = "Failed to invoke ObjectMapper method";
+ static constexpr auto L = level::INFO;
+ using METHOD_NAME = _MethodError::METHOD_NAME;
+ using PATH = _MethodError::PATH;
+ using INTERFACE = _MethodError::INTERFACE;
+ using metadata_types = std::tuple<METHOD_NAME, PATH, INTERFACE>;
+
+ const char* name() const noexcept
+ {
+ return errName;
+ }
+
+ const char* description() const noexcept
+ {
+ return errDesc;
+ }
+
+ const char* what() const noexcept
+ {
+ return errName;
+ }
+};
+
+} // namespace Mapper
+} // namespace Led
+} // namespace openbmc_project
+} // namespace xyz
+
+
+namespace details
+{
+
+template <>
+struct map_exception_type<sdbusplus::xyz::openbmc_project::Led::Mapper::Error::MethodError>
+{
+ using type = xyz::openbmc_project::Led::Mapper::MethodError;
+};
+
+}
+
+namespace xyz
+{
+namespace openbmc_project
+{
+namespace Led
+{
+namespace Mapper
+{
+namespace _ObjectNotFoundError
+{
+
+struct METHOD_NAME
+{
+ static constexpr auto str = "METHOD_NAME=%s";
+ static constexpr auto str_short = "METHOD_NAME";
+ using type = std::tuple<std::decay_t<decltype(str)>,const char*>;
+ explicit constexpr METHOD_NAME(const char* a) : _entry(entry(str, a)) {};
+ type _entry;
+};
+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;
+};
+struct INTERFACE
+{
+ static constexpr auto str = "INTERFACE=%s";
+ static constexpr auto str_short = "INTERFACE";
+ using type = std::tuple<std::decay_t<decltype(str)>,const char*>;
+ explicit constexpr INTERFACE(const char* a) : _entry(entry(str, a)) {};
+ type _entry;
+};
+
+} // namespace _ObjectNotFoundError
+
+struct ObjectNotFoundError : public sdbusplus::exception_t
+{
+ static constexpr auto errName = "xyz.openbmc_project.Led.Mapper.ObjectNotFoundError";
+ static constexpr auto errDesc = "Failed to get response from the method.";
+ static constexpr auto L = level::INFO;
+ using METHOD_NAME = _ObjectNotFoundError::METHOD_NAME;
+ using PATH = _ObjectNotFoundError::PATH;
+ using INTERFACE = _ObjectNotFoundError::INTERFACE;
+ using metadata_types = std::tuple<METHOD_NAME, PATH, INTERFACE>;
+
+ const char* name() const noexcept
+ {
+ return errName;
+ }
+
+ const char* description() const noexcept
+ {
+ return errDesc;
+ }
+
+ const char* what() const noexcept
+ {
+ return errName;
+ }
+};
+
+} // namespace Mapper
+} // namespace Led
+} // namespace openbmc_project
+} // namespace xyz
+
+
+namespace details
+{
+
+template <>
+struct map_exception_type<sdbusplus::xyz::openbmc_project::Led::Mapper::Error::ObjectNotFoundError>
+{
+ using type = xyz::openbmc_project::Led::Mapper::ObjectNotFoundError;
+};
+
+}
+
+
+} // namespace logging
+
+} // namespace phosphor