mirror of https://github.com/Icinga/icinga2.git
parent
e309a5d330
commit
4966dfd241
|
@ -261,6 +261,39 @@ bool Host::ResolveMacro(const String& macro, const CheckResult::Ptr&, String *re
|
||||||
String key;
|
String key;
|
||||||
Dictionary::Ptr vars;
|
Dictionary::Ptr vars;
|
||||||
|
|
||||||
|
/* special treatment for address macros providing name fallback */
|
||||||
|
if (macro == "address" || macro == "address6") {
|
||||||
|
vars = GetVars();
|
||||||
|
|
||||||
|
String value;
|
||||||
|
if (vars && vars->Contains(macro))
|
||||||
|
value = vars->Get(key);
|
||||||
|
|
||||||
|
if (value.IsEmpty()) {
|
||||||
|
*result = GetName();
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
*result = value;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (macro == "host.vars.address" || macro == "host.vars.address6") {
|
||||||
|
key = macro.SubStr(10);
|
||||||
|
vars = GetVars();
|
||||||
|
|
||||||
|
String value;
|
||||||
|
if (vars && vars->Contains(macro))
|
||||||
|
value = vars->Get(key);
|
||||||
|
|
||||||
|
if (value.IsEmpty()) {
|
||||||
|
*result = GetName();
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
*result = value;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* require prefix for object macros */
|
/* require prefix for object macros */
|
||||||
if (macro.SubStr(0, 5) == "host.") {
|
if (macro.SubStr(0, 5) == "host.") {
|
||||||
key = macro.SubStr(5);
|
key = macro.SubStr(5);
|
||||||
|
|
Loading…
Reference in New Issue