]> granicus.if.org Git - icinga2/blobdiff - lib/icinga/service.ti
Correct current_concurrent_checks to actually running checks
[icinga2] / lib / icinga / service.ti
index 8f524006d48b749250a01ee96af3182d15bcdefd..bab1ebc8f23eb6013c7e8c35aaaa06128777928c 100644 (file)
@@ -1,41 +1,35 @@
-/******************************************************************************
- * 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/checkable.hpp"
 #include "icinga/host.hpp"
 #include "icinga/icingaapplication.hpp"
 #include "icinga/customvarobject.hpp"
+#impl_include "icinga/servicegroup.hpp"
+
+library icinga;
 
 namespace icinga
 {
 
 code {{{
-class I2_ICINGA_API ServiceNameComposer : public NameComposer
+class ServiceNameComposer : public NameComposer
 {
 public:
        virtual String MakeName(const String& shortName, const Object::Ptr& context) const;
+       virtual Dictionary::Ptr ParseName(const String& name) const;
 };
 }}}
 
 class Service : Checkable < ServiceNameComposer
 {
+       load_after ApiListener;
+       load_after Endpoint;
        load_after Host;
+       load_after Zone;
+
+       [config, no_user_modify, required] array(name(ServiceGroup)) groups {
+               default {{{ return new Array(); }}}
+       };
 
        [config] String display_name {
                get {{{
@@ -45,7 +39,13 @@ class Service : Checkable < ServiceNameComposer
                                return m_DisplayName;
                }}}
        };
-       [config] String host_name;
+       [config, required] name(Host) host_name;
+       [no_storage, navigation] Host::Ptr host {
+               get;
+               navigate {{{
+                       return GetHost();
+               }}}
+       };
        [enum, no_storage] ServiceState "state" {
                get {{{
                        return GetStateRaw();
@@ -61,6 +61,10 @@ class Service : Checkable < ServiceNameComposer
                        return GetLastHardStateRaw();
                }}}
        };
+       [state] Timestamp last_state_ok (LastStateOK);
+       [state] Timestamp last_state_warning;
+       [state] Timestamp last_state_critical;
+       [state] Timestamp last_state_unknown;
 };
 
 }