From 530819d658f00479f890caed2747eb2e64e8dedc Mon Sep 17 00:00:00 2001 From: Gunnar Beutner Date: Fri, 13 Jul 2012 11:29:23 +0200 Subject: [PATCH] Implemented global macros. --- cib/host.cpp | 7 +++++++ cib/host.h | 1 + cib/macroprocessor.cpp | 15 +++++++++++++-- cib/macroprocessor.h | 4 ++-- cib/nagioschecktask.cpp | 7 ++++++- doc/icinga2-config.odt | Bin 30990 -> 31050 bytes icinga/icingaapplication.cpp | 6 ++++++ icinga/icingaapplication.h | 2 ++ 8 files changed, 37 insertions(+), 5 deletions(-) diff --git a/cib/host.cpp b/cib/host.cpp index 680d194d1..2b59cc98f 100644 --- a/cib/host.cpp +++ b/cib/host.cpp @@ -86,6 +86,13 @@ set Host::GetParents(void) const return parents; } +Dictionary::Ptr Host::GetMacros(void) const +{ + Dictionary::Ptr value; + GetProperty("macros", &value); + return value; +} + bool Host::IsReachable(void) const { Dictionary::Ptr dependencies; diff --git a/cib/host.h b/cib/host.h index 765831745..6a8ff828c 100644 --- a/cib/host.h +++ b/cib/host.h @@ -34,6 +34,7 @@ public: string GetAlias(void) const; Dictionary::Ptr GetGroups(void) const; set GetParents(void) const; + Dictionary::Ptr GetMacros(void) const; bool IsReachable(void) const; bool IsUp(void) const; diff --git a/cib/macroprocessor.cpp b/cib/macroprocessor.cpp index 413b499db..de5a25228 100644 --- a/cib/macroprocessor.cpp +++ b/cib/macroprocessor.cpp @@ -21,7 +21,7 @@ using namespace icinga; -string MacroProcessor::ResolveMacros(const string& str, const Dictionary::Ptr& macros) +string MacroProcessor::ResolveMacros(const string& str, const vector& macroDicts) { string::size_type offset, pos_first, pos_second; @@ -36,7 +36,18 @@ string MacroProcessor::ResolveMacros(const string& str, const Dictionary::Ptr& m string name = result.substr(pos_first + 1, pos_second - pos_first - 1); string value; - if (!macros || !macros->Get(name, &value)) + bool resolved = false; + + vector::const_iterator it; + for (it = macroDicts.begin(); it != macroDicts.end(); it++) { + Dictionary::Ptr macros = *it; + if (macros && macros->Get(name, &value)) { + resolved = true; + break; + } + } + + if (!resolved) throw runtime_error("Macro '" + name + "' is not defined."); result.replace(pos_first, pos_second - pos_first + 1, value); diff --git a/cib/macroprocessor.h b/cib/macroprocessor.h index 5dbe4e1cb..224485bb7 100644 --- a/cib/macroprocessor.h +++ b/cib/macroprocessor.h @@ -26,9 +26,9 @@ namespace icinga class I2_CIB_API MacroProcessor { public: - static string ResolveMacros(const string& str, const Dictionary::Ptr& macros); + static string ResolveMacros(const string& str, const vector& macroDicts); }; } -#endif /* MACROPROCESSOR_H */ \ No newline at end of file +#endif /* MACROPROCESSOR_H */ diff --git a/cib/nagioschecktask.cpp b/cib/nagioschecktask.cpp index f82a6f2c6..ae96f9594 100644 --- a/cib/nagioschecktask.cpp +++ b/cib/nagioschecktask.cpp @@ -34,7 +34,12 @@ NagiosCheckTask::NagiosCheckTask(const Service& service) : CheckTask(service), m_FP(NULL), m_UsePopen(false) { string checkCommand = service.GetCheckCommand(); - m_Command = MacroProcessor::ResolveMacros(checkCommand, service.GetMacros()); + + vector macroDicts; + macroDicts.push_back(service.GetMacros()); + macroDicts.push_back(service.GetHost().GetMacros()); + macroDicts.push_back(IcingaApplication::GetInstance()->GetMacros()); + m_Command = MacroProcessor::ResolveMacros(checkCommand, macroDicts); } void NagiosCheckTask::Enqueue(void) diff --git a/doc/icinga2-config.odt b/doc/icinga2-config.odt index 39db6b130a1e708d471c22b871bd24cfb6622d6f..2b59128663e3de8e05524d4a0efed9520e8b6963 100644 GIT binary patch delta 8952 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 diff --git a/icinga/icingaapplication.cpp b/icinga/icingaapplication.cpp index 5d98f1687..a6b97bdca 100644 --- a/icinga/icingaapplication.cpp +++ b/icinga/icingaapplication.cpp @@ -170,6 +170,7 @@ int IcingaApplication::Main(const vector& args) icingaConfig->GetProperty("node", &m_Node); icingaConfig->GetProperty("service", &m_Service); icingaConfig->GetProperty("pidpath", &m_PidPath); + icingaConfig->GetProperty("macros", &m_Macros); string logpath; if (icingaConfig->GetProperty("logpath", &logpath)) { @@ -314,6 +315,11 @@ string IcingaApplication::GetPidPath(void) const return m_PidPath; } +Dictionary::Ptr IcingaApplication::GetMacros(void) const +{ + return m_Macros; +} + time_t IcingaApplication::GetStartTime(void) const { return m_StartTime; diff --git a/icinga/icingaapplication.h b/icinga/icingaapplication.h index bf15401f0..dc40af147 100644 --- a/icinga/icingaapplication.h +++ b/icinga/icingaapplication.h @@ -45,6 +45,7 @@ public: string GetNode(void) const; string GetService(void) const; string GetPidPath(void) const; + Dictionary::Ptr GetMacros(void) const; time_t GetStartTime(void) const; @@ -56,6 +57,7 @@ private: string m_Node; string m_Service; string m_PidPath; + Dictionary::Ptr m_Macros; time_t m_StartTime; -- 2.50.1