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/06/03 01:52:21 UTC

[incubator-inlong] branch master updated: [INLONG-3475][TubeMQ] Add an API for batch deletion of authorized consumer group records (#4502)

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/incubator-inlong.git


The following commit(s) were added to refs/heads/master by this push:
     new ab8000cb6 [INLONG-3475][TubeMQ] Add an API for batch deletion of authorized consumer group records (#4502)
ab8000cb6 is described below

commit ab8000cb60f2d2509629d2872f8443079f662427
Author: gosonzhang <46...@qq.com>
AuthorDate: Fri Jun 3 09:52:15 2022 +0800

    [INLONG-3475][TubeMQ] Add an API for batch deletion of authorized consumer group records (#4502)
---
 .../web/handler/WebAdminGroupCtrlHandler.java      | 93 ++++++++++++++++++++++
 .../web/handler/WebGroupConsumeCtrlHandler.java    | 38 +++++++++
 2 files changed, 131 insertions(+)

diff --git a/inlong-tubemq/tubemq-server/src/main/java/org/apache/inlong/tubemq/server/master/web/handler/WebAdminGroupCtrlHandler.java b/inlong-tubemq/tubemq-server/src/main/java/org/apache/inlong/tubemq/server/master/web/handler/WebAdminGroupCtrlHandler.java
index e67688c3b..88d41fe3a 100644
--- a/inlong-tubemq/tubemq-server/src/main/java/org/apache/inlong/tubemq/server/master/web/handler/WebAdminGroupCtrlHandler.java
+++ b/inlong-tubemq/tubemq-server/src/main/java/org/apache/inlong/tubemq/server/master/web/handler/WebAdminGroupCtrlHandler.java
@@ -68,10 +68,14 @@ public class WebAdminGroupCtrlHandler extends AbstractWebHandler {
                 "adminBatchAddBlackGroupInfo");
         registerModifyWebMethod("admin_delete_black_consumergroup_info",
                 "adminDeleteBlackGroupInfo");
+        registerModifyWebMethod("admin_batch_delete_black_consumergroup_info",
+                "adminBatchDeleteBlackGroupInfo");
         registerModifyWebMethod("admin_add_authorized_consumergroup_info",
                 "adminAddConsumerGroupInfo");
         registerModifyWebMethod("admin_delete_allowed_consumer_group_info",
                 "adminDeleteConsumerGroupInfo");
+        registerModifyWebMethod("admin_batch_del_authorized_consumergroup_info",
+                "adminBatchDelConsumerGroupInfo");
         registerModifyWebMethod("admin_bath_add_authorized_consumergroup_info",
                 "adminBatchAddConsumerGroupInfo");
         registerModifyWebMethod("admin_add_group_filtercond_info",
@@ -531,6 +535,52 @@ public class WebAdminGroupCtrlHandler extends AbstractWebHandler {
         return buildRetInfo(retInfoList, sBuffer);
     }
 
+    /**
+     * Batch delete black consumer group info
+     *
+     * @param req       Http Servlet Request
+     * @param sBuffer   string buffer
+     * @param result    process result
+     * @return    process result
+     */
+    public StringBuilder adminBatchDeleteBlackGroupInfo(HttpServletRequest req,
+                                                        StringBuilder sBuffer,
+                                                        ProcessResult result) {
+        // check and get operation info
+        if (!WebParameterUtils.getAUDBaseInfo(req, false, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.getErrMsg());
+            return sBuffer;
+        }
+        BaseEntity opEntity = (BaseEntity) result.getRetData();
+        // check and get groupNameJsonSet info
+        if (!getGroupCsmJsonSetInfo(req, opEntity, null,
+                "Old API batch Disable consume", sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.getErrMsg());
+            return sBuffer;
+        }
+        Map<String, GroupConsumeCtrlEntity> addRecordMap =
+                (Map<String, GroupConsumeCtrlEntity>) result.getRetData();
+        // add or update and build result
+        GroupConsumeCtrlEntity ctrlEntity;
+        List<GroupProcessResult> retInfoList = new ArrayList<>();
+        for (GroupConsumeCtrlEntity entry : addRecordMap.values()) {
+            ctrlEntity = defMetaDataService.getConsumeCtrlByGroupAndTopic(
+                    entry.getGroupName(), entry.getTopicName());
+            if (ctrlEntity != null
+                    && ctrlEntity.getConsumeEnable() != EnableStatus.STATUS_ENABLE) {
+                retInfoList.add(defMetaDataService.insertConsumeCtrlInfo(opEntity,
+                        entry.getGroupName(), entry.getTopicName(), Boolean.TRUE,
+                        "Old API delete blacklist, enable consume",
+                        null, null, sBuffer, result));
+            } else {
+                result.setFullInfo(true, DataOpErrCode.DERR_SUCCESS.getCode(), "Ok");
+                retInfoList.add(new GroupProcessResult(
+                        entry.getGroupName(), entry.getTopicName(), result));
+            }
+        }
+        return buildRetInfo(retInfoList, sBuffer);
+    }
+
     /**
      * Add authorized consumer group info
      *
@@ -701,6 +751,49 @@ public class WebAdminGroupCtrlHandler extends AbstractWebHandler {
         return buildRetInfo(retInfoList, sBuffer);
     }
 
+    /**
+     * Delete authorized consumer group info in batch
+     *
+     * @param req       Http Servlet Request
+     * @param sBuffer   string buffer
+     * @param result    process result
+     * @return    process result
+     */
+    public StringBuilder adminBatchDelConsumerGroupInfo(HttpServletRequest req,
+                                                        StringBuilder sBuffer,
+                                                        ProcessResult result) {
+        // check and get operation info
+        if (!WebParameterUtils.getAUDBaseInfo(req, false, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.getErrMsg());
+            return sBuffer;
+        }
+        BaseEntity opEntity = (BaseEntity) result.getRetData();
+        // check and get groupNameJsonSet info
+        if (!getGroupCsmJsonSetInfo(req, opEntity, Boolean.FALSE,
+                "Old API batch delete Authorized Consume", sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.getErrMsg());
+            return sBuffer;
+        }
+        Map<String, GroupConsumeCtrlEntity> addRecordMap =
+                (Map<String, GroupConsumeCtrlEntity>) result.getRetData();
+        // add or update and build result
+        GroupConsumeCtrlEntity ctrlEntity;
+        List<GroupProcessResult> retInfoList = new ArrayList<>();
+        for (GroupConsumeCtrlEntity entry : addRecordMap.values()) {
+            ctrlEntity = defMetaDataService.getConsumeCtrlByGroupAndTopic(
+                    entry.getGroupName(), entry.getTopicName());
+            if (ctrlEntity != null
+                    && ctrlEntity.getConsumeEnable() == EnableStatus.STATUS_ENABLE) {
+                retInfoList.add(defMetaDataService.insertConsumeCtrlInfo(entry, sBuffer, result));
+            } else {
+                result.setFullInfo(true, DataOpErrCode.DERR_SUCCESS.getCode(), "Ok");
+                retInfoList.add(new GroupProcessResult(entry.getGroupName(),
+                        entry.getTopicName(), result));
+            }
+        }
+        return buildRetInfo(retInfoList, sBuffer);
+    }
+
     /**
      * Add group filter condition info
      *
diff --git a/inlong-tubemq/tubemq-server/src/main/java/org/apache/inlong/tubemq/server/master/web/handler/WebGroupConsumeCtrlHandler.java b/inlong-tubemq/tubemq-server/src/main/java/org/apache/inlong/tubemq/server/master/web/handler/WebGroupConsumeCtrlHandler.java
index 5432697c4..18b527677 100644
--- a/inlong-tubemq/tubemq-server/src/main/java/org/apache/inlong/tubemq/server/master/web/handler/WebGroupConsumeCtrlHandler.java
+++ b/inlong-tubemq/tubemq-server/src/main/java/org/apache/inlong/tubemq/server/master/web/handler/WebGroupConsumeCtrlHandler.java
@@ -53,6 +53,8 @@ public class WebGroupConsumeCtrlHandler extends AbstractWebHandler {
                 "adminBatchModGroupConsumeCtrlInfo");
         registerModifyWebMethod("admin_delete_group_csmctrl_info",
                 "adminDelGroupConsumeCtrlInfo");
+        registerModifyWebMethod("admin_batch_delete_group_csmctrl_info",
+                "adminBatchDelGroupConsumeCtrlInfo");
     }
 
     /**
@@ -257,6 +259,42 @@ public class WebGroupConsumeCtrlHandler extends AbstractWebHandler {
         return sBuffer;
     }
 
+    /**
+     * Batch delete group consume configure info
+     *
+     * @param req       Http Servlet Request
+     * @param sBuffer   string buffer
+     * @param result    process result
+     * @return    process result
+     */
+    public StringBuilder adminBatchDelGroupConsumeCtrlInfo(HttpServletRequest req,
+                                                           StringBuilder sBuffer,
+                                                           ProcessResult result) {
+        // check and get operation info
+        if (!WebParameterUtils.getAUDBaseInfo(req, false, null, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.getErrMsg());
+            return sBuffer;
+        }
+        BaseEntity opEntity = (BaseEntity) result.getRetData();
+        // check and get groupCsmJsonSet data
+        if (!getGroupConsumeJsonSetInfo(req, false, opEntity, sBuffer, result)) {
+            WebParameterUtils.buildFailResult(sBuffer, result.getErrMsg());
+            return sBuffer;
+        }
+        Map<String, GroupConsumeCtrlEntity> batchAddInfoMap =
+                (Map<String, GroupConsumeCtrlEntity>) result.getRetData();
+        // delete group consume control records
+        List<GroupProcessResult> retInfo = new ArrayList<>();
+        for (GroupConsumeCtrlEntity ctrlEntity : batchAddInfoMap.values()) {
+            defMetaDataService.delConsumeCtrlConf(opEntity.getModifyUser(),
+                    ctrlEntity.getGroupName(), ctrlEntity.getTopicName(), sBuffer, result);
+            retInfo.add(new GroupProcessResult(ctrlEntity.getGroupName(),
+                    ctrlEntity.getTopicName(), result));
+        }
+        buildRetInfo(retInfo, sBuffer);
+        return sBuffer;
+    }
+
     private StringBuilder innAddOrUpdGroupConsumeCtrlInfo(HttpServletRequest req,
                                                           StringBuilder sBuffer,
                                                           ProcessResult result,