]> granicus.if.org Git - icinga2/commitdiff
Embed constants into lib{base,icinga,db_ido}.
authorGunnar Beutner <gunnar.beutner@netways.de>
Tue, 17 Dec 2013 13:24:29 +0000 (14:24 +0100)
committerGunnar Beutner <gunnar.beutner@netways.de>
Tue, 17 Dec 2013 13:24:29 +0000 (14:24 +0100)
Fixes #5247

13 files changed:
itl/CMakeLists.txt
itl/constants.conf [deleted file]
itl/itl.conf
lib/base/dynamicobject.cpp
lib/base/dynamicobject.h
lib/base/scriptvariable.cpp
lib/base/scriptvariable.h
lib/db_ido/dbquery.cpp
lib/db_ido/dbquery.h
lib/icinga/checkresult.cpp
lib/icinga/checkresult.h
lib/icinga/notification.cpp
lib/icinga/notification.h

index 698f52a642c4fc707aa939e7c9df4b9d1cc09d6d..5bd37821bae37c100e6b63196bfe7e7fc4ba1816 100644 (file)
@@ -16,6 +16,6 @@
 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 
 install(
-  FILES command.conf command-common.conf constants.conf itl.conf timeperiod.conf
+  FILES command.conf command-common.conf itl.conf timeperiod.conf
   DESTINATION ${CMAKE_INSTALL_DATADIR}/icinga2/itl
 )
diff --git a/itl/constants.conf b/itl/constants.conf
deleted file mode 100644 (file)
index 09b2e26..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-/******************************************************************************
- * Icinga 2                                                                   *
- * Copyright (C) 2012-2013 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.             *
- ******************************************************************************/
-
-const StateOK = 0
-const StateWarning = 1
-const StateCritical = 2
-const StateUnknown = 3
-
-/*
- * Converting states to their filter values: 1<<state
- */
-const StateFilterOK = (1<<StateOK)
-const StateFilterWarning = (1<<StateWarning)
-const StateFilterCritical = (1<<StateCritical)
-const StateFilterUnknown = (1<<StateUnknown)
-
-const NotificationDowntimeStart = 0
-const NotificationDowntimeEnd = 1
-const NotificationDowntimeRemoved = 2
-const NotificationCustom = 3
-const NotificationAcknowledgement = 4
-const NotificationProblem = 5
-const NotificationRecovery = 6
-const NotificationFlappingStart = 7
-const NotificationFlappingEnd = 8
-
-/*
- * Converting notification types to their filter values: 1<<type
- */
-const NotificationFilterDowntimeStart = (1<<NotificationDowntimeStart)
-const NotificationFilterDowntimeEnd = (1<<NotificationDowntimeEnd)
-const NotificationFilterDowntimeRemoved = (1<<NotificationDowntimeRemoved)
-const NotificationFilterCustom = (1<<NotificationCustom)
-const NotificationFilterAcknowledgement = (1<<NotificationAcknowledgement)
-const NotificationFilterProblem = (1<<NotificationProblem)
-const NotificationFilterRecovery = (1<<NotificationRecovery)
-const NotificationFilterFlappingStart = (1<<NotificationFlappingStart)
-const NotificationFilterFlappingEnd = (1<<NotificationFlappingEnd)
-
-/*
- * Domain privilege flags
- */
-const DomainPrivRead = (1<<0)
-const DomainPrivCheckResult = (1<<1)
-const DomainPrivCommand = (1<<2)
-
-const DomainPrivReadOnly = (DomainPrivRead)
-const DomainPrivReadWrite = (DomainPrivRead | DomainPrivCheckResult | DomainPrivCommand)
-
-/*
- * IDO filter categories
- */
-const DbCatConfig = (1 << 0)
-const DbCatState = (1 << 1)
-const DbCatAcknowledgement = (1 << 2)
-const DbCatComment = (1 << 3)
-const DbCatDowntime = (1 << 4)
-const DbCatEventHandler = (1 << 5)
-const DbCatExternalCommand = (1 << 6)
-const DbCatFlapping = (1 << 7)
-const DbCatCheck = (1 << 8)
-const DbCatLog = (1 << 9)
-const DbCatNotification = (1 << 10)
-const DbCatProgramStatus = (1 << 11)
-const DbCatRetention = (1 << 12)
-const DbCatStateHistory = (1 << 13)
-
-const DbCatEverything = (~0)
index 6700e10add83e3db47bd3331f2c3269981f94cfa..9dbcd15a6cc8d6fa3f878a2cd45e6c535d787136 100644 (file)
@@ -22,7 +22,6 @@
  * configuration templates.
  */
 
-include "constants.conf"
 include "command.conf"
 include "command-common.conf"
 include "timeperiod.conf"
index 55beefa124eb4a66ee13d7de33ac9b50440bc30c..39a4647680f595df8214e4300eee7d8fb9e0f3b8 100644 (file)
@@ -28,6 +28,8 @@
 #include "base/logger_fwd.h"
 #include "base/exception.h"
 #include "base/scriptfunction.h"
+#include "base/initialize.h"
+#include "base/scriptvariable.h"
 #include <fstream>
 #include <boost/make_shared.hpp>
 #include <boost/foreach.hpp>
 using namespace icinga;
 
 REGISTER_TYPE(DynamicObject);
+INITIALIZE_ONCE(&DynamicObject::StaticInitialize);
 
 boost::signals2::signal<void (const DynamicObject::Ptr&)> DynamicObject::OnStarted;
 boost::signals2::signal<void (const DynamicObject::Ptr&)> DynamicObject::OnStopped;
 boost::signals2::signal<void (const DynamicObject::Ptr&)> DynamicObject::OnStateChanged;
 boost::signals2::signal<void (const DynamicObject::Ptr&, const String&, bool)> DynamicObject::OnAuthorityChanged;
 
+void DynamicObject::StaticInitialize(void)
+{
+       ScriptVariable::Set("DomainPrivRead", DomainPrivRead, true, true);
+       ScriptVariable::Set("DomainPrivCheckResult", DomainPrivCheckResult, true, true);
+       ScriptVariable::Set("DomainPrivCommand", DomainPrivCommand, true, true);
+
+       ScriptVariable::Set("DomainPrevReadOnly", DomainPrivRead, true, true);
+       ScriptVariable::Set("DomainPrivReadWrite", DomainPrivRead | DomainPrivCheckResult | DomainPrivCommand, true, true);
+}
+
 DynamicObject::DynamicObject(void)
 { }
 
index 9c7cfacb98e128e804e7cbe62fe084f7580c3adf..facf4ea8fee610e045c799a467a8c9bfe7291742 100644 (file)
@@ -52,6 +52,8 @@ class I2_BASE_API DynamicObject : public ObjectImpl<DynamicObject>
 public:
        DECLARE_PTR_TYPEDEFS(DynamicObject);
 
+       static void StaticInitialize(void);
+
        static boost::signals2::signal<void (const DynamicObject::Ptr&)> OnStarted;
        static boost::signals2::signal<void (const DynamicObject::Ptr&)> OnStopped;
        static boost::signals2::signal<void (const DynamicObject::Ptr&)> OnStateChanged;
index 1904cfe4e3c386f984be93e761cbd1034aad13c4..4a79efa466d36884e8094414dbf3622a56117295 100644 (file)
@@ -63,7 +63,7 @@ Value ScriptVariable::Get(const String& name)
        return sv->GetData();
 }
 
-ScriptVariable::Ptr ScriptVariable::Set(const String& name, const Value& value, bool overwrite)
+ScriptVariable::Ptr ScriptVariable::Set(const String& name, const Value& value, bool overwrite, bool make_const)
 {
        ScriptVariable::Ptr sv = GetByName(name);
 
@@ -77,6 +77,9 @@ ScriptVariable::Ptr ScriptVariable::Set(const String& name, const Value& value,
                sv->SetData(value);
        }
 
+       if (make_const)
+               sv->SetConstant(true);
+
        return sv;
 }
 
index a272df023c5f1931d103f29d08dbf937f1708562..1debd66e1c5abb8a3d5b5f2292ee4fcf64a8ca99 100644 (file)
@@ -49,7 +49,7 @@ public:
        static ScriptVariable::Ptr GetByName(const String& name);
 
        static Value Get(const String& name);
-       static ScriptVariable::Ptr Set(const String& name, const Value& value, bool overwrite = true);
+       static ScriptVariable::Ptr Set(const String& name, const Value& value, bool overwrite = true, bool make_const = false);
 
 private:
        Value m_Data;
index 91f80d99cf1b05c7ba49d3bb7c85280f8f785327..994230e2d781afe564245782b6fe26a1c6e3739b 100644 (file)
  ******************************************************************************/
 
 #include "db_ido/dbquery.h"
+#include "base/initialize.h"
+#include "base/scriptvariable.h"
 
 using namespace icinga;
+
+void DbQuery::StaticInitialize(void)
+{
+       ScriptVariable::Set("DbCatConfig", DbCatConfig, true, true);
+       ScriptVariable::Set("DbCatState", DbCatState, true, true);
+       ScriptVariable::Set("DbCatAcknowledgement", DbCatAcknowledgement, true, true);
+       ScriptVariable::Set("DbCatComment", DbCatComment, true, true);
+       ScriptVariable::Set("DbCatDowntime", DbCatDowntime, true, true);
+       ScriptVariable::Set("DbCatEventHandler", DbCatEventHandler, true, true);
+       ScriptVariable::Set("DbCatExternalCommand", DbCatExternalCommand, true, true);
+       ScriptVariable::Set("DbCatFlapping", DbCatFlapping, true, true);
+       ScriptVariable::Set("DbCatCheck", DbCatCheck, true, true);
+       ScriptVariable::Set("DbCatLog", DbCatLog, true, true);
+       ScriptVariable::Set("DbCatNotification", DbCatNotification, true, true);
+       ScriptVariable::Set("DbCatProgramStatus", DbCatProgramStatus, true, true);
+       ScriptVariable::Set("DbCatRetention", DbCatRetention, true, true);
+       ScriptVariable::Set("DbCatStateHistory", DbCatStateHistory, true, true);
+
+       ScriptVariable::Set("DbCatEverything", ~(unsigned int)0, true, true);
+}
index 71828e589763444a0664fbf03cb32dbe3438ef90..657b3ea4059b5d0923b0e22cf6c8cc9efa71c1c9 100644 (file)
@@ -68,6 +68,8 @@ struct I2_DB_IDO_API DbQuery
        bool ConfigUpdate;
        bool StatusUpdate;
 
+       static void StaticInitialize(void);
+
        DbQuery(void)
                : Type(0), Category(DbCatInvalid), ConfigUpdate(false), StatusUpdate(false)
        { }
index a73d4ce88be393ef5690e118e91e447b2c230943..b04d2723099ce454cc112ea130f99994ec654de0 100644 (file)
 
 #include "icinga/checkresult.h"
 #include "base/dynamictype.h"
+#include "base/initialize.h"
+#include "base/scriptvariable.h"
 
 using namespace icinga;
 
 REGISTER_TYPE(CheckResult);
+INITIALIZE_ONCE(&CheckResult::StaticInitialize);
+
+void CheckResult::StaticInitialize(void)
+{
+       ScriptVariable::Set("StateOK", StateOK, true, true);
+       ScriptVariable::Set("StateWarning", StateWarning, true, true);
+       ScriptVariable::Set("StateCritical", StateCritical, true, true);
+       ScriptVariable::Set("StateUnknown", StateUnknown, true, true);
+
+       ScriptVariable::Set("StateFilterOK", 1 << StateOK, true, true);
+       ScriptVariable::Set("StateFilterWarning", 1 << StateWarning, true, true);
+       ScriptVariable::Set("StateFilterCritical", 1 << StateCritical, true, true);
+       ScriptVariable::Set("StateFilterUnknown", 1 << StateUnknown, true, true);
+}
+
index 67a75238ca375ad172190092e9331494f1ece0af..7fe7dcb0fc3c25fda0a11c82dc4fb86abcab7c35 100644 (file)
@@ -35,6 +35,8 @@ class I2_ICINGA_API CheckResult : public ObjectImpl<CheckResult>
 {
 public:
        DECLARE_PTR_TYPEDEFS(CheckResult);
+
+       static void StaticInitialize(void);
 };
 
 }
index e89fd5c8d5f7a9b0aaf35a355d7a14dda0f96723..28a5aa72b3d77ccabbbd6a55fa90c75bb26b123f 100644 (file)
 #include "base/utility.h"
 #include "base/convert.h"
 #include "base/exception.h"
+#include "base/initialize.h"
+#include "base/scriptvariable.h"
 #include <boost/foreach.hpp>
 
 using namespace icinga;
 
 REGISTER_TYPE(Notification);
+INITIALIZE_ONCE(&Notification::StaticInitialize);
 
 boost::signals2::signal<void (const Notification::Ptr&, double, const String&)> Notification::OnNextNotificationChanged;
 
+void Notification::StaticInitialize(void)
+{
+       ScriptVariable::Set("NotificationDowntimeStart", NotificationDowntimeStart, true, true);
+       ScriptVariable::Set("NotificationDowntimeEnd", NotificationDowntimeEnd, true, true);
+       ScriptVariable::Set("NotificationDowntimeRemoved", NotificationDowntimeRemoved, true, true);
+       ScriptVariable::Set("NotificationCustom", NotificationCustom, true, true);
+       ScriptVariable::Set("NotificationAcknowledgement", NotificationAcknowledgement, true, true);
+       ScriptVariable::Set("NotificationProblem", NotificationProblem, true, true);
+       ScriptVariable::Set("NotificationRecovery", NotificationRecovery, true, true);
+       ScriptVariable::Set("NotificationFlappingStart", NotificationFlappingStart, true, true);
+       ScriptVariable::Set("NotificationFlappingEnd", NotificationFlappingEnd, true, true);
+
+       ScriptVariable::Set("NotificationFilterDowntimeStart", 1 << NotificationDowntimeStart, true, true);
+       ScriptVariable::Set("NotificationFilterDowntimeEnd", 1 << NotificationDowntimeEnd, true, true);
+       ScriptVariable::Set("NotificationFilterDowntimeRemoved", 1 << NotificationDowntimeRemoved, true, true);
+       ScriptVariable::Set("NotificationFilterCustom", 1 << NotificationCustom, true, true);
+       ScriptVariable::Set("NotificationFilterAcknowledgement", 1 << NotificationAcknowledgement, true, true);
+       ScriptVariable::Set("NotificationFilterProblem", 1 << NotificationProblem, true, true);
+       ScriptVariable::Set("NotificationFilterRecovery", 1 << NotificationRecovery, true, true);
+       ScriptVariable::Set("NotificationFilterFlappingStart", 1 << NotificationFlappingStart, true, true);
+       ScriptVariable::Set("NotificationFilterFlappingEnd", 1 << NotificationFlappingEnd, true, true);
+}
+
 void Notification::Start(void)
 {
        DynamicObject::Start();
index 87dffd97fbbcbc5019a20f01b0d1bb20a24a74ab..2e5066a6f2903332f2f70c4e6176225a13f0aa85 100644 (file)
@@ -62,6 +62,8 @@ public:
        DECLARE_PTR_TYPEDEFS(Notification);
        DECLARE_TYPENAME(Notification);
 
+       static void StaticInitialize(void);
+
        shared_ptr<Service> GetService(void) const;
        shared_ptr<NotificationCommand> GetNotificationCommand(void) const;
        TimePeriod::Ptr GetNotificationPeriod(void) const;