You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@inlong.apache.org by go...@apache.org on 2022/10/12 01:51:53 UTC

[inlong] branch master updated: [INLONG-6138][TubeMQ] Update the API called by the js files in the resource (#6139)

This is an automated email from the ASF dual-hosted git repository.

gosonzhang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/inlong.git


The following commit(s) were added to refs/heads/master by this push:
     new d637ecd01 [INLONG-6138][TubeMQ] Update the API called by the js files in the resource (#6139)
d637ecd01 is described below

commit d637ecd01e3b06c54c7ba4775dfe7a6bebe5122e
Author: Goson Zhang <46...@qq.com>
AuthorDate: Wed Oct 12 09:51:47 2022 +0800

    [INLONG-6138][TubeMQ] Update the API called by the js files in the resource (#6139)
---
 .../resources/assets/scripts/common/module.js      |   8 +-
 .../resources/assets/scripts/topicList.js          |  12 +-
 .../master/web/handler/WebTopicDeployHandler.java  | 148 ++++++++++++++++++++-
 3 files changed, 156 insertions(+), 12 deletions(-)

diff --git a/inlong-tubemq/resources/assets/scripts/common/module.js b/inlong-tubemq/resources/assets/scripts/common/module.js
index c761bfdd1..aa5b88285 100644
--- a/inlong-tubemq/resources/assets/scripts/common/module.js
+++ b/inlong-tubemq/resources/assets/scripts/common/module.js
@@ -924,17 +924,17 @@ Dialog.prototype.confirmBroker2Topic = function (type, topicName, formData) {
                         + ':' + full.brokerPort;
                 }
             }, {
-                "data": "runInfo.totalTopicStoreNum"
+                "data": "storeTotalCfgCnt"
             }, {
-                "data": "runInfo.brokerManageStatus"
+                "data": "manageStatus"
             }, {
-                "data": "runInfo.acceptPublish",
+                "data": "acceptPublish",
                 "orderable": false,
                 "render": function (data, type, full, meta) {
                     return translation2Boolean[data];
                 }
             }, {
-                "data": "runInfo.acceptSubscribe",
+                "data": "acceptSubscribe",
                 "orderable": false,
                 "render": function (data, type, full, meta) {
                     return translation2Boolean[data];
diff --git a/inlong-tubemq/resources/assets/scripts/topicList.js b/inlong-tubemq/resources/assets/scripts/topicList.js
index f34ff0c3f..2b34e15d0 100644
--- a/inlong-tubemq/resources/assets/scripts/topicList.js
+++ b/inlong-tubemq/resources/assets/scripts/topicList.js
@@ -102,7 +102,7 @@
                 'false': '否',
                 '-': '-'
             };
-            var url = G_CONFIG.HOST + "?type=op_query&method=admin_query_cluster_topic_view&" + $.param(
+            var url = G_CONFIG.HOST + "?type=op_query&method=admin_query_topic_broker_config_info&" + $.param(
                     opts);
 
             if (!this.$topicListDataTable) {
@@ -126,13 +126,13 @@
                             return html;
                         }
                     }, {
-                        "data": "totalCfgBrokerCnt"
+                        "data": "brokerTotalCfgCnt"
                     }, {
-                        "data": "totalCfgNumPart"
+                        "data": "partTotalCfgCnt"
                     }, {
-                        "data": "totalRunNumPartCount"
+                        "data": "partTotalRunCnt"
                     }, {
-                        "data": "isSrvAcceptPublish",
+                        "data": "topicSrvAccPubStatus",
                         "orderable": false,
                         "render": function (data,
                                             type,
@@ -149,7 +149,7 @@
                                 + '"><input type="checkbox" checked></span>';
                         }
                     }, {
-                        "data": "isSrvAcceptSubscribe",
+                        "data": "topicSrvAccSubStatus",
                         "orderable": false,
                         "render": function (data,
                                             type,
diff --git a/inlong-tubemq/tubemq-server/src/main/java/org/apache/inlong/tubemq/server/master/web/handler/WebTopicDeployHandler.java b/inlong-tubemq/tubemq-server/src/main/java/org/apache/inlong/tubemq/server/master/web/handler/WebTopicDeployHandler.java
index 8d991bbb2..4a6a07e52 100644
--- a/inlong-tubemq/tubemq-server/src/main/java/org/apache/inlong/tubemq/server/master/web/handler/WebTopicDeployHandler.java
+++ b/inlong-tubemq/tubemq-server/src/main/java/org/apache/inlong/tubemq/server/master/web/handler/WebTopicDeployHandler.java
@@ -65,9 +65,11 @@ public class WebTopicDeployHandler extends AbstractWebHandler {
                 "innQueryTopicDeployConfInfo");
         registerQueryWebMethod("admin_query_broker_topic_config_info",
                 "adminQueryBrokerTopicCfgAndRunInfo");
-        registerQueryWebMethod("admin_query_topicName",
+        registerQueryWebMethod("admin_query_topic_broker_config_info",
+                "adminQueryTopicBrokerCfgAndRunInfo");
+        registerQueryWebMethod("admin_query_deployed_topics",
                 "adminQuerySimpleTopicName");
-        registerQueryWebMethod("admin_query_brokerId",
+        registerQueryWebMethod("admin_query_deployed_broker_ids",
                 "adminQuerySimpleBrokerId");
 
         // register modify method
@@ -358,6 +360,148 @@ public class WebTopicDeployHandler extends AbstractWebHandler {
         return sBuffer;
     }
 
+    /**
+     * Query topic's broker configure view
+     *
+     * @param req       Http Servlet Request
+     * @param sBuffer   string buffer
+     * @param result    process result
+     * @return    process result
+     */
+    public StringBuilder adminQueryTopicBrokerCfgAndRunInfo(HttpServletRequest req,
+                                                            StringBuilder sBuffer,
+                                                            ProcessResult result) {
+        // check and get brokerId field
+        if (!WebParameterUtils.getIntParamValue(req,
+                WebFieldDef.COMPSBROKERID, false, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.getErrMsg());
+            return sBuffer;
+        }
+        Set<Integer> brokerIds = (Set<Integer>) result.getRetData();
+        // check and get topicName field
+        if (!WebParameterUtils.getStringParamValue(req,
+                WebFieldDef.COMPSTOPICNAME, false, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.getErrMsg());
+            return sBuffer;
+        }
+        Set<String> topicNameSet = (Set<String>) result.getRetData();
+        // query topic configure info
+        Map<String, List<TopicDeployEntity>> topicConfMap =
+                defMetaDataService.getTopicConfMapByTopicAndBrokerIds(topicNameSet, brokerIds);
+        BrokerRunManager brokerRunManager = master.getBrokerRunManager();
+        // set statistic data items
+        int recordCount = 0;
+        int brokerTotalCfgCnt = 0;
+        int storeTotalCfgCnt = 0;
+        int partTotalCfgCnt = 0;
+        int tmpPartTtlCount = 0;
+        int brokerTotalRunCnt = 0;
+        int storeTotalRunCnt = 0;
+        int partTotalRunCnt = 0;
+        int brokerAccPubTotalCnt = 0;
+        int brokerAccSubTotalCnt = 0;
+        int storeAccPubTotalCnt = 0;
+        int storeAccSubTotalCnt = 0;
+        int partAccPubTotalCnt = 0;
+        int partAccSubTotalCnt = 0;
+        boolean hasRunConfig = false;
+        boolean topicSrvAccPubStatus = false;
+        boolean topicSrvAccSubStatus = false;
+        boolean enableAuthControl = false;
+        // build query result
+        TopicPropGroup topicProps;
+        TopicCtrlEntity authEntity;
+        BrokerConfEntity brokerConfEntity;
+        Tuple3<Boolean, Boolean, TopicInfo> topicInfoTuple = new Tuple3<>();
+        WebParameterUtils.buildSuccessWithDataRetBegin(sBuffer);
+        for (Map.Entry<String, List<TopicDeployEntity>> entry : topicConfMap.entrySet()) {
+            if (recordCount++ > 0) {
+                sBuffer.append(",");
+            }
+            // reset the value of data items
+            brokerTotalCfgCnt = 0;
+            brokerTotalRunCnt = 0;
+            storeTotalCfgCnt = 0;
+            storeTotalRunCnt = 0;
+            partTotalCfgCnt = 0;
+            partTotalRunCnt = 0;
+            brokerAccPubTotalCnt = 0;
+            brokerAccSubTotalCnt = 0;
+            storeAccPubTotalCnt = 0;
+            storeAccSubTotalCnt = 0;
+            partAccPubTotalCnt = 0;
+            partAccSubTotalCnt = 0;
+            topicSrvAccPubStatus = false;
+            topicSrvAccSubStatus = false;
+            enableAuthControl = false;
+            for (TopicDeployEntity entity : entry.getValue()) {
+                brokerConfEntity =
+                        defMetaDataService.getBrokerConfByBrokerId(entity.getBrokerId());
+                if (brokerConfEntity == null) {
+                    continue;
+                }
+                // query detail information
+                topicProps = entity.getTopicProps();
+                brokerRunManager.getPubBrokerTopicInfo(
+                        entity.getBrokerId(), entity.getTopicName(), topicInfoTuple);
+                // accumulate configured data
+                brokerTotalCfgCnt++;
+                storeTotalCfgCnt += topicProps.getNumTopicStores();
+                partTotalCfgCnt +=
+                        topicProps.getNumPartitions() * topicProps.getNumTopicStores();
+                if (topicInfoTuple.getF2() != null) {
+                    hasRunConfig = false;
+                    tmpPartTtlCount =
+                            topicInfoTuple.getF2().getPartitionNum() * topicInfoTuple.getF2().getTopicStoreNum();
+                    if (topicInfoTuple.getF0() && topicInfoTuple.getF2().isAcceptPublish()) {
+                        hasRunConfig = true;
+                        topicSrvAccPubStatus = true;
+                        brokerAccPubTotalCnt++;
+                        storeAccPubTotalCnt += topicInfoTuple.getF2().getTopicStoreNum();
+                        partAccPubTotalCnt += tmpPartTtlCount;
+                    }
+                    if (topicInfoTuple.getF1() && topicInfoTuple.getF2().isAcceptSubscribe()) {
+                        hasRunConfig = true;
+                        topicSrvAccSubStatus = true;
+                        brokerAccSubTotalCnt++;
+                        storeAccSubTotalCnt += topicInfoTuple.getF2().getTopicStoreNum();
+                        partAccSubTotalCnt += tmpPartTtlCount;
+                    }
+                    if (hasRunConfig) {
+                        // accumulate running data
+                        brokerTotalRunCnt++;
+                        storeTotalRunCnt += topicInfoTuple.getF2().getTopicStoreNum();
+                        partTotalRunCnt += tmpPartTtlCount;
+                    }
+                }
+            }
+            // query authenticate information
+            authEntity = defMetaDataService.getTopicCtrlByTopicName(entry.getKey());
+            if (authEntity != null) {
+                enableAuthControl = authEntity.isAuthCtrlEnable();
+            }
+            sBuffer.append("{\"topicName\":\"").append(entry.getKey())
+                    .append("\",\"brokerTotalCfgCnt\":").append(brokerTotalCfgCnt)
+                    .append(",\"brokerTotalRunCnt\":").append(brokerTotalRunCnt)
+                    .append(",\"storeTotalCfgCnt\":").append(storeTotalCfgCnt)
+                    .append(",\"storeTotalRunCnt\":").append(storeTotalRunCnt)
+                    .append(",\"partTotalCfgCnt\":").append(partTotalCfgCnt)
+                    .append(",\"partTotalRunCnt\":").append(partTotalRunCnt)
+                    .append(",\"brokerAccPubTotalCnt\":").append(brokerAccPubTotalCnt)
+                    .append(",\"brokerAccSubTotalCnt\":").append(brokerAccSubTotalCnt)
+                    .append(",\"storeAccPubTotalCnt\":").append(storeAccPubTotalCnt)
+                    .append(",\"storeAccSubTotalCnt\":").append(storeAccSubTotalCnt)
+                    .append(",\"partAccPubTotalCnt\":").append(partAccPubTotalCnt)
+                    .append(",\"partAccSubTotalCnt\":").append(partAccSubTotalCnt)
+                    .append(",\"topicSrvAccPubStatus\":").append(topicSrvAccPubStatus)
+                    .append(",\"topicSrvAccSubStatus\":").append(topicSrvAccSubStatus)
+                    .append(",\"enableAuthControl\":").append(enableAuthControl)
+                    .append("}");
+        }
+        WebParameterUtils.buildSuccessWithDataRetEnd(sBuffer, recordCount);
+        return sBuffer;
+    }
+
     /**
      * Query broker's topic-name set info
      *