public StringBuilder adminQueryBrokerRunStatusInfo()

in inlong-tubemq/tubemq-server/src/main/java/org/apache/inlong/tubemq/server/master/web/handler/WebBrokerConfHandler.java [558:710]


    public StringBuilder adminQueryBrokerRunStatusInfo(HttpServletRequest req,
            StringBuilder sBuffer,
            ProcessResult result) {
        BrokerConfEntity qryEntity = new BrokerConfEntity();
        // get queried operation info, for createUser, modifyUser, dataVersionId
        if (!WebParameterUtils.getQueriedOperateInfo(req, qryEntity, sBuffer, result)) {
            WebParameterUtils.buildFailResult(sBuffer, result.getErrMsg());
            return sBuffer;
        }
        // check and get brokerId field
        if (!WebParameterUtils.getIntParamValue(req,
                WebFieldDef.COMPSBROKERID, false, sBuffer, result)) {
            WebParameterUtils.buildFailResult(sBuffer, result.getErrMsg());
            return sBuffer;
        }
        final Set<Integer> brokerIds = (Set<Integer>) result.getRetData();
        // get brokerIp info
        if (!WebParameterUtils.getStringParamValue(req,
                WebFieldDef.COMPBROKERIP, false, null, sBuffer, result)) {
            WebParameterUtils.buildFailResult(sBuffer, result.getErrMsg());
            return sBuffer;
        }
        final Set<String> brokerIpSet = (Set<String>) result.getRetData();
        // get withDetail info
        if (!WebParameterUtils.getBooleanParamValue(req,
                WebFieldDef.WITHDETAIL, false, false, sBuffer, result)) {
            WebParameterUtils.buildFailResult(sBuffer, result.getErrMsg());
            return sBuffer;
        }
        boolean withDetail = (Boolean) result.getRetData();
        // get onlyAbnormal info
        if (!WebParameterUtils.getBooleanParamValue(req,
                WebFieldDef.ONLYABNORMAL, false, false, sBuffer, result)) {
            WebParameterUtils.buildFailResult(sBuffer, result.getErrMsg());
            return sBuffer;
        }
        boolean onlyAbnormal = (Boolean) result.getRetData();
        // get onlyAutoForbidden info
        if (!WebParameterUtils.getBooleanParamValue(req,
                WebFieldDef.ONLYAUTOFBD, false, false, sBuffer, result)) {
            WebParameterUtils.buildFailResult(sBuffer, result.getErrMsg());
            return sBuffer;
        }
        boolean onlyAutoForbidden = (Boolean) result.getRetData();
        // get onlyEnableTLS info
        if (!WebParameterUtils.getBooleanParamValue(req,
                WebFieldDef.ONLYENABLETLS, false, false, sBuffer, result)) {
            WebParameterUtils.buildFailResult(sBuffer, result.getErrMsg());
            return sBuffer;
        }
        boolean onlyEnableTLS = (Boolean) result.getRetData();
        // query current broker configures
        Map<Integer, BrokerConfEntity> brokerConfEntityMap =
                defMetaDataService.getBrokerConfInfo(brokerIds, brokerIpSet, null);
        BrokerAbnHolder abnHolder = master.getBrokerAbnHolder();
        BrokerRunManager brokerRunManager = master.getBrokerRunManager();
        Map<Integer, BrokerAbnHolder.BrokerAbnInfo> brokerAbnInfoMap =
                abnHolder.getBrokerAbnormalMap();
        Map<Integer, BrokerAbnHolder.BrokerFbdInfo> brokerFbdInfoMap =
                abnHolder.getAutoForbiddenBrokerMapInfo();
        int totalCnt = 0;
        WebParameterUtils.buildSuccessWithDataRetBegin(sBuffer);
        for (BrokerConfEntity entity : brokerConfEntityMap.values()) {
            BrokerAbnHolder.BrokerAbnInfo brokerAbnInfo =
                    brokerAbnInfoMap.get(entity.getBrokerId());
            if (onlyAbnormal && brokerAbnInfo == null) {
                continue;
            }
            BrokerAbnHolder.BrokerFbdInfo brokerForbInfo =
                    brokerFbdInfoMap.get(entity.getBrokerId());
            if (onlyAutoForbidden && brokerForbInfo == null) {
                continue;
            }
            BrokerInfo brokerInfo = brokerRunManager.getBrokerInfo(entity.getBrokerId());
            if (onlyEnableTLS && (brokerInfo == null || !brokerInfo.isEnableTLS())) {
                continue;
            }
            if (totalCnt++ > 0) {
                sBuffer.append(",");
            }
            sBuffer.append("{\"brokerId\":").append(entity.getBrokerId())
                    .append(",\"brokerIp\":\"").append(entity.getBrokerIp())
                    .append("\",\"brokerPort\":").append(entity.getBrokerPort())
                    .append(",\"brokerWebPort\":").append(entity.getBrokerWebPort())
                    .append(",\"manageStatus\":\"").append(entity.getManageStatusStr()).append("\"");
            if (brokerInfo == null) {
                sBuffer.append(",\"brokerTLSPort\":").append(entity.getBrokerTLSPort())
                        .append(",\"enableTLS\":\"-\"");
            } else {
                sBuffer.append(",\"brokerTLSPort\":").append(entity.getBrokerTLSPort())
                        .append(",\"enableTLS\":").append(brokerInfo.isEnableTLS());
            }
            if (brokerAbnInfo == null) {
                sBuffer.append(",\"isRepAbnormal\":false");
            } else {
                sBuffer.append(",\"isRepAbnormal\":true,\"repStatus\":")
                        .append(brokerAbnInfo.getAbnStatus());
            }
            if (brokerForbInfo == null) {
                sBuffer.append(",\"isAutoForbidden\":false");
            } else {
                sBuffer.append(",\"isAutoForbidden\":true");
            }
            if (entity.getManageStatus() == ManageStatus.STATUS_MANAGE_APPLY) {
                sBuffer.append(",\"runStatus\":\"-\",\"subStatus\":\"-\"")
                        .append(",\"isConfChanged\":\"-\",\"isConfLoaded\":\"-\",\"isBrokerOnline\":\"-\"")
                        .append(",\"brokerVersion\":\"-\",\"acceptPublish\":\"-\",\"acceptSubscribe\":\"-\"");
            } else {
                Tuple2<Boolean, Boolean> pubSubTuple =
                        entity.getManageStatus().getPubSubStatus();
                BrokerRunStatusInfo runStatusInfo =
                        brokerRunManager.getBrokerRunStatusInfo(entity.getBrokerId());
                if (runStatusInfo == null) {
                    sBuffer.append(",\"runStatus\":\"unRegister\",\"subStatus\":\"-\"")
                            .append(",\"isConfChanged\":\"-\",\"isConfLoaded\":\"-\",\"isBrokerOnline\":\"-\"")
                            .append(",\"brokerVersion\":\"-\",\"acceptPublish\":\"-\",\"acceptSubscribe\":\"-\"");
                } else {
                    StepStatus stepStatus = runStatusInfo.getCurStepStatus();
                    if (runStatusInfo.isOnline()) {
                        if (stepStatus == StepStatus.STEP_STATUS_UNDEFINED) {
                            sBuffer.append(",\"runStatus\":\"running\",\"subStatus\":\"idle\"");
                        } else {
                            sBuffer.append(",\"runStatus\":\"running\"")
                                    .append(",\"subStatus\":\"processing_event\",\"stepOp\":")
                                    .append(stepStatus.getCode());
                        }
                    } else {
                        if (stepStatus == StepStatus.STEP_STATUS_UNDEFINED) {
                            sBuffer.append(",\"runStatus\":\"notRegister\",\"subStatus\":\"idle\"");
                        } else {
                            sBuffer.append(",\"runStatus\":\"notRegister\"")
                                    .append(",\"subStatus\":\"processing_event\",\"stepOp\":")
                                    .append(stepStatus.getCode());
                        }
                    }
                    Tuple2<Boolean, Boolean> syncTuple =
                            runStatusInfo.getDataSyncStatus();
                    sBuffer.append(",\"isConfChanged\":\"").append(syncTuple.getF0())
                            .append("\",\"isConfLoaded\":\"").append(syncTuple.getF1())
                            .append("\",\"isBrokerOnline\":\"").append(runStatusInfo.isOnline())
                            .append("\"").append(",\"brokerVersion\":\"-\",\"acceptPublish\":\"")
                            .append(pubSubTuple.getF0()).append("\",\"acceptSubscribe\":\"")
                            .append(pubSubTuple.getF1()).append("\"");
                    if (withDetail) {
                        sBuffer = runStatusInfo.toJsonString(sBuffer.append(","));
                    }
                }
            }
            sBuffer.append("}");
        }
        WebParameterUtils.buildSuccessWithDataRetEnd(sBuffer, totalCnt);
        return sBuffer;
    }