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) {