mirror of https://github.com/Icinga/icinga2.git
Centralise default icinga.* and env.* macros
This commit is contained in:
parent
b2b49caf61
commit
f2974c07cf
|
@ -1,7 +1,6 @@
|
||||||
/* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */
|
/* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */
|
||||||
|
|
||||||
#include "db_ido/idochecktask.hpp"
|
#include "db_ido/idochecktask.hpp"
|
||||||
#include "icinga/envresolver.hpp"
|
|
||||||
#include "icinga/host.hpp"
|
#include "icinga/host.hpp"
|
||||||
#include "icinga/checkcommand.hpp"
|
#include "icinga/checkcommand.hpp"
|
||||||
#include "icinga/macroprocessor.hpp"
|
#include "icinga/macroprocessor.hpp"
|
||||||
|
@ -61,8 +60,6 @@ void IdoCheckTask::ScriptFunc(const Checkable::Ptr& checkable, const CheckResult
|
||||||
resolvers.emplace_back("service", service);
|
resolvers.emplace_back("service", service);
|
||||||
resolvers.emplace_back("host", host);
|
resolvers.emplace_back("host", host);
|
||||||
resolvers.emplace_back("command", commandObj);
|
resolvers.emplace_back("command", commandObj);
|
||||||
resolvers.emplace_back("icinga", IcingaApplication::GetInstance());
|
|
||||||
resolvers.emplace_back("env", new EnvResolver(), false);
|
|
||||||
|
|
||||||
String idoType = MacroProcessor::ResolveMacros("$ido_type$", resolvers, checkable->GetLastCheckResult(),
|
String idoType = MacroProcessor::ResolveMacros("$ido_type$", resolvers, checkable->GetLastCheckResult(),
|
||||||
nullptr, MacroProcessor::EscapeCallback(), resolvedMacros, useResolvedMacros);
|
nullptr, MacroProcessor::EscapeCallback(), resolvedMacros, useResolvedMacros);
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
|
|
||||||
#include "icinga/apiactions.hpp"
|
#include "icinga/apiactions.hpp"
|
||||||
#include "icinga/checkable.hpp"
|
#include "icinga/checkable.hpp"
|
||||||
#include "icinga/envresolver.hpp"
|
|
||||||
#include "icinga/service.hpp"
|
#include "icinga/service.hpp"
|
||||||
#include "icinga/servicegroup.hpp"
|
#include "icinga/servicegroup.hpp"
|
||||||
#include "icinga/hostgroup.hpp"
|
#include "icinga/hostgroup.hpp"
|
||||||
|
@ -668,8 +667,6 @@ Dictionary::Ptr ApiActions::ExecuteCommand(const ConfigObject::Ptr& object, cons
|
||||||
resolvers.emplace_back("service", service);
|
resolvers.emplace_back("service", service);
|
||||||
|
|
||||||
resolvers.emplace_back("host", host);
|
resolvers.emplace_back("host", host);
|
||||||
resolvers.emplace_back("icinga", IcingaApplication::GetInstance());
|
|
||||||
resolvers.emplace_back("env", new EnvResolver(), false);
|
|
||||||
|
|
||||||
String resolved_endpoint = MacroProcessor::ResolveMacros(
|
String resolved_endpoint = MacroProcessor::ResolveMacros(
|
||||||
endpoint, resolvers, checkable->GetLastCheckResult(),
|
endpoint, resolvers, checkable->GetLastCheckResult(),
|
||||||
|
|
|
@ -3,6 +3,8 @@
|
||||||
#include "icinga/macroprocessor.hpp"
|
#include "icinga/macroprocessor.hpp"
|
||||||
#include "icinga/macroresolver.hpp"
|
#include "icinga/macroresolver.hpp"
|
||||||
#include "icinga/customvarobject.hpp"
|
#include "icinga/customvarobject.hpp"
|
||||||
|
#include "icinga/envresolver.hpp"
|
||||||
|
#include "icinga/icingaapplication.hpp"
|
||||||
#include "base/array.hpp"
|
#include "base/array.hpp"
|
||||||
#include "base/objectlock.hpp"
|
#include "base/objectlock.hpp"
|
||||||
#include "base/logger.hpp"
|
#include "base/logger.hpp"
|
||||||
|
@ -73,6 +75,16 @@ Value MacroProcessor::ResolveMacros(const Value& str, const ResolverList& resolv
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const EnvResolver::Ptr l_EnvResolver = new EnvResolver();
|
||||||
|
|
||||||
|
static MacroProcessor::ResolverList GetDefaultResolvers()
|
||||||
|
{
|
||||||
|
return {
|
||||||
|
{ "icinga", IcingaApplication::GetInstance() },
|
||||||
|
{ "env", l_EnvResolver, false }
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
bool MacroProcessor::ResolveMacro(const String& macro, const ResolverList& resolvers,
|
bool MacroProcessor::ResolveMacro(const String& macro, const ResolverList& resolvers,
|
||||||
const CheckResult::Ptr& cr, Value *result, bool *recursive_macro)
|
const CheckResult::Ptr& cr, Value *result, bool *recursive_macro)
|
||||||
{
|
{
|
||||||
|
@ -88,80 +100,84 @@ bool MacroProcessor::ResolveMacro(const String& macro, const ResolverList& resol
|
||||||
tokens.erase(tokens.begin());
|
tokens.erase(tokens.begin());
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const ResolverSpec& resolver : resolvers) {
|
const auto defaultResolvers (GetDefaultResolvers());
|
||||||
if (!objName.IsEmpty() && objName != resolver.Name)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (objName.IsEmpty()) {
|
for (auto resolverList : {&resolvers, &defaultResolvers}) {
|
||||||
if (!resolver.ResolveShortMacros)
|
for (auto& resolver : *resolverList) {
|
||||||
|
if (!objName.IsEmpty() && objName != resolver.Name)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
CustomVarObject::Ptr dobj = dynamic_pointer_cast<CustomVarObject>(resolver.Obj);
|
if (objName.IsEmpty()) {
|
||||||
|
if (!resolver.ResolveShortMacros)
|
||||||
if (dobj) {
|
|
||||||
Dictionary::Ptr vars = dobj->GetVars();
|
|
||||||
|
|
||||||
if (vars && vars->Contains(macro)) {
|
|
||||||
*result = vars->Get(macro);
|
|
||||||
*recursive_macro = true;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
auto *mresolver = dynamic_cast<MacroResolver *>(resolver.Obj.get());
|
|
||||||
|
|
||||||
if (mresolver && mresolver->ResolveMacro(boost::algorithm::join(tokens, "."), cr, result))
|
|
||||||
return true;
|
|
||||||
|
|
||||||
Value ref = resolver.Obj;
|
|
||||||
bool valid = true;
|
|
||||||
|
|
||||||
for (const String& token : tokens) {
|
|
||||||
if (ref.IsObjectType<Dictionary>()) {
|
|
||||||
Dictionary::Ptr dict = ref;
|
|
||||||
if (dict->Contains(token)) {
|
|
||||||
ref = dict->Get(token);
|
|
||||||
continue;
|
continue;
|
||||||
} else {
|
|
||||||
valid = false;
|
CustomVarObject::Ptr dobj = dynamic_pointer_cast<CustomVarObject>(resolver.Obj);
|
||||||
break;
|
|
||||||
|
if (dobj) {
|
||||||
|
Dictionary::Ptr vars = dobj->GetVars();
|
||||||
|
|
||||||
|
if (vars && vars->Contains(macro)) {
|
||||||
|
*result = vars->Get(macro);
|
||||||
|
*recursive_macro = true;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else if (ref.IsObject()) {
|
|
||||||
Object::Ptr object = ref;
|
|
||||||
|
|
||||||
Type::Ptr type = object->GetReflectionType();
|
|
||||||
|
|
||||||
if (!type) {
|
|
||||||
valid = false;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
int field = type->GetFieldId(token);
|
|
||||||
|
|
||||||
if (field == -1) {
|
|
||||||
valid = false;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
ref = object->GetField(field);
|
|
||||||
|
|
||||||
Field fieldInfo = type->GetFieldInfo(field);
|
|
||||||
|
|
||||||
if (strcmp(fieldInfo.TypeName, "Timestamp") == 0)
|
|
||||||
ref = static_cast<long>(ref);
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (valid) {
|
auto *mresolver = dynamic_cast<MacroResolver *>(resolver.Obj.get());
|
||||||
if (tokens[0] == "vars" ||
|
|
||||||
tokens[0] == "action_url" ||
|
|
||||||
tokens[0] == "notes_url" ||
|
|
||||||
tokens[0] == "notes")
|
|
||||||
*recursive_macro = true;
|
|
||||||
|
|
||||||
*result = ref;
|
if (mresolver && mresolver->ResolveMacro(boost::algorithm::join(tokens, "."), cr, result))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
Value ref = resolver.Obj;
|
||||||
|
bool valid = true;
|
||||||
|
|
||||||
|
for (const String& token : tokens) {
|
||||||
|
if (ref.IsObjectType<Dictionary>()) {
|
||||||
|
Dictionary::Ptr dict = ref;
|
||||||
|
if (dict->Contains(token)) {
|
||||||
|
ref = dict->Get(token);
|
||||||
|
continue;
|
||||||
|
} else {
|
||||||
|
valid = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else if (ref.IsObject()) {
|
||||||
|
Object::Ptr object = ref;
|
||||||
|
|
||||||
|
Type::Ptr type = object->GetReflectionType();
|
||||||
|
|
||||||
|
if (!type) {
|
||||||
|
valid = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
int field = type->GetFieldId(token);
|
||||||
|
|
||||||
|
if (field == -1) {
|
||||||
|
valid = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
ref = object->GetField(field);
|
||||||
|
|
||||||
|
Field fieldInfo = type->GetFieldInfo(field);
|
||||||
|
|
||||||
|
if (strcmp(fieldInfo.TypeName, "Timestamp") == 0)
|
||||||
|
ref = static_cast<long>(ref);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (valid) {
|
||||||
|
if (tokens[0] == "vars" ||
|
||||||
|
tokens[0] == "action_url" ||
|
||||||
|
tokens[0] == "notes_url" ||
|
||||||
|
tokens[0] == "notes")
|
||||||
|
*recursive_macro = true;
|
||||||
|
|
||||||
|
*result = ref;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -173,9 +189,12 @@ Value MacroProcessor::EvaluateFunction(const Function::Ptr& func, const Resolver
|
||||||
const Dictionary::Ptr& resolvedMacros, bool useResolvedMacros, int recursionLevel)
|
const Dictionary::Ptr& resolvedMacros, bool useResolvedMacros, int recursionLevel)
|
||||||
{
|
{
|
||||||
Dictionary::Ptr resolvers_this = new Dictionary();
|
Dictionary::Ptr resolvers_this = new Dictionary();
|
||||||
|
const auto defaultResolvers (GetDefaultResolvers());
|
||||||
|
|
||||||
for (const ResolverSpec& resolver : resolvers) {
|
for (auto resolverList : {&resolvers, &defaultResolvers}) {
|
||||||
resolvers_this->Set(resolver.Name, resolver.Obj);
|
for (auto& resolver: *resolverList) {
|
||||||
|
resolvers_this->Set(resolver.Name, resolver.Obj);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
auto internalResolveMacrosShim = [resolvers, cr, resolvedMacros, useResolvedMacros, recursionLevel](const std::vector<Value>& args) {
|
auto internalResolveMacrosShim = [resolvers, cr, resolvedMacros, useResolvedMacros, recursionLevel](const std::vector<Value>& args) {
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
/* Icinga 2 | (c) 2022 Icinga GmbH | GPLv2+ */
|
/* Icinga 2 | (c) 2022 Icinga GmbH | GPLv2+ */
|
||||||
|
|
||||||
#include "icingadb/icingadbchecktask.hpp"
|
#include "icingadb/icingadbchecktask.hpp"
|
||||||
#include "icinga/envresolver.hpp"
|
|
||||||
#include "icinga/host.hpp"
|
#include "icinga/host.hpp"
|
||||||
#include "icinga/checkcommand.hpp"
|
#include "icinga/checkcommand.hpp"
|
||||||
#include "icinga/macroprocessor.hpp"
|
#include "icinga/macroprocessor.hpp"
|
||||||
|
@ -62,8 +61,6 @@ void IcingadbCheckTask::ScriptFunc(const Checkable::Ptr& checkable, const CheckR
|
||||||
resolvers.emplace_back("service", service);
|
resolvers.emplace_back("service", service);
|
||||||
resolvers.emplace_back("host", host);
|
resolvers.emplace_back("host", host);
|
||||||
resolvers.emplace_back("command", commandObj);
|
resolvers.emplace_back("command", commandObj);
|
||||||
resolvers.emplace_back("icinga", IcingaApplication::GetInstance());
|
|
||||||
resolvers.emplace_back("env", new EnvResolver(), false);
|
|
||||||
|
|
||||||
auto resolve ([&](const String& macro) {
|
auto resolve ([&](const String& macro) {
|
||||||
return MacroProcessor::ResolveMacros(macro, resolvers, checkable->GetLastCheckResult(),
|
return MacroProcessor::ResolveMacros(macro, resolvers, checkable->GetLastCheckResult(),
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
#include "livestatus/hoststable.hpp"
|
#include "livestatus/hoststable.hpp"
|
||||||
#include "livestatus/hostgroupstable.hpp"
|
#include "livestatus/hostgroupstable.hpp"
|
||||||
#include "livestatus/endpointstable.hpp"
|
#include "livestatus/endpointstable.hpp"
|
||||||
#include "icinga/envresolver.hpp"
|
|
||||||
#include "icinga/host.hpp"
|
#include "icinga/host.hpp"
|
||||||
#include "icinga/service.hpp"
|
#include "icinga/service.hpp"
|
||||||
#include "icinga/hostgroup.hpp"
|
#include "icinga/hostgroup.hpp"
|
||||||
|
@ -11,7 +10,6 @@
|
||||||
#include "icinga/eventcommand.hpp"
|
#include "icinga/eventcommand.hpp"
|
||||||
#include "icinga/timeperiod.hpp"
|
#include "icinga/timeperiod.hpp"
|
||||||
#include "icinga/macroprocessor.hpp"
|
#include "icinga/macroprocessor.hpp"
|
||||||
#include "icinga/icingaapplication.hpp"
|
|
||||||
#include "icinga/compatutility.hpp"
|
#include "icinga/compatutility.hpp"
|
||||||
#include "icinga/pluginutility.hpp"
|
#include "icinga/pluginutility.hpp"
|
||||||
#include "base/configtype.hpp"
|
#include "base/configtype.hpp"
|
||||||
|
@ -316,8 +314,6 @@ Value HostsTable::NotesExpandedAccessor(const Value& row)
|
||||||
|
|
||||||
MacroProcessor::ResolverList resolvers {
|
MacroProcessor::ResolverList resolvers {
|
||||||
{ "host", host },
|
{ "host", host },
|
||||||
{ "icinga", IcingaApplication::GetInstance() },
|
|
||||||
{ "env", new EnvResolver(), false }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return MacroProcessor::ResolveMacros(host->GetNotes(), resolvers);
|
return MacroProcessor::ResolveMacros(host->GetNotes(), resolvers);
|
||||||
|
@ -342,8 +338,6 @@ Value HostsTable::NotesUrlExpandedAccessor(const Value& row)
|
||||||
|
|
||||||
MacroProcessor::ResolverList resolvers {
|
MacroProcessor::ResolverList resolvers {
|
||||||
{ "host", host },
|
{ "host", host },
|
||||||
{ "icinga", IcingaApplication::GetInstance() },
|
|
||||||
{ "env", new EnvResolver(), false }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return MacroProcessor::ResolveMacros(host->GetNotesUrl(), resolvers);
|
return MacroProcessor::ResolveMacros(host->GetNotesUrl(), resolvers);
|
||||||
|
@ -368,8 +362,6 @@ Value HostsTable::ActionUrlExpandedAccessor(const Value& row)
|
||||||
|
|
||||||
MacroProcessor::ResolverList resolvers {
|
MacroProcessor::ResolverList resolvers {
|
||||||
{ "host", host },
|
{ "host", host },
|
||||||
{ "icinga", IcingaApplication::GetInstance() },
|
|
||||||
{ "env", new EnvResolver(), false }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return MacroProcessor::ResolveMacros(host->GetActionUrl(), resolvers);
|
return MacroProcessor::ResolveMacros(host->GetActionUrl(), resolvers);
|
||||||
|
@ -426,8 +418,6 @@ Value HostsTable::IconImageExpandedAccessor(const Value& row)
|
||||||
|
|
||||||
MacroProcessor::ResolverList resolvers {
|
MacroProcessor::ResolverList resolvers {
|
||||||
{ "host", host },
|
{ "host", host },
|
||||||
{ "icinga", IcingaApplication::GetInstance() },
|
|
||||||
{ "env", new EnvResolver(), false }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return MacroProcessor::ResolveMacros(host->GetIconImage(), resolvers);
|
return MacroProcessor::ResolveMacros(host->GetIconImage(), resolvers);
|
||||||
|
|
|
@ -9,11 +9,9 @@
|
||||||
#include "icinga/servicegroup.hpp"
|
#include "icinga/servicegroup.hpp"
|
||||||
#include "icinga/hostgroup.hpp"
|
#include "icinga/hostgroup.hpp"
|
||||||
#include "icinga/checkcommand.hpp"
|
#include "icinga/checkcommand.hpp"
|
||||||
#include "icinga/envresolver.hpp"
|
|
||||||
#include "icinga/eventcommand.hpp"
|
#include "icinga/eventcommand.hpp"
|
||||||
#include "icinga/timeperiod.hpp"
|
#include "icinga/timeperiod.hpp"
|
||||||
#include "icinga/macroprocessor.hpp"
|
#include "icinga/macroprocessor.hpp"
|
||||||
#include "icinga/icingaapplication.hpp"
|
|
||||||
#include "icinga/compatutility.hpp"
|
#include "icinga/compatutility.hpp"
|
||||||
#include "icinga/pluginutility.hpp"
|
#include "icinga/pluginutility.hpp"
|
||||||
#include "base/configtype.hpp"
|
#include "base/configtype.hpp"
|
||||||
|
@ -373,8 +371,6 @@ Value ServicesTable::NotesExpandedAccessor(const Value& row)
|
||||||
MacroProcessor::ResolverList resolvers {
|
MacroProcessor::ResolverList resolvers {
|
||||||
{ "service", service },
|
{ "service", service },
|
||||||
{ "host", service->GetHost() },
|
{ "host", service->GetHost() },
|
||||||
{ "icinga", IcingaApplication::GetInstance() },
|
|
||||||
{ "env", new EnvResolver(), false }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return MacroProcessor::ResolveMacros(service->GetNotes(), resolvers);
|
return MacroProcessor::ResolveMacros(service->GetNotes(), resolvers);
|
||||||
|
@ -400,8 +396,6 @@ Value ServicesTable::NotesUrlExpandedAccessor(const Value& row)
|
||||||
MacroProcessor::ResolverList resolvers {
|
MacroProcessor::ResolverList resolvers {
|
||||||
{ "service", service },
|
{ "service", service },
|
||||||
{ "host", service->GetHost() },
|
{ "host", service->GetHost() },
|
||||||
{ "icinga", IcingaApplication::GetInstance() },
|
|
||||||
{ "env", new EnvResolver(), false }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return MacroProcessor::ResolveMacros(service->GetNotesUrl(), resolvers);
|
return MacroProcessor::ResolveMacros(service->GetNotesUrl(), resolvers);
|
||||||
|
@ -427,8 +421,6 @@ Value ServicesTable::ActionUrlExpandedAccessor(const Value& row)
|
||||||
MacroProcessor::ResolverList resolvers {
|
MacroProcessor::ResolverList resolvers {
|
||||||
{ "service", service },
|
{ "service", service },
|
||||||
{ "host", service->GetHost() },
|
{ "host", service->GetHost() },
|
||||||
{ "icinga", IcingaApplication::GetInstance() },
|
|
||||||
{ "env", new EnvResolver(), false }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return MacroProcessor::ResolveMacros(service->GetActionUrl(), resolvers);
|
return MacroProcessor::ResolveMacros(service->GetActionUrl(), resolvers);
|
||||||
|
@ -454,8 +446,6 @@ Value ServicesTable::IconImageExpandedAccessor(const Value& row)
|
||||||
MacroProcessor::ResolverList resolvers {
|
MacroProcessor::ResolverList resolvers {
|
||||||
{ "service", service },
|
{ "service", service },
|
||||||
{ "host", service->GetHost() },
|
{ "host", service->GetHost() },
|
||||||
{ "icinga", IcingaApplication::GetInstance() },
|
|
||||||
{ "env", new EnvResolver(), false }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return MacroProcessor::ResolveMacros(service->GetIconImage(), resolvers);
|
return MacroProcessor::ResolveMacros(service->GetIconImage(), resolvers);
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
|
|
||||||
#include "methods/clusterzonechecktask.hpp"
|
#include "methods/clusterzonechecktask.hpp"
|
||||||
#include "icinga/checkcommand.hpp"
|
#include "icinga/checkcommand.hpp"
|
||||||
#include "icinga/envresolver.hpp"
|
|
||||||
#include "icinga/macroprocessor.hpp"
|
#include "icinga/macroprocessor.hpp"
|
||||||
#include "remote/apilistener.hpp"
|
#include "remote/apilistener.hpp"
|
||||||
#include "remote/endpoint.hpp"
|
#include "remote/endpoint.hpp"
|
||||||
|
@ -64,8 +63,6 @@ void ClusterZoneCheckTask::ScriptFunc(const Checkable::Ptr& checkable, const Che
|
||||||
resolvers.emplace_back("service", service);
|
resolvers.emplace_back("service", service);
|
||||||
resolvers.emplace_back("host", host);
|
resolvers.emplace_back("host", host);
|
||||||
resolvers.emplace_back("command", command);
|
resolvers.emplace_back("command", command);
|
||||||
resolvers.emplace_back("icinga", IcingaApplication::GetInstance());
|
|
||||||
resolvers.emplace_back("env", new EnvResolver(), false);
|
|
||||||
|
|
||||||
String zoneName = MacroProcessor::ResolveMacros("$cluster_zone$", resolvers, checkable->GetLastCheckResult(),
|
String zoneName = MacroProcessor::ResolveMacros("$cluster_zone$", resolvers, checkable->GetLastCheckResult(),
|
||||||
nullptr, MacroProcessor::EscapeCallback(), resolvedMacros, useResolvedMacros);
|
nullptr, MacroProcessor::EscapeCallback(), resolvedMacros, useResolvedMacros);
|
||||||
|
|
|
@ -4,8 +4,6 @@
|
||||||
# include <stdlib.h>
|
# include <stdlib.h>
|
||||||
#endif /* _WIN32 */
|
#endif /* _WIN32 */
|
||||||
#include "methods/dummychecktask.hpp"
|
#include "methods/dummychecktask.hpp"
|
||||||
#include "icinga/envresolver.hpp"
|
|
||||||
#include "icinga/icingaapplication.hpp"
|
|
||||||
#include "icinga/pluginutility.hpp"
|
#include "icinga/pluginutility.hpp"
|
||||||
#include "base/utility.hpp"
|
#include "base/utility.hpp"
|
||||||
#include "base/perfdatavalue.hpp"
|
#include "base/perfdatavalue.hpp"
|
||||||
|
@ -38,8 +36,6 @@ void DummyCheckTask::ScriptFunc(const Checkable::Ptr& checkable, const CheckResu
|
||||||
resolvers.emplace_back("service", service);
|
resolvers.emplace_back("service", service);
|
||||||
resolvers.emplace_back("host", host);
|
resolvers.emplace_back("host", host);
|
||||||
resolvers.emplace_back("command", command);
|
resolvers.emplace_back("command", command);
|
||||||
resolvers.emplace_back("icinga", IcingaApplication::GetInstance());
|
|
||||||
resolvers.emplace_back("env", new EnvResolver(), false);
|
|
||||||
|
|
||||||
int dummyState = MacroProcessor::ResolveMacros("$dummy_state$", resolvers, checkable->GetLastCheckResult(),
|
int dummyState = MacroProcessor::ResolveMacros("$dummy_state$", resolvers, checkable->GetLastCheckResult(),
|
||||||
nullptr, MacroProcessor::EscapeCallback(), resolvedMacros, useResolvedMacros);
|
nullptr, MacroProcessor::EscapeCallback(), resolvedMacros, useResolvedMacros);
|
||||||
|
|
|
@ -2,11 +2,9 @@
|
||||||
|
|
||||||
#include "methods/icingachecktask.hpp"
|
#include "methods/icingachecktask.hpp"
|
||||||
#include "icinga/cib.hpp"
|
#include "icinga/cib.hpp"
|
||||||
#include "icinga/envresolver.hpp"
|
|
||||||
#include "icinga/service.hpp"
|
#include "icinga/service.hpp"
|
||||||
#include "icinga/checkcommand.hpp"
|
#include "icinga/checkcommand.hpp"
|
||||||
#include "icinga/macroprocessor.hpp"
|
#include "icinga/macroprocessor.hpp"
|
||||||
#include "icinga/icingaapplication.hpp"
|
|
||||||
#include "icinga/clusterevents.hpp"
|
#include "icinga/clusterevents.hpp"
|
||||||
#include "icinga/checkable.hpp"
|
#include "icinga/checkable.hpp"
|
||||||
#include "remote/apilistener.hpp"
|
#include "remote/apilistener.hpp"
|
||||||
|
@ -42,8 +40,6 @@ void IcingaCheckTask::ScriptFunc(const Checkable::Ptr& checkable, const CheckRes
|
||||||
resolvers.emplace_back("service", service);
|
resolvers.emplace_back("service", service);
|
||||||
resolvers.emplace_back("host", host);
|
resolvers.emplace_back("host", host);
|
||||||
resolvers.emplace_back("command", command);
|
resolvers.emplace_back("command", command);
|
||||||
resolvers.emplace_back("icinga", IcingaApplication::GetInstance());
|
|
||||||
resolvers.emplace_back("env", new EnvResolver(), false);
|
|
||||||
|
|
||||||
String missingIcingaMinVersion;
|
String missingIcingaMinVersion;
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,9 @@
|
||||||
/* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */
|
/* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */
|
||||||
|
|
||||||
#include "methods/pluginchecktask.hpp"
|
#include "methods/pluginchecktask.hpp"
|
||||||
#include "icinga/envresolver.hpp"
|
|
||||||
#include "icinga/pluginutility.hpp"
|
#include "icinga/pluginutility.hpp"
|
||||||
#include "icinga/checkcommand.hpp"
|
#include "icinga/checkcommand.hpp"
|
||||||
#include "icinga/macroprocessor.hpp"
|
#include "icinga/macroprocessor.hpp"
|
||||||
#include "icinga/icingaapplication.hpp"
|
|
||||||
#include "base/configtype.hpp"
|
#include "base/configtype.hpp"
|
||||||
#include "base/logger.hpp"
|
#include "base/logger.hpp"
|
||||||
#include "base/function.hpp"
|
#include "base/function.hpp"
|
||||||
|
@ -38,8 +36,6 @@ void PluginCheckTask::ScriptFunc(const Checkable::Ptr& checkable, const CheckRes
|
||||||
resolvers.emplace_back("service", service);
|
resolvers.emplace_back("service", service);
|
||||||
resolvers.emplace_back("host", host);
|
resolvers.emplace_back("host", host);
|
||||||
resolvers.emplace_back("command", commandObj);
|
resolvers.emplace_back("command", commandObj);
|
||||||
resolvers.emplace_back("icinga", IcingaApplication::GetInstance());
|
|
||||||
resolvers.emplace_back("env", new EnvResolver(), false);
|
|
||||||
|
|
||||||
int timeout = commandObj->GetTimeout();
|
int timeout = commandObj->GetTimeout();
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,9 @@
|
||||||
/* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */
|
/* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */
|
||||||
|
|
||||||
#include "methods/plugineventtask.hpp"
|
#include "methods/plugineventtask.hpp"
|
||||||
#include "icinga/envresolver.hpp"
|
|
||||||
#include "icinga/eventcommand.hpp"
|
#include "icinga/eventcommand.hpp"
|
||||||
#include "icinga/macroprocessor.hpp"
|
#include "icinga/macroprocessor.hpp"
|
||||||
#include "icinga/pluginutility.hpp"
|
#include "icinga/pluginutility.hpp"
|
||||||
#include "icinga/icingaapplication.hpp"
|
|
||||||
#include "base/configtype.hpp"
|
#include "base/configtype.hpp"
|
||||||
#include "base/logger.hpp"
|
#include "base/logger.hpp"
|
||||||
#include "base/function.hpp"
|
#include "base/function.hpp"
|
||||||
|
@ -37,8 +35,6 @@ void PluginEventTask::ScriptFunc(const Checkable::Ptr& checkable,
|
||||||
resolvers.emplace_back("service", service);
|
resolvers.emplace_back("service", service);
|
||||||
resolvers.emplace_back("host", host);
|
resolvers.emplace_back("host", host);
|
||||||
resolvers.emplace_back("command", commandObj);
|
resolvers.emplace_back("command", commandObj);
|
||||||
resolvers.emplace_back("icinga", IcingaApplication::GetInstance());
|
|
||||||
resolvers.emplace_back("env", new EnvResolver(), false);
|
|
||||||
|
|
||||||
int timeout = commandObj->GetTimeout();
|
int timeout = commandObj->GetTimeout();
|
||||||
std::function<void(const Value& commandLine, const ProcessResult&)> callback;
|
std::function<void(const Value& commandLine, const ProcessResult&)> callback;
|
||||||
|
|
|
@ -1,13 +1,11 @@
|
||||||
/* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */
|
/* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */
|
||||||
|
|
||||||
#include "methods/pluginnotificationtask.hpp"
|
#include "methods/pluginnotificationtask.hpp"
|
||||||
#include "icinga/envresolver.hpp"
|
|
||||||
#include "icinga/notification.hpp"
|
#include "icinga/notification.hpp"
|
||||||
#include "icinga/notificationcommand.hpp"
|
#include "icinga/notificationcommand.hpp"
|
||||||
#include "icinga/pluginutility.hpp"
|
#include "icinga/pluginutility.hpp"
|
||||||
#include "icinga/service.hpp"
|
#include "icinga/service.hpp"
|
||||||
#include "icinga/macroprocessor.hpp"
|
#include "icinga/macroprocessor.hpp"
|
||||||
#include "icinga/icingaapplication.hpp"
|
|
||||||
#include "base/function.hpp"
|
#include "base/function.hpp"
|
||||||
#include "base/logger.hpp"
|
#include "base/logger.hpp"
|
||||||
#include "base/utility.hpp"
|
#include "base/utility.hpp"
|
||||||
|
@ -54,8 +52,6 @@ void PluginNotificationTask::ScriptFunc(const Notification::Ptr& notification,
|
||||||
resolvers.emplace_back("service", service);
|
resolvers.emplace_back("service", service);
|
||||||
resolvers.emplace_back("host", host);
|
resolvers.emplace_back("host", host);
|
||||||
resolvers.emplace_back("command", commandObj);
|
resolvers.emplace_back("command", commandObj);
|
||||||
resolvers.emplace_back("icinga", IcingaApplication::GetInstance());
|
|
||||||
resolvers.emplace_back("env", new EnvResolver(), false);
|
|
||||||
|
|
||||||
int timeout = commandObj->GetTimeout();
|
int timeout = commandObj->GetTimeout();
|
||||||
std::function<void(const Value& commandLine, const ProcessResult&)> callback;
|
std::function<void(const Value& commandLine, const ProcessResult&)> callback;
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
/* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */
|
/* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */
|
||||||
|
|
||||||
#include "methods/sleepchecktask.hpp"
|
#include "methods/sleepchecktask.hpp"
|
||||||
#include "icinga/envresolver.hpp"
|
|
||||||
#include "icinga/icingaapplication.hpp"
|
|
||||||
#include "icinga/pluginutility.hpp"
|
#include "icinga/pluginutility.hpp"
|
||||||
#include "base/utility.hpp"
|
#include "base/utility.hpp"
|
||||||
#include "base/convert.hpp"
|
#include "base/convert.hpp"
|
||||||
|
@ -34,8 +32,6 @@ void SleepCheckTask::ScriptFunc(const Checkable::Ptr& checkable, const CheckResu
|
||||||
resolvers.emplace_back("service", service);
|
resolvers.emplace_back("service", service);
|
||||||
resolvers.emplace_back("host", host);
|
resolvers.emplace_back("host", host);
|
||||||
resolvers.emplace_back("command", commandObj);
|
resolvers.emplace_back("command", commandObj);
|
||||||
resolvers.emplace_back("icinga", IcingaApplication::GetInstance());
|
|
||||||
resolvers.emplace_back("env", new EnvResolver(), false);
|
|
||||||
|
|
||||||
double sleepTime = MacroProcessor::ResolveMacros("$sleep_time$", resolvers, checkable->GetLastCheckResult(),
|
double sleepTime = MacroProcessor::ResolveMacros("$sleep_time$", resolvers, checkable->GetLastCheckResult(),
|
||||||
nullptr, MacroProcessor::EscapeCallback(), resolvedMacros, useResolvedMacros);
|
nullptr, MacroProcessor::EscapeCallback(), resolvedMacros, useResolvedMacros);
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
|
|
||||||
#include "perfdata/graphitewriter.hpp"
|
#include "perfdata/graphitewriter.hpp"
|
||||||
#include "perfdata/graphitewriter-ti.cpp"
|
#include "perfdata/graphitewriter-ti.cpp"
|
||||||
#include "icinga/envresolver.hpp"
|
|
||||||
#include "icinga/service.hpp"
|
#include "icinga/service.hpp"
|
||||||
#include "icinga/checkcommand.hpp"
|
#include "icinga/checkcommand.hpp"
|
||||||
#include "icinga/macroprocessor.hpp"
|
#include "icinga/macroprocessor.hpp"
|
||||||
|
@ -294,8 +293,6 @@ void GraphiteWriter::CheckResultHandlerInternal(const Checkable::Ptr& checkable,
|
||||||
if (service)
|
if (service)
|
||||||
resolvers.emplace_back("service", service);
|
resolvers.emplace_back("service", service);
|
||||||
resolvers.emplace_back("host", host);
|
resolvers.emplace_back("host", host);
|
||||||
resolvers.emplace_back("icinga", IcingaApplication::GetInstance());
|
|
||||||
resolvers.emplace_back("env", new EnvResolver(), false);
|
|
||||||
|
|
||||||
String prefix;
|
String prefix;
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
#include "perfdata/influxdbcommonwriter.hpp"
|
#include "perfdata/influxdbcommonwriter.hpp"
|
||||||
#include "perfdata/influxdbcommonwriter-ti.cpp"
|
#include "perfdata/influxdbcommonwriter-ti.cpp"
|
||||||
#include "remote/url.hpp"
|
#include "remote/url.hpp"
|
||||||
#include "icinga/envresolver.hpp"
|
|
||||||
#include "icinga/service.hpp"
|
#include "icinga/service.hpp"
|
||||||
#include "icinga/macroprocessor.hpp"
|
#include "icinga/macroprocessor.hpp"
|
||||||
#include "icinga/icingaapplication.hpp"
|
#include "icinga/icingaapplication.hpp"
|
||||||
|
@ -225,8 +224,6 @@ void InfluxdbCommonWriter::CheckResultHandlerWQ(const Checkable::Ptr& checkable,
|
||||||
if (service)
|
if (service)
|
||||||
resolvers.emplace_back("service", service);
|
resolvers.emplace_back("service", service);
|
||||||
resolvers.emplace_back("host", host);
|
resolvers.emplace_back("host", host);
|
||||||
resolvers.emplace_back("icinga", IcingaApplication::GetInstance());
|
|
||||||
resolvers.emplace_back("env", new EnvResolver(), false);
|
|
||||||
|
|
||||||
String prefix;
|
String prefix;
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
|
|
||||||
#include "perfdata/opentsdbwriter.hpp"
|
#include "perfdata/opentsdbwriter.hpp"
|
||||||
#include "perfdata/opentsdbwriter-ti.cpp"
|
#include "perfdata/opentsdbwriter-ti.cpp"
|
||||||
#include "icinga/envresolver.hpp"
|
|
||||||
#include "icinga/service.hpp"
|
#include "icinga/service.hpp"
|
||||||
#include "icinga/checkcommand.hpp"
|
#include "icinga/checkcommand.hpp"
|
||||||
#include "icinga/macroprocessor.hpp"
|
#include "icinga/macroprocessor.hpp"
|
||||||
|
@ -196,9 +195,7 @@ void OpenTsdbWriter::CheckResultHandler(const Checkable::Ptr& checkable, const C
|
||||||
if (service)
|
if (service)
|
||||||
resolvers.emplace_back("service", service);
|
resolvers.emplace_back("service", service);
|
||||||
resolvers.emplace_back("host", host);
|
resolvers.emplace_back("host", host);
|
||||||
resolvers.emplace_back("icinga", IcingaApplication::GetInstance());
|
|
||||||
resolvers.emplace_back("env", new EnvResolver(), false);
|
|
||||||
|
|
||||||
// Resolve macros for the service and host template config line
|
// Resolve macros for the service and host template config line
|
||||||
if (config_tmpl_tags) {
|
if (config_tmpl_tags) {
|
||||||
ObjectLock olock(config_tmpl_tags);
|
ObjectLock olock(config_tmpl_tags);
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
|
|
||||||
#include "perfdata/perfdatawriter.hpp"
|
#include "perfdata/perfdatawriter.hpp"
|
||||||
#include "perfdata/perfdatawriter-ti.cpp"
|
#include "perfdata/perfdatawriter-ti.cpp"
|
||||||
#include "icinga/envresolver.hpp"
|
|
||||||
#include "icinga/service.hpp"
|
#include "icinga/service.hpp"
|
||||||
#include "icinga/macroprocessor.hpp"
|
#include "icinga/macroprocessor.hpp"
|
||||||
#include "icinga/icingaapplication.hpp"
|
#include "icinga/icingaapplication.hpp"
|
||||||
|
@ -117,8 +116,6 @@ void PerfdataWriter::CheckResultHandler(const Checkable::Ptr& checkable, const C
|
||||||
if (service)
|
if (service)
|
||||||
resolvers.emplace_back("service", service);
|
resolvers.emplace_back("service", service);
|
||||||
resolvers.emplace_back("host", host);
|
resolvers.emplace_back("host", host);
|
||||||
resolvers.emplace_back("icinga", IcingaApplication::GetInstance());
|
|
||||||
resolvers.emplace_back("env", new EnvResolver(), false);
|
|
||||||
|
|
||||||
if (service) {
|
if (service) {
|
||||||
String line = MacroProcessor::ResolveMacros(GetServiceFormatTemplate(), resolvers, cr, nullptr, &PerfdataWriter::EscapeMacroMetric);
|
String line = MacroProcessor::ResolveMacros(GetServiceFormatTemplate(), resolvers, cr, nullptr, &PerfdataWriter::EscapeMacroMetric);
|
||||||
|
|
Loading…
Reference in New Issue