mirror of
https://github.com/Icinga/icinga2.git
synced 2025-07-26 23:24:09 +02:00
Handle when listener doesn't accept commands
This commit is contained in:
parent
3f490ac0e2
commit
300bc89cb6
@ -203,8 +203,29 @@ void ClusterEvents::ExecuteCheckFromQueue(const MessageOrigin::Ptr& origin, cons
|
|||||||
CheckResult::Ptr cr = new CheckResult();
|
CheckResult::Ptr cr = new CheckResult();
|
||||||
cr->SetState(ServiceUnknown);
|
cr->SetState(ServiceUnknown);
|
||||||
cr->SetOutput("Endpoint '" + Endpoint::GetLocalEndpoint()->GetName() + "' does not accept commands.");
|
cr->SetOutput("Endpoint '" + Endpoint::GetLocalEndpoint()->GetName() + "' does not accept commands.");
|
||||||
|
|
||||||
|
if (params->Contains("source")) {
|
||||||
|
Dictionary::Ptr executedParams = new Dictionary();
|
||||||
|
executedParams->Set("execution", params->Get("source"));
|
||||||
|
executedParams->Set("host", params->Get("host"));
|
||||||
|
if (params->Contains("service"))
|
||||||
|
executedParams->Set("service", params->Get("service"));
|
||||||
|
executedParams->Set("check_result", Serialize(cr));
|
||||||
|
|
||||||
|
if (origin->IsLocal()) {
|
||||||
|
ClusterEvents::ExecutedCommandAPIHandler(origin, executedParams);
|
||||||
|
} else {
|
||||||
|
Dictionary::Ptr executedMessage = new Dictionary();
|
||||||
|
executedMessage->Set("jsonrpc", "2.0");
|
||||||
|
executedMessage->Set("method", "event::ExecutedCommand");
|
||||||
|
executedMessage->Set("params", executedParams);
|
||||||
|
|
||||||
|
listener->SyncSendMessage(sourceEndpoint, executedMessage);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
Dictionary::Ptr message = MakeCheckResultMessage(host, cr);
|
Dictionary::Ptr message = MakeCheckResultMessage(host, cr);
|
||||||
listener->SyncSendMessage(sourceEndpoint, message);
|
listener->SyncSendMessage(sourceEndpoint, message);
|
||||||
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user