public JSONObject getControllerAutobalancingStatus()

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;
    }