|
@@ -814,7 +814,8 @@ bool CWsWorkunitsEx::onWUQuerysets(IEspContext &context, IEspWUQuerysetsRequest
|
|
|
|
|
|
void addClusterQueryStates(IPropertyTree* queriesOnCluster, const char *target, const char *id, IArrayOf<IEspClusterQueryState>& clusterStates, double version)
|
|
|
{
|
|
|
- queriesOnCluster = queriesOnCluster->queryPropTree("Endpoint[1]/Queries[1]");
|
|
|
+ if (queriesOnCluster)
|
|
|
+ queriesOnCluster = queriesOnCluster->queryPropTree("Endpoint[1]/Queries[1]");
|
|
|
if (!queriesOnCluster)
|
|
|
return;
|
|
|
|
|
@@ -824,21 +825,24 @@ void addClusterQueryStates(IPropertyTree* queriesOnCluster, const char *target,
|
|
|
clusterState->setCluster(target);
|
|
|
|
|
|
VStringBuffer xpath("Query[@id='%s']", id);
|
|
|
- IPropertyTree *query = queriesOnCluster->getPropTree(xpath.str());
|
|
|
- int suspended = query->getPropInt("@suspended");
|
|
|
- const char* error = query->queryProp("@error");
|
|
|
+ IPropertyTree *query = queriesOnCluster->queryPropTree(xpath.str());
|
|
|
if (!query)
|
|
|
clusterState->setState("Not Found");
|
|
|
- else if (suspended)
|
|
|
+ else
|
|
|
{
|
|
|
- clusterState->setState("Suspended");
|
|
|
- if (suspended<reporting)
|
|
|
- clusterState->setMixedNodeStates(true);
|
|
|
+ int suspended = query->getPropInt("@suspended");
|
|
|
+ const char* error = query->queryProp("@error");
|
|
|
+ if (0==suspended)
|
|
|
+ clusterState->setState("Available");
|
|
|
+ else
|
|
|
+ {
|
|
|
+ clusterState->setState("Suspended");
|
|
|
+ if (suspended<reporting)
|
|
|
+ clusterState->setMixedNodeStates(true);
|
|
|
+ }
|
|
|
+ if (error && *error)
|
|
|
+ clusterState->setErrors(error);
|
|
|
}
|
|
|
- else
|
|
|
- clusterState->setState("Available");
|
|
|
- if ((version >=1.46) && error && *error)
|
|
|
- clusterState->setErrors(error);
|
|
|
|
|
|
clusterStates.append(*clusterState.getClear());
|
|
|
}
|