summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatt Spinler <spinler@us.ibm.com>2017-10-31 14:00:18 -0500
committerMatt Spinler <spinler@us.ibm.com>2017-11-14 11:14:47 -0600
commit56fd833d55f62962f7d4c7c8421006cab7b98409 (patch)
treebaa3c7848352763c7798b533212b9c0db12f43cc
parent78199b44b1438295b79f562e9d240034c05e4171 (diff)
downloadphosphor-dbus-monitor-56fd833d55f62962f7d4c7c8421006cab7b98409.zip
phosphor-dbus-monitor-56fd833d55f62962f7d4c7c8421006cab7b98409.tar.gz
Add ResolveCallout class
This class is a type of callback, and when triggered will resolve all error log entries that have the specified callout. It does this by setting the Resolved property on the log entry. It can be used to do things like resolve all errors against a particular part when that part is replaced, which would be done by specifying this class as a callback on a watch on the Present property for the part in the inventory. Change-Id: I50557938c9e15a91744ee2a16d67eaa7f367ef04 Signed-off-by: Matt Spinler <spinler@us.ibm.com>
-rw-r--r--src/Makefile.am3
-rw-r--r--src/resolve_errors.cpp37
-rw-r--r--src/resolve_errors.hpp64
-rw-r--r--src/test/Makefile.am3
4 files changed, 105 insertions, 2 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index c6a041f..29a4ba7 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -9,7 +9,8 @@ phosphor_dbus_monitor_SOURCES = \
journal.cpp \
elog.cpp \
main.cpp \
- propertywatch.cpp
+ propertywatch.cpp \
+ resolve_errors.cpp
phosphor_dbus_monitor_LDADD = \
$(SDBUSPLUS_LIBS) \
$(PHOSPHOR_DBUS_INTERFACES_LIBS) \
diff --git a/src/resolve_errors.cpp b/src/resolve_errors.cpp
new file mode 100644
index 0000000..c08e489
--- /dev/null
+++ b/src/resolve_errors.cpp
@@ -0,0 +1,37 @@
+/**
+ * Copyright © 2017 IBM Corporation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "resolve_errors.hpp"
+
+namespace phosphor
+{
+namespace dbus
+{
+namespace monitoring
+{
+
+void ResolveCallout::operator()()
+{
+ //TODO: fill in
+}
+
+void ResolveCallout::resolve(const std::string& logEntry)
+{
+ //TODO: fill in
+}
+
+} // namespace monitoring
+} // namespace dbus
+} // namespace phosphor
diff --git a/src/resolve_errors.hpp b/src/resolve_errors.hpp
new file mode 100644
index 0000000..a455ab4
--- /dev/null
+++ b/src/resolve_errors.hpp
@@ -0,0 +1,64 @@
+#pragma once
+#include "callback.hpp"
+
+namespace phosphor
+{
+namespace dbus
+{
+namespace monitoring
+{
+
+/**
+ * @class ResolveCallout
+ * @brief Resolves error logs with the associated callout
+ *
+ * Resolves a log by setting its Resolved property
+ * to true.
+ */
+class ResolveCallout : public Callback
+{
+ public:
+
+ ResolveCallout() = delete;
+ ~ResolveCallout() = default;
+ ResolveCallout(const ResolveCallout&) = delete;
+ ResolveCallout& operator=(const ResolveCallout&) = delete;
+ ResolveCallout(ResolveCallout&&) = default;
+ ResolveCallout& operator=(ResolveCallout&&) = default;
+
+ /**
+ * @brief constructor
+ *
+ * @param[in] callout - The callout whose errors need to be resolved.
+ * Normally an inventory path.
+ */
+ explicit ResolveCallout(const std::string& callout) :
+ callout(callout) {}
+
+ /**
+ * @brief Callback interface to resolve errors
+ *
+ * Resolves all error log entries that are associated
+ * with the callout.
+ */
+ void operator()() override;
+
+ private:
+
+ /**
+ * @brief Resolves a single error log entry
+ *
+ * param[in] entry - the object path of the error log entry
+ */
+ void resolve(const std::string& entry);
+
+ /**
+ * @brief The object path of the callout, typically an inventory path
+ */
+ std::string callout;
+};
+
+
+} // namespace monitoring
+} // namespace dbus
+} // namespace phosphor
diff --git a/src/test/Makefile.am b/src/test/Makefile.am
index 7dddccd..5a4d20d 100644
--- a/src/test/Makefile.am
+++ b/src/test/Makefile.am
@@ -196,4 +196,5 @@ callbacktest_LDADD = \
$(PHOSPHOR_DBUS_INTERFACES_LIBS) \
$(PHOSPHOR_LOGGING_LIBS) \
$(builddir)/../journal.o \
- $(builddir)/../elog.o
+ $(builddir)/../elog.o \
+ $(builddir)/../resolve_errors.o
OpenPOWER on IntegriCloud