From: Gunnar Beutner Date: Tue, 26 Nov 2013 10:34:33 +0000 (+0100) Subject: Implement override_enable_flapping. X-Git-Tag: v0.0.5~25^2~6 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d8c9d6a88a7a607330bacf15103e0f8aee30a526;p=icinga2 Implement override_enable_flapping. Refs #4746 --- diff --git a/lib/icinga/service-flapping.cpp b/lib/icinga/service-flapping.cpp index 144b165a5..67b7af938 100644 --- a/lib/icinga/service-flapping.cpp +++ b/lib/icinga/service-flapping.cpp @@ -42,12 +42,15 @@ double Service::GetFlappingCurrent(void) const bool Service::GetEnableFlapping(void) const { - return GetEnableFlappingRaw(); + if (!GetOverrideEnableFlapping().IsEmpty()) + return GetOverrideEnableFlapping(); + else + return GetEnableFlappingRaw(); } void Service::SetEnableFlapping(bool enabled, const String& authority) { - SetEnableFlappingRaw(enabled); + SetOverrideEnableFlapping(enabled); OnFlappingChanged(GetSelf(), enabled ? FlappingEnabled : FlappingDisabled); OnEnableFlappingChanged(GetSelf(), enabled, authority); diff --git a/lib/icinga/service-notification.cpp b/lib/icinga/service-notification.cpp index 0d69ab7bd..6128301c9 100644 --- a/lib/icinga/service-notification.cpp +++ b/lib/icinga/service-notification.cpp @@ -166,7 +166,7 @@ bool Service::GetEnableNotifications(void) const if (!GetOverrideEnableNotifications().IsEmpty()) return GetOverrideEnableNotifications(); else - return GetEnableNotifications(); + return GetEnableNotificationsRaw(); } void Service::SetEnableNotifications(bool enabled, const String& authority) diff --git a/lib/icinga/service.cpp b/lib/icinga/service.cpp index e985c2a18..b1d05fbd5 100644 --- a/lib/icinga/service.cpp +++ b/lib/icinga/service.cpp @@ -273,6 +273,9 @@ int Service::GetModifiedAttributes(void) const if (!GetOverrideEnablePassiveChecks().IsEmpty()) attrs |= ModAttrPassiveChecksEnabled; + if (!GetOverrideEnableFlapping().IsEmpty()) + attrs |= ModAttrFlapDetectionEnabled; + if (!GetOverrideEnableEventHandler().IsEmpty()) attrs |= ModAttrEventHandlerEnabled; @@ -298,6 +301,9 @@ void Service::SetModifiedAttributes(int flags) if ((flags & ModAttrPassiveChecksEnabled) == 0) SetOverrideEnablePassiveChecks(Empty); + if ((flags & ModAttrFlapDetectionEnabled) == 0) + SetOverrideEnableFlapping(Empty); + if ((flags & ModAttrEventHandlerEnabled) == 0) SetOverrideEnableEventHandler(Empty); diff --git a/lib/icinga/service.ti b/lib/icinga/service.ti index 09c5d3f13..9fadc756b 100644 --- a/lib/icinga/service.ti +++ b/lib/icinga/service.ti @@ -71,6 +71,9 @@ class Service : DynamicObject [config] bool enable_notifications (EnableNotificationsRaw) { default {{{ return true; }}} }; + [config] bool enable_flapping (EnableFlappingRaw) { + default {{{ return true; }}} + }; [state] double next_check (NextCheckRaw); [state] int check_attempt { @@ -122,15 +125,13 @@ class Service : DynamicObject [state] int flapping_positive; [state] int flapping_negative; [state] double flapping_last_change; - [state] bool enable_flapping (EnableFlappingRaw) { - default {{{ return true; }}} - }; [state] bool enable_perfdata { default {{{ return true; }}} }; [state] Value override_enable_notifications; [state] Value override_enable_active_checks; [state] Value override_enable_passive_checks; + [state] Value override_enable_flapping; [state] Value override_check_interval; [state] Value override_retry_interval; [state] Value override_enable_event_handler;