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

dockerzhang 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 24eccf7ce [INLONG-6676][Manager] Support list all InlongTopicInfo 
under a given cluster tag (#6677)
24eccf7ce is described below

commit 24eccf7cec70f2b5120048ea2eeba64e3e463a2e
Author: vernedeng <[email protected]>
AuthorDate: Mon Dec 12 10:57:17 2022 +0800

    [INLONG-6676][Manager] Support list all InlongTopicInfo under a given 
cluster tag (#6677)
---
 .../client/api/inner/client/InlongGroupClient.java | 13 +++++++
 .../manager/client/api/service/InlongGroupApi.java |  7 ++++
 .../dao/mapper/InlongGroupEntityMapper.java        |  3 ++
 .../resources/mappers/InlongGroupEntityMapper.xml  | 14 +++++++
 .../pojo/group/InlongGroupTopicRequest.java        | 45 ++++++++++++++++++++++
 .../manager/service/group/InlongGroupService.java  |  7 ++++
 .../service/group/InlongGroupServiceImpl.java      | 15 ++++++++
 .../web/controller/InlongGroupController.java      |  9 +++++
 8 files changed, 113 insertions(+)

diff --git 
a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/client/InlongGroupClient.java
 
b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/client/InlongGroupClient.java
index e1f58763d..290793d2e 100644
--- 
a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/client/InlongGroupClient.java
+++ 
b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/client/InlongGroupClient.java
@@ -35,6 +35,7 @@ import 
org.apache.inlong.manager.pojo.group.InlongGroupPageRequest;
 import org.apache.inlong.manager.pojo.group.InlongGroupRequest;
 import org.apache.inlong.manager.pojo.group.InlongGroupResetRequest;
 import org.apache.inlong.manager.pojo.group.InlongGroupTopicInfo;
+import org.apache.inlong.manager.pojo.group.InlongGroupTopicRequest;
 import org.apache.inlong.manager.pojo.sort.SortStatusInfo;
 import org.apache.inlong.manager.pojo.sort.SortStatusRequest;
 import org.apache.inlong.manager.pojo.workflow.WorkflowResult;
@@ -261,4 +262,16 @@ public class InlongGroupClient {
             throw new RuntimeException(response.getErrMsg());
         }
     }
+
+    public List<InlongGroupTopicInfo> listTopics(InlongGroupTopicRequest 
request) {
+        Response<List<InlongGroupTopicInfo>> response =
+                
ClientUtils.executeHttpCall(inlongGroupApi.listTopics(request));
+        if (response.isSuccess()) {
+            return response.getData();
+        } else if (response.getErrMsg().contains("not exist")) {
+            return null;
+        } else {
+            throw new RuntimeException(response.getErrMsg());
+        }
+    }
 }
diff --git 
a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/InlongGroupApi.java
 
b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/InlongGroupApi.java
index be83fa6e0..10cd103b9 100644
--- 
a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/InlongGroupApi.java
+++ 
b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/InlongGroupApi.java
@@ -23,6 +23,8 @@ import 
org.apache.inlong.manager.pojo.group.InlongGroupBriefInfo;
 import org.apache.inlong.manager.pojo.group.InlongGroupPageRequest;
 import org.apache.inlong.manager.pojo.group.InlongGroupRequest;
 import org.apache.inlong.manager.pojo.group.InlongGroupResetRequest;
+import org.apache.inlong.manager.pojo.group.InlongGroupTopicInfo;
+import org.apache.inlong.manager.pojo.group.InlongGroupTopicRequest;
 import org.apache.inlong.manager.pojo.workflow.WorkflowResult;
 import retrofit2.Call;
 import retrofit2.http.Body;
@@ -31,6 +33,8 @@ import retrofit2.http.GET;
 import retrofit2.http.POST;
 import retrofit2.http.Path;
 
+import java.util.List;
+
 public interface InlongGroupApi {
 
     @GET("group/exist/{id}")
@@ -77,4 +81,7 @@ public interface InlongGroupApi {
 
     @GET("group/getTopic/{id}")
     Call<Response<Object>> getTopic(@Path("id") String id);
+
+    @GET("group/listTopics")
+    Call<Response<List<InlongGroupTopicInfo>>> listTopics(@Body 
InlongGroupTopicRequest request);
 }
diff --git 
a/inlong-manager/manager-dao/src/main/java/org/apache/inlong/manager/dao/mapper/InlongGroupEntityMapper.java
 
b/inlong-manager/manager-dao/src/main/java/org/apache/inlong/manager/dao/mapper/InlongGroupEntityMapper.java
index 7dc92543d..0991d9023 100644
--- 
a/inlong-manager/manager-dao/src/main/java/org/apache/inlong/manager/dao/mapper/InlongGroupEntityMapper.java
+++ 
b/inlong-manager/manager-dao/src/main/java/org/apache/inlong/manager/dao/mapper/InlongGroupEntityMapper.java
@@ -24,6 +24,7 @@ import org.apache.ibatis.mapping.ResultSetType;
 import org.apache.inlong.manager.dao.entity.InlongGroupEntity;
 import org.apache.inlong.manager.pojo.group.InlongGroupBriefInfo;
 import org.apache.inlong.manager.pojo.group.InlongGroupPageRequest;
+import org.apache.inlong.manager.pojo.group.InlongGroupTopicRequest;
 import org.apache.inlong.manager.pojo.sort.standalone.SortSourceGroupInfo;
 import org.springframework.stereotype.Repository;
 
@@ -50,6 +51,8 @@ public interface InlongGroupEntityMapper {
 
     List<InlongGroupEntity> selectByClusterTag(@Param(value = 
"inlongClusterTag") String inlongClusterTag);
 
+    List<InlongGroupEntity> selectByTopicRequest(InlongGroupTopicRequest 
request);
+
     /**
      * Select all group info for sort sdk.
      *
diff --git 
a/inlong-manager/manager-dao/src/main/resources/mappers/InlongGroupEntityMapper.xml
 
b/inlong-manager/manager-dao/src/main/resources/mappers/InlongGroupEntityMapper.xml
index 129c154ec..c99ed7595 100644
--- 
a/inlong-manager/manager-dao/src/main/resources/mappers/InlongGroupEntityMapper.xml
+++ 
b/inlong-manager/manager-dao/src/main/resources/mappers/InlongGroupEntityMapper.xml
@@ -192,6 +192,20 @@
         order by modify_time desc
         limit 100
     </select>
+    <select id="selectByTopicRequest" 
resultType="org.apache.inlong.manager.pojo.group.InlongGroupTopicRequest">
+        select
+        <include refid="Base_Column_List"/>
+        from inlong_group
+        <where>
+            is_deleted = 0
+            <if test="groupIdList != null and groupIdList.size() > 0">
+                and inlong_group_id in
+                <foreach collection="groupIdList" item="inlongGroupId" 
index="index" open="(" close=")" separator=",">
+                    #{inlongGroupId}
+                </foreach>
+            </if>
+        </where>
+    </select>
     <select id="selectByClusterTag" 
resultType="org.apache.inlong.manager.dao.entity.InlongGroupEntity">
         select
         <include refid="Base_Column_List"/>
diff --git 
a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/group/InlongGroupTopicRequest.java
 
b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/group/InlongGroupTopicRequest.java
new file mode 100644
index 000000000..b84d8f24a
--- /dev/null
+++ 
b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/group/InlongGroupTopicRequest.java
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.inlong.manager.pojo.group;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * Inlong group topic request
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel("Inlong group topic request")
+public class InlongGroupTopicRequest {
+
+    @ApiModelProperty(value = "The cluster tag of target group")
+    private String clusterTag;
+
+    @ApiModelProperty(value = "The target group id list, empty means list all 
groups ")
+    private List<String> groupIdList;
+
+}
diff --git 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupService.java
 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupService.java
index 258900f06..5b7ff88ce 100644
--- 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupService.java
+++ 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupService.java
@@ -26,6 +26,7 @@ import org.apache.inlong.manager.pojo.group.InlongGroupInfo;
 import org.apache.inlong.manager.pojo.group.InlongGroupPageRequest;
 import org.apache.inlong.manager.pojo.group.InlongGroupRequest;
 import org.apache.inlong.manager.pojo.group.InlongGroupTopicInfo;
+import org.apache.inlong.manager.pojo.group.InlongGroupTopicRequest;
 
 import javax.validation.Valid;
 import javax.validation.constraints.NotNull;
@@ -153,4 +154,10 @@ public interface InlongGroupService {
      */
     void saveOrUpdateExt(String groupId, List<InlongGroupExtInfo> infoList);
 
+    /**
+     * List topic infos
+     * @return List of InlongGroupTopicInfo
+     */
+    List<InlongGroupTopicInfo> listTopics(InlongGroupTopicRequest clusterTag);
+
 }
diff --git 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupServiceImpl.java
 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupServiceImpl.java
index 2f7ced7e4..bdb4bee7b 100644
--- 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupServiceImpl.java
+++ 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupServiceImpl.java
@@ -51,6 +51,7 @@ import org.apache.inlong.manager.pojo.group.InlongGroupInfo;
 import org.apache.inlong.manager.pojo.group.InlongGroupPageRequest;
 import org.apache.inlong.manager.pojo.group.InlongGroupRequest;
 import org.apache.inlong.manager.pojo.group.InlongGroupTopicInfo;
+import org.apache.inlong.manager.pojo.group.InlongGroupTopicRequest;
 import org.apache.inlong.manager.pojo.sort.BaseSortConf;
 import org.apache.inlong.manager.pojo.sort.BaseSortConf.SortType;
 import org.apache.inlong.manager.pojo.sort.FlinkSortConf;
@@ -416,6 +417,20 @@ public class InlongGroupServiceImpl implements 
InlongGroupService {
         LOGGER.info("success to save or update inlong group ext for 
groupId={}", groupId);
     }
 
+    @Override
+    public List<InlongGroupTopicInfo> listTopics(InlongGroupTopicRequest 
request) {
+        LOGGER.info("start to list group topic infos, request={}", request);
+        Preconditions.checkNotEmpty(request.getClusterTag(), "cluster tag 
should not be empty");
+        List<InlongGroupEntity> groupEntities = 
groupMapper.selectByTopicRequest(request);
+        List<InlongGroupTopicInfo> topicInfos = new ArrayList<>();
+        for (InlongGroupEntity entity : groupEntities) {
+            topicInfos.add(this.getTopic(entity.getInlongGroupId()));
+        }
+        LOGGER.info("success list group topic infos under clusterTag={}, 
size={}",
+                request.getClusterTag(), topicInfos.size());
+        return topicInfos;
+    }
+
     @Override
     public InlongGroupInfo doDeleteCheck(String groupId, String operator) {
         InlongGroupInfo groupInfo = this.get(groupId);
diff --git 
a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/InlongGroupController.java
 
b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/InlongGroupController.java
index e3375618c..7ba6619a9 100644
--- 
a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/InlongGroupController.java
+++ 
b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/InlongGroupController.java
@@ -32,6 +32,7 @@ import 
org.apache.inlong.manager.pojo.group.InlongGroupPageRequest;
 import org.apache.inlong.manager.pojo.group.InlongGroupRequest;
 import org.apache.inlong.manager.pojo.group.InlongGroupResetRequest;
 import org.apache.inlong.manager.pojo.group.InlongGroupTopicInfo;
+import org.apache.inlong.manager.pojo.group.InlongGroupTopicRequest;
 import org.apache.inlong.manager.pojo.workflow.WorkflowResult;
 import org.apache.inlong.manager.service.group.InlongGroupProcessService;
 import org.apache.inlong.manager.service.group.InlongGroupService;
@@ -47,6 +48,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
+
 /**
  * Inlong group control layer
  */
@@ -95,6 +98,12 @@ public class InlongGroupController {
         return Response.success(groupService.getTopic(groupId));
     }
 
+    @PostMapping(value = "/group/listTopics")
+    @ApiOperation(value = "Get topic infos")
+    public Response<List<InlongGroupTopicInfo>> listTopics(@RequestBody 
InlongGroupTopicRequest request) {
+        return Response.success(groupService.listTopics(request));
+    }
+
     @GetMapping(value = "/group/getBackupTopic/{groupId}")
     @ApiOperation(value = "Get backup topic info")
     public Response<InlongGroupTopicInfo> getBackupTopic(@PathVariable String 
groupId) {

Reply via email to