Merge pull request #9779 from Icinga/macroprocessor-resolvemacro-quasi-cv-object-icingaapplication

MacroProcessor::ResolveMacro(): treat quasi-CV-object IcingaApplication as real CV-object
This commit is contained in:
Julian Brost 2023-05-31 20:41:31 +02:00 committed by GitHub
commit 7c381ae12f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 12 deletions

View File

@ -220,13 +220,6 @@ bool IcingaApplication::ResolveMacro(const String& macro, const CheckResult::Ptr
return true;
}
Dictionary::Ptr vars = GetVars();
if (vars && vars->Contains(macro)) {
*result = vars->Get(macro);
return true;
}
if (macro.Contains("num_services")) {
ServiceStatistics ss = CIB::CalculateServiceStats();

View File

@ -111,17 +111,24 @@ bool MacroProcessor::ResolveMacro(const String& macro, const ResolverList& resol
if (!resolver.ResolveShortMacros)
continue;
Dictionary::Ptr vars;
CustomVarObject::Ptr dobj = dynamic_pointer_cast<CustomVarObject>(resolver.Obj);
if (dobj) {
Dictionary::Ptr vars = dobj->GetVars();
vars = dobj->GetVars();
} else {
auto app (dynamic_pointer_cast<IcingaApplication>(resolver.Obj));
if (vars && vars->Contains(macro)) {
*result = vars->Get(macro);
*recursive_macro = true;
return true;
if (app) {
vars = app->GetVars();
}
}
if (vars && vars->Contains(macro)) {
*result = vars->Get(macro);
*recursive_macro = true;
return true;
}
}
auto *mresolver = dynamic_cast<MacroResolver *>(resolver.Obj.get());