CheckerComponent#CheckThreadProc(): also propagate next check update to Icinga DB

if caused by dependency or check period.

Now as long as any of the above causes check skips
next check and next update will be up-to-date in Icinga DB,
so the checkable won't slide into false positive overdue.
This commit is contained in:
Alexander A. Klimov 2023-02-01 16:25:56 +01:00
parent 11e37a0bd1
commit e9b8c67975

View File

@ -134,12 +134,15 @@ void CheckerComponent::CheckThreadProc()
bool forced = checkable->GetForceNextCheck();
bool check = true;
bool notifyNextCheck = false;
if (!forced) {
if (!checkable->IsReachable(DependencyCheckExecution)) {
Log(LogNotice, "CheckerComponent")
<< "Skipping check for object '" << checkable->GetName() << "': Dependency failed.";
check = false;
notifyNextCheck = true;
}
Host::Ptr host;
@ -163,7 +166,9 @@ void CheckerComponent::CheckThreadProc()
Log(LogNotice, "CheckerComponent")
<< "Skipping check for object '" << checkable->GetName()
<< "': not in check period '" << tp->GetName() << "'";
check = false;
notifyNextCheck = true;
}
}
@ -177,6 +182,11 @@ void CheckerComponent::CheckThreadProc()
checkable->UpdateNextCheck();
if (notifyNextCheck) {
// Trigger update event for Icinga DB
Checkable::OnNextCheckUpdated(checkable);
}
lock.lock();
continue;