summaryrefslogtreecommitdiff
path: root/LayerManagerPlugins/HealthMonitor/SystemdHealthMonitor/src/SystemdHealthMonitor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'LayerManagerPlugins/HealthMonitor/SystemdHealthMonitor/src/SystemdHealthMonitor.cpp')
-rw-r--r--LayerManagerPlugins/HealthMonitor/SystemdHealthMonitor/src/SystemdHealthMonitor.cpp19
1 files changed, 18 insertions, 1 deletions
diff --git a/LayerManagerPlugins/HealthMonitor/SystemdHealthMonitor/src/SystemdHealthMonitor.cpp b/LayerManagerPlugins/HealthMonitor/SystemdHealthMonitor/src/SystemdHealthMonitor.cpp
index f63cd88..d965d75 100644
--- a/LayerManagerPlugins/HealthMonitor/SystemdHealthMonitor/src/SystemdHealthMonitor.cpp
+++ b/LayerManagerPlugins/HealthMonitor/SystemdHealthMonitor/src/SystemdHealthMonitor.cpp
@@ -31,6 +31,7 @@ SystemdHealthMonitor::SystemdHealthMonitor(ICommandExecutor& executor, Configura
: IHealthMonitor(executor, config)
, PluginBase(executor, config, HealthMonitor_Api_v1)
, mIntervalInMs(-1)
+, m_iterationCounter(0)
{
char* envVar = getenv("WATCHDOG_USEC");
if (envVar)
@@ -94,12 +95,28 @@ bool SystemdHealthMonitor::watchdogEnabled()
t_ilm_bool SystemdHealthMonitor::threadMainLoop()
{
- if (watchdogEnabled() && PluginBase::mExecutor.getHealth())
+ if (watchdogEnabled() && PluginBase::mExecutor.getHealth() == HealthRunning)
{
+ ++m_iterationCounter;
signalWatchdog();
usleep(mIntervalInMs * 1000);
}
return ILM_TRUE;
}
+int SystemdHealthMonitor::getPluginReportIntervalInMs()
+{
+ int result = -1;
+ if (watchdogEnabled())
+ {
+ result = mIntervalInMs / 2;
+ }
+ return result;
+}
+
+int SystemdHealthMonitor::getIterationCounter()
+{
+ return m_iterationCounter;
+}
+
DECLARE_LAYERMANAGEMENT_PLUGIN(SystemdHealthMonitor)