]> granicus.if.org Git - icinga2/commitdiff
Implement override_enable_flapping.
authorGunnar Beutner <gunnar.beutner@netways.de>
Tue, 26 Nov 2013 10:34:33 +0000 (11:34 +0100)
committerGunnar Beutner <gunnar.beutner@netways.de>
Tue, 26 Nov 2013 11:33:16 +0000 (12:33 +0100)
Refs #4746

lib/icinga/service-flapping.cpp
lib/icinga/service-notification.cpp
lib/icinga/service.cpp
lib/icinga/service.ti

index 144b165a5813137639689c62ba2ca0d57789246d..67b7af938f92338054603729e6a34e9d3af8f521 100644 (file)
@@ -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);
index 0d69ab7bd56f389bae7b6e0805f2d97398af96b7..6128301c91f8e19febd0691c36fd9ce983088c1d 100644 (file)
@@ -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)
index e985c2a187689dcd9f18de022c4f722ea69f5eae..b1d05fbd5bba4cb7bce8ba97aabe134ac15157ef 100644 (file)
@@ -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);
 
index 09c5d3f13d84b2a19c5dd4ff38ef475332b6fc1c..9fadc756bebfbeb84a33088a60cee5edf93c4164 100644 (file)
@@ -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;