in uReplicator-Manager/src/main/java/com/uber/stream/kafka/mirrormaker/manager/core/AdminHelper.java [48:78]
public JSONObject getControllerAutobalancingStatus(String srcCluster, String dstCluster) {
JSONObject retVal = new JSONObject();
String pipelineFilter = "";
if (StringUtils.isNotEmpty(srcCluster) && StringUtils.isNotEmpty(dstCluster)) {
pipelineFilter = ControllerUtils.getPipelineName(srcCluster, dstCluster);
}
Map<String, PriorityQueue<InstanceTopicPartitionHolder>> map = helixManager.getPipelineToInstanceMap();
for(String pipeline : map.keySet()) {
if (pipelineFilter.isEmpty() || pipelineFilter.equals(pipeline)) {
PriorityQueue<InstanceTopicPartitionHolder> routes =
helixManager.getPipelineToInstanceMap().get(pipeline);
if (routes != null) {
for (InstanceTopicPartitionHolder route : routes) {
String instanceName = route.getInstanceName();
JSONObject status = new JSONObject();
status.put("pipeline", pipeline);
status.put("hostname", instanceName); //TODO: merge with instanceID change
try {
boolean autoBalance = helixManager.getControllerAutobalancingStatus(instanceName);
status.put("autoBalance", autoBalance);
} catch (ControllerException ex) {
LOGGER.error("failed to get controller autobalancing status of instanceName {}, error {}", instanceName, ex);
status.put("autoBalance", false);
}
retVal.put(instanceName, status);
}
}
}
}
return retVal;
}