Add ability to disable device logging
Drive logic is too complicated, so it'll be handled
in a different daemon, add ability to disable logging
in EM.
Tested: No more logs
Change-Id: I55bd66df1eda9434b9ad9f98fd576d2073db0227
Signed-off-by: James Feist <james.feist@linux.intel.com>
diff --git a/include/EntityManager.hpp b/include/EntityManager.hpp
index 524fa5d..1b247d5 100644
--- a/include/EntityManager.hpp
+++ b/include/EntityManager.hpp
@@ -68,6 +68,10 @@
inline void logDeviceAdded(const nlohmann::json& record)
{
+ if (!deviceHasLogging(record))
+ {
+ return;
+ }
auto findType = record.find("Type");
auto findAsset =
record.find("xyz.openbmc_project.Inventory.Decorator.Asset");
@@ -110,6 +114,10 @@
inline void logDeviceRemoved(const nlohmann::json& record)
{
+ if (!deviceHasLogging(record))
+ {
+ return;
+ }
auto findType = record.find("Type");
auto findAsset =
record.find("xyz.openbmc_project.Inventory.Decorator.Asset");
diff --git a/include/Utils.hpp b/include/Utils.hpp
index 58d4d42..d3e731f 100644
--- a/include/Utils.hpp
+++ b/include/Utils.hpp
@@ -129,4 +129,21 @@
const boost::container::flat_map<std::string, BasicVariantType>&
foundDevice,
const size_t foundDeviceIdx,
- const std::optional<std::string>& replaceStr = std::nullopt);
\ No newline at end of file
+ const std::optional<std::string>& replaceStr = std::nullopt);
+
+inline bool deviceHasLogging(const nlohmann::json& json)
+{
+ auto logging = json.find("Logging");
+ if (logging != json.end())
+ {
+ auto ptr = logging->get_ptr<const std::string*>();
+ if (ptr)
+ {
+ if (*ptr == "Off")
+ {
+ return false;
+ }
+ }
+ }
+ return true;
+}