#include "icinga/service.hpp"
#include "config/configitembuilder.hpp"
#include "config/applyrule.hpp"
+#include "config/configcompilercontext.hpp"
#include "base/initialize.hpp"
#include "base/dynamictype.hpp"
#include "base/logger_fwd.hpp"
#include "base/context.hpp"
#include "base/workqueue.hpp"
+#include "base/configerror.hpp"
#include <boost/foreach.hpp>
using namespace icinga;
BOOST_FOREACH(const Host::Ptr& host, DynamicType::GetObjectsByType<Host>()) {
CONTEXT("Evaluating 'apply' rules for host '" + host->GetName() + "'");
- if (EvaluateApplyRuleOne(host, rule))
- apply_count++;
+ try {
+ if (EvaluateApplyRuleOne(host, rule))
+ apply_count++;
+ } catch (const ConfigError& ex) {
+ const DebugInfo *di = boost::get_error_info<errinfo_debuginfo>(ex);
+ ConfigCompilerContext::GetInstance()->AddMessage(true, ex.what(), di ? *di : DebugInfo());
+ }
}
if (apply_count == 0)
BOOST_FOREACH(const Service::Ptr& service, DynamicType::GetObjectsByType<Service>()) {
CONTEXT("Evaluating 'apply' rules for Service '" + service->GetName() + "'");
- if (EvaluateApplyRuleOne(service, rule))
- apply_count++;
+ try {
+ if (EvaluateApplyRuleOne(service, rule))
+ apply_count++;
+ } catch (const ConfigError& ex) {
+ const DebugInfo *di = boost::get_error_info<errinfo_debuginfo>(ex);
+ ConfigCompilerContext::GetInstance()->AddMessage(true, ex.what(), di ? *di : DebugInfo());
+ }
}
if (apply_count == 0)
#include "icinga/service.hpp"
#include "config/configitembuilder.hpp"
#include "config/applyrule.hpp"
+#include "config/configcompilercontext.hpp"
#include "base/initialize.hpp"
#include "base/dynamictype.hpp"
#include "base/logger_fwd.hpp"
#include "base/context.hpp"
#include "base/workqueue.hpp"
+#include "base/configerror.hpp"
#include <boost/foreach.hpp>
using namespace icinga;
BOOST_FOREACH(const Host::Ptr& host, DynamicType::GetObjectsByType<Host>()) {
CONTEXT("Evaluating 'apply' rules for host '" + host->GetName() + "'");
- if (EvaluateApplyRuleOne(host, rule))
- apply_count++;
+ try {
+ if (EvaluateApplyRuleOne(host, rule))
+ apply_count++;
+ } catch (const ConfigError& ex) {
+ const DebugInfo *di = boost::get_error_info<errinfo_debuginfo>(ex);
+ ConfigCompilerContext::GetInstance()->AddMessage(true, ex.what(), di ? *di : DebugInfo());
+ }
}
if (apply_count == 0)
BOOST_FOREACH(const Service::Ptr& service, DynamicType::GetObjectsByType<Service>()) {
CONTEXT("Evaluating 'apply' rules for Service '" + service->GetName() + "'");
- if (EvaluateApplyRuleOne(service, rule))
- apply_count++;
+ try {
+ if (EvaluateApplyRuleOne(service, rule))
+ apply_count++;
+ } catch (const ConfigError& ex) {
+ const DebugInfo *di = boost::get_error_info<errinfo_debuginfo>(ex);
+ ConfigCompilerContext::GetInstance()->AddMessage(true, ex.what(), di ? *di : DebugInfo());
+ }
}
if (apply_count == 0)
#include "icinga/service.hpp"
#include "config/configitembuilder.hpp"
#include "config/applyrule.hpp"
+#include "config/configcompilercontext.hpp"
#include "base/initialize.hpp"
#include "base/dynamictype.hpp"
#include "base/logger_fwd.hpp"
#include "base/context.hpp"
+#include "base/configerror.hpp"
#include <boost/foreach.hpp>
using namespace icinga;
BOOST_FOREACH(const Host::Ptr& host, DynamicType::GetObjectsByType<Host>()) {
CONTEXT("Evaluating 'apply' rules for host '" + host->GetName() + "'");
- if (EvaluateApplyRule(host, rule))
- apply_count++;
+ try {
+ if (EvaluateApplyRule(host, rule))
+ apply_count++;
+ } catch (const ConfigError& ex) {
+ const DebugInfo *di = boost::get_error_info<errinfo_debuginfo>(ex);
+ ConfigCompilerContext::GetInstance()->AddMessage(true, ex.what(), di ? *di : DebugInfo());
+ }
}
if (apply_count == 0)
BOOST_FOREACH(const Service::Ptr& service, DynamicType::GetObjectsByType<Service>()) {
CONTEXT("Evaluating 'apply' rules for Service '" + service->GetName() + "'");
- if(EvaluateApplyRule(service, rule))
- apply_count++;
+ try {
+ if(EvaluateApplyRule(service, rule))
+ apply_count++;
+ } catch (const ConfigError& ex) {
+ const DebugInfo *di = boost::get_error_info<errinfo_debuginfo>(ex);
+ ConfigCompilerContext::GetInstance()->AddMessage(true, ex.what(), di ? *di : DebugInfo());
+ }
}
if (apply_count == 0)
#include "icinga/service.hpp"
#include "config/configitembuilder.hpp"
#include "config/applyrule.hpp"
+#include "config/configcompilercontext.hpp"
#include "base/initialize.hpp"
#include "base/dynamictype.hpp"
#include "base/logger_fwd.hpp"
#include "base/context.hpp"
#include "base/workqueue.hpp"
+#include "base/configerror.hpp"
#include <boost/foreach.hpp>
using namespace icinga;
BOOST_FOREACH(const Host::Ptr& host, DynamicType::GetObjectsByType<Host>()) {
CONTEXT("Evaluating 'apply' rules for host '" + host->GetName() + "'");
- if (EvaluateApplyRuleOne(host, rule))
- apply_count++;
+ try {
+ if (EvaluateApplyRuleOne(host, rule))
+ apply_count++;
+ } catch (const ConfigError& ex) {
+ const DebugInfo *di = boost::get_error_info<errinfo_debuginfo>(ex);
+ ConfigCompilerContext::GetInstance()->AddMessage(true, ex.what(), di ? *di : DebugInfo());
+ }
}
if (apply_count == 0)