Improve output for the ido check task

refs #8688
This commit is contained in:
Gunnar Beutner 2015-03-12 11:51:02 +01:00
parent 8573636cc9
commit 52b33f560f
2 changed files with 16 additions and 4 deletions

View File

@ -18,7 +18,7 @@
******************************************************************************/
template CheckCommand "ido-check-command" {
execute = IdoCheck
execute = IdoCheck
}
object CheckCommand "ido" {

View File

@ -58,6 +58,13 @@ void IdoCheckTask::ScriptFunc(const Checkable::Ptr& checkable, const CheckResult
if (resolvedMacros && !useResolvedMacros)
return;
if (idoType.IsEmpty()) {
cr->SetOutput("Macro 'ido_type' must be set.");
cr->SetState(ServiceUnknown);
checkable->ProcessCheckResult(cr);
return;
}
String idoName = MacroProcessor::ResolveMacros("$ido_name$", resolvers, checkable->GetLastCheckResult(),
NULL, MacroProcessor::EscapeCallback(), resolvedMacros, useResolvedMacros);
@ -87,9 +94,14 @@ void IdoCheckTask::ScriptFunc(const Checkable::Ptr& checkable, const CheckResult
double qps = conn->GetQueryCount(60) / 60.0;
if (!conn->GetConnected() && conn->GetShouldConnect()) {
cr->SetOutput("Could not connect to the database server.");
cr->SetState(ServiceCritical);
if (!conn->GetConnected()) {
if (conn->GetShouldConnect()) {
cr->SetOutput("Could not connect to the database server.");
cr->SetState(ServiceCritical);
} else {
cr->SetOutput("Not currently enabled: Another cluster instance is responsible for the IDO database.");
cr->SetState(ServciceOK);
}
} else {
String schema_version = conn->GetSchemaVersion();