diff --git a/lib/methods/clusterchecktask.cpp b/lib/methods/clusterchecktask.cpp index 35cede3c3..85604dd62 100644 --- a/lib/methods/clusterchecktask.cpp +++ b/lib/methods/clusterchecktask.cpp @@ -58,19 +58,25 @@ void ClusterCheckTask::ScriptFunc(const Checkable::Ptr& checkable, const CheckRe std::pair feature_stats = CIB::GetFeatureStats(); cr->SetPerformanceData(feature_stats.second); - String connected_endpoints = FormatArray(status->Get("conn_endpoints")); - String not_connected_endpoints = FormatArray(status->Get("not_conn_endpoints")); + int numConnEndpoints = status->Get("num_conn_endpoints"); + int numNotConnEndpoints = status->Get("num_not_conn_endpoints"); + + String output = "Icinga 2 Cluster"; + + if (numNotConnEndpoints > 0) { + output += " Problem: " + Convert::ToString(numNotConnEndpoints) + " endpoints are not connected."; + output += "\n(" + FormatArray(status->Get("not_conn_endpoints")) + ")"; - if (status->Get("num_not_conn_endpoints") > 0) { cr->SetState(ServiceCritical); - cr->SetOutput("Icinga 2 Cluster Problem: " + Convert::ToString(status->Get("num_not_conn_endpoints")) + - " Endpoints (" + not_connected_endpoints + ") not connected."); } else { + output += " OK: " + Convert::ToString(numConnEndpoints) + " endpoints are connected."; + output += "\n(" + FormatArray(status->Get("conn_endpoints")) + ")"; + cr->SetState(ServiceOK); - cr->SetOutput("Icinga 2 Cluster is running: Connected Endpoints: "+ Convert::ToString(status->Get("num_conn_endpoints")) + - " (" + connected_endpoints + ")."); } + cr->SetOutput(output); + checkable->ProcessCheckResult(cr); }