Fix: Volatile check results for OK->OK transitions are logged into DB IDO statehistory

fixes #11823
This commit is contained in:
Michael Friedrich 2016-05-21 13:41:43 +02:00
parent e27dee5476
commit b4843dc81b
1 changed files with 4 additions and 2 deletions

View File

@ -355,7 +355,8 @@ void Checkable::ProcessCheckResult(const CheckResult::Ptr& cr, const MessageOrig
String old_state_str = (service ? Service::StateToString(old_state) : Host::StateToString(Host::CalculateState(old_state)));
String new_state_str = (service ? Service::StateToString(new_state) : Host::StateToString(Host::CalculateState(new_state)));
if (hardChange || is_volatile) {
/* Whether a hard state change or a volatile state change except OK -> OK happened. */
if (hardChange || is_volatile && !(IsStateOK(old_state) && IsStateOK(new_state))) {
OnStateChange(this, cr, StateTypeHard, origin);
Log(LogNotice, "Checkable")
<< "State Change: Checkable " << GetName() << " hard state change from " << old_state_str << " to " << new_state_str << " detected." << (is_volatile ? " Checkable is volatile." : "");
@ -365,7 +366,8 @@ void Checkable::ProcessCheckResult(const CheckResult::Ptr& cr, const MessageOrig
<< "State Change: Checkable " << GetName() << " soft state change from " << old_state_str << " to " << new_state_str << " detected.";
}
if (GetStateType() == StateTypeSoft || hardChange || recovery || is_volatile)
if (GetStateType() == StateTypeSoft || hardChange || recovery ||
is_volatile && !(IsStateOK(old_state) && IsStateOK(new_state)))
ExecuteEventHandler();
if (send_downtime_notification)