]> granicus.if.org Git - icinga2/blobdiff - lib/icinga/downtime.ti
Service: be handled while host is down
[icinga2] / lib / icinga / downtime.ti
index 774cc1d26d0e17be881bc6e19d422dd5b92d7fca..a55942fb048420be0b7ecd35392e5e9f349c5b4d 100644 (file)
@@ -1,21 +1,4 @@
-/******************************************************************************
- * Icinga 2                                                                   *
- * Copyright (C) 2012-2016 Icinga Development Team (https://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 "base/configobject.hpp"
 #include "base/utility.hpp"
@@ -27,7 +10,7 @@ namespace icinga
 {
 
 code {{{
-class I2_ICINGA_API DowntimeNameComposer : public NameComposer
+class DowntimeNameComposer : public NameComposer
 {
 public:
        virtual String MakeName(const String& shortName, const Object::Ptr& context) const;
@@ -37,6 +20,8 @@ public:
 
 class Downtime : ConfigObject < DowntimeNameComposer
 {
+       activation_priority -10;
+
        load_after Host;
        load_after Service;
 
@@ -54,36 +39,37 @@ class Downtime : ConfigObject < DowntimeNameComposer
 
                        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] double entry_time {
+       [config] Timestamp entry_time {
                default {{{ return Utility::GetTime(); }}}
        };
        [config, required] String author;
        [config, required] String comment;
-       [config] double start_time;
-       [config] double end_time;
-       [state] double trigger_time;
+       [config] Timestamp start_time;
+       [config] Timestamp end_time;
+       [state] Timestamp trigger_time;
        [config] bool fixed;
-       [config] double duration;
-       [config] name(Downtime) triggered_by;
+       [config] Timestamp duration;
+       [config] String triggered_by;
        [config] String scheduled_by;
        [state] Array::Ptr triggers {
                default {{{ return new Array(); }}}
        };
-       int legacy_id;
+       [state] int legacy_id;
        [state] bool was_cancelled;
        [config] String config_owner;
+       [config] String authoritative_zone;
 };
 
 }