]> granicus.if.org Git - icinga2/blobdiff - lib/icinga/notification.ti
Correct current_concurrent_checks to actually running checks
[icinga2] / lib / icinga / notification.ti
index 5df94ed1f61275bfc943093da8be587e95dac63f..0212a144a58228d01c0f49f1f069e75149486afa 100644 (file)
@@ -1,23 +1,8 @@
-/******************************************************************************
- * Icinga 2                                                                   *
- * Copyright (C) 2012-2015 Icinga Development Team (http://www.icinga.org)    *
- *                                                                            *
- * This program is free software; you can redistribute it and/or              *
- * modify it under the terms of the GNU General Public License                *
- * as published by the Free Software Foundation; either version 2             *
- * of the License, or (at your option) any later version.                     *
- *                                                                            *
- * This program is distributed in the hope that it will be useful,            *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of             *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the              *
- * GNU General Public License for more details.                               *
- *                                                                            *
- * You should have received a copy of the GNU General Public License          *
- * along with this program; if not, write to the Free Software Foundation     *
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.             *
- ******************************************************************************/
+/* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */
 
 #include "icinga/customvarobject.hpp"
+#include "icinga/notificationresult.hpp"
+#include "base/array.hpp"
 #impl_include "icinga/notificationcommand.hpp"
 #impl_include "icinga/service.hpp"
 
@@ -27,12 +12,13 @@ namespace icinga
 {
 
 code {{{
-class I2_ICINGA_API NotificationNameComposer : public NameComposer
+class NotificationNameComposer : public NameComposer
 {
 public:
        virtual String MakeName(const String& shortName, const Object::Ptr& context) const;
        virtual Dictionary::Ptr ParseName(const String& name) const;
 };
+
 }}}
 
 class Notification : CustomVarObject < NotificationNameComposer
@@ -56,10 +42,10 @@ class Notification : CustomVarObject < NotificationNameComposer
        [config, protected] array(name(User)) users (UsersRaw);
        [config, protected] array(name(UserGroup)) user_groups (UserGroupsRaw);
        [config] Dictionary::Ptr times;
-       [config] array(double) types;
-       int type_filter_real (TypeFilter);
-       [config] array(double) states;
-       int state_filter_real (StateFilter);
+       [config] array(Value) types;
+       [no_user_view, no_user_modify] int type_filter_real (TypeFilter);
+       [config] array(Value) states;
+       [no_user_view, no_user_modify] int state_filter_real (StateFilter);
        [config, protected, required, navigation(host)] name(Host) host_name {
                navigate {{{
                        return Host::GetByName(GetHostName());
@@ -74,26 +60,35 @@ class Notification : CustomVarObject < NotificationNameComposer
 
                        if (!newValue.IsEmpty()) {
                                Service::Ptr service = Service::GetByNamePair(GetHostName(), newValue);
-                               DependencyGraph::RemoveDependency(this, service.get());
+                               DependencyGraph::AddDependency(this, service.get());
                        }
                }}}
                navigate {{{
                        if (GetServiceName().IsEmpty())
-                               return Service::Ptr();
+                               return nullptr;
 
                        Host::Ptr host = Host::GetByName(GetHostName());
                        return host->GetServiceByShortName(GetServiceName());
                }}}
        };
 
-       [state] Array::Ptr notified_users {
+       [state, no_user_modify] Array::Ptr notified_problem_users {
+               default {{{ return new Array(); }}}
+       };
+
+       [state, no_user_modify] bool no_more_notifications {
+               default {{{ return false; }}}
+       };
+
+       [state, no_user_view, no_user_modify] Array::Ptr stashed_notifications {
                default {{{ return new Array(); }}}
        };
 
-       [state] double last_notification;
-       [state] double next_notification;
-       [state, set_protected] Value notification_number;
-       [state] double last_problem_notification;
+       [state] Timestamp last_notification;
+       [state] Timestamp next_notification;
+       [state] int notification_number;
+       [state] Timestamp last_problem_notification;
+       [state] NotificationResult::Ptr last_notification_result;
 
        [config, navigation] name(Endpoint) command_endpoint (CommandEndpointRaw) {
                navigate {{{