From 93030709f5bbc5d547a089eccae6251b8d0ea8e1 Mon Sep 17 00:00:00 2001 From: Michael Friedrich Date: Wed, 27 Mar 2019 11:43:14 +0100 Subject: [PATCH] Implement previous_state_change --- lib/icinga/checkable-check.cpp | 3 +++ lib/icinga/checkable.ti | 3 +++ 2 files changed, 6 insertions(+) diff --git a/lib/icinga/checkable-check.cpp b/lib/icinga/checkable-check.cpp index 832decaf2..8feeaceb0 100644 --- a/lib/icinga/checkable-check.cpp +++ b/lib/icinga/checkable-check.cpp @@ -256,6 +256,9 @@ void Checkable::ProcessCheckResult(const CheckResult::Ptr& cr, const MessageOrig else stateChange = (Host::CalculateState(old_state) != Host::CalculateState(new_state)); + /* Store the current last state change for the next iteration. */ + SetPreviousStateChange(GetLastStateChange()); + if (stateChange) { SetLastStateChange(now); diff --git a/lib/icinga/checkable.ti b/lib/icinga/checkable.ti index 158c5ceae..a0ed85c52 100644 --- a/lib/icinga/checkable.ti +++ b/lib/icinga/checkable.ti @@ -120,6 +120,9 @@ abstract class Checkable : CustomVarObject }; [state] Timestamp last_state_unreachable; + [state] Timestamp previous_state_change { + default {{{ return Application::GetStartTime(); }}} + }; [no_storage] int severity { get; };