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

lib/icinga/service.cpp
lib/icinga/service.h
lib/icinga/service.ti

index b1d05fbd5bba4cb7bce8ba97aabe134ac15157ef..1d3311fa898bbad5660da76b84e7c4a0c45b023d 100644 (file)
@@ -260,6 +260,19 @@ std::set<Service::Ptr> Service::GetParentServices(void) const
        return parents;
 }
 
+bool Service::GetEnablePerfdata(void) const
+{
+       if (!GetOverrideEnablePerfdata().IsEmpty())
+               return GetOverrideEnablePerfdata();
+       else
+               return GetEnablePerfdataRaw();
+}
+
+void Service::SetEnablePerfdata(bool enabled, const String& authority)
+{
+       SetOverrideEnablePerfdata(enabled);
+}
+
 int Service::GetModifiedAttributes(void) const
 {
        int attrs = 0;
@@ -279,6 +292,9 @@ int Service::GetModifiedAttributes(void) const
        if (!GetOverrideEnableEventHandler().IsEmpty())
                attrs |= ModAttrEventHandlerEnabled;
 
+       if (!GetOverrideEnablePerfdata().IsEmpty())
+               attrs |= ModAttrPerformanceDataEnabled;
+
        if (!GetOverrideCheckInterval().IsEmpty())
                attrs |= ModAttrNormalCheckInterval;
 
@@ -307,6 +323,9 @@ void Service::SetModifiedAttributes(int flags)
        if ((flags & ModAttrEventHandlerEnabled) == 0)
                SetOverrideEnableEventHandler(Empty);
 
+       if ((flags & ModAttrPerformanceDataEnabled) == 0)
+               SetOverrideEnablePerfdata(Empty);
+
        if ((flags & ModAttrNormalCheckInterval) == 0)
                SetOverrideCheckInterval(Empty);
 
index c11e0ea85e7095bcae74c8885ccb487a5786ecd5..458410b83e325c637fcdc6b4236ef12eb14127bf 100644 (file)
@@ -249,6 +249,10 @@ public:
        bool IsFlapping(void) const;
        void UpdateFlappingStatus(bool stateChange);
 
+       /* Performance data */
+       bool GetEnablePerfdata(void) const;
+       void SetEnablePerfdata(bool enabled, const String& authority = String());
+
 protected:
        virtual void Start(void);
 
index 9fadc756bebfbeb84a33088a60cee5edf93c4164..f3f9c36729b62694cdc6dc99ee947bad4a6c7dd3 100644 (file)
@@ -74,6 +74,9 @@ class Service : DynamicObject
        [config] bool enable_flapping (EnableFlappingRaw) {
                default {{{ return true; }}}
        };
+       [config] bool enable_perfdata (EnablePerfdataRaw) {
+               default {{{ return true; }}}
+       };
 
        [state] double next_check (NextCheckRaw);
        [state] int check_attempt {
@@ -125,13 +128,11 @@ class Service : DynamicObject
        [state] int flapping_positive;
        [state] int flapping_negative;
        [state] double flapping_last_change;
-       [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_enable_perfdata;
        [state] Value override_check_interval;
        [state] Value override_retry_interval;
        [state] Value override_enable_event_handler;