You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@inlong.apache.org by he...@apache.org on 2022/02/28 03:22:09 UTC
[incubator-inlong] branch master updated: [INLONG-2741][Manager] Inlong client adds an interface for querying inlong group (#2766)
This is an automated email from the ASF dual-hosted git repository.
healchow 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 82a7fdf [INLONG-2741][Manager] Inlong client adds an interface for querying inlong group (#2766)
82a7fdf is described below
commit 82a7fdf5f31ec8de8bbc9aa21698931e09385e77
Author: Balley2 <37...@qq.com>
AuthorDate: Mon Feb 28 11:22:04 2022 +0800
[INLONG-2741][Manager] Inlong client adds an interface for querying inlong group (#2766)
---
.../inlong/manager/client/api/InlongClient.java | 32 +++++++++++++++++
.../manager/client/api/impl/InlongClientImpl.java | 19 +++++++++-
.../client/api/inner/InnerInlongManagerClient.java | 40 ++++++++++++++++++++++
.../manager/client/api/util/InlongParser.java | 10 ++++++
4 files changed, 100 insertions(+), 1 deletion(-)
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/InlongClient.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/InlongClient.java
index 4101313..f736ee2 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/InlongClient.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/InlongClient.java
@@ -17,7 +17,10 @@
package org.apache.inlong.manager.client.api;
+import com.github.pagehelper.PageInfo;
import org.apache.inlong.manager.client.api.impl.InlongClientImpl;
+import org.apache.inlong.manager.common.pojo.group.InlongGroupListResponse;
+import org.apache.inlong.manager.common.pojo.group.InlongGroupRequest;
/**
* An interface to manipulate Inlong Cluster
@@ -43,13 +46,42 @@ import org.apache.inlong.manager.client.api.impl.InlongClientImpl;
*/
public interface InlongClient {
+ /**
+ * Create inlong client.
+ *
+ * @param serviceUrl the service url
+ * @param configuration the configuration
+ * @return the inlong client
+ */
static InlongClient create(String serviceUrl, ClientConfiguration configuration) {
return new InlongClientImpl(serviceUrl, configuration);
}
/**
* Create stream group by conf
+ *
+ * @param groupConf the group conf
+ * @return the inlong group
+ * @throws Exception the exception
*/
InlongGroup createGroup(InlongGroupConf groupConf) throws Exception;
+
+ /**
+ * List group list.
+ *
+ * @return the list
+ * @throws Exception the exception
+ */
+ PageInfo<InlongGroupListResponse> listGroup(String keyword, int status, int pageNum, int pageSize) throws Exception;
+
+ /**
+ * Gets group.
+ *
+ * @param groupId the group name
+ * @return the group
+ * @throws Exception the exception
+ */
+ InlongGroupRequest getGroup(String groupId) throws Exception;
+
}
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/InlongClientImpl.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/InlongClientImpl.java
index 6ec5e34..01d2a66 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/InlongClientImpl.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/InlongClientImpl.java
@@ -17,6 +17,7 @@
package org.apache.inlong.manager.client.api.impl;
+import com.github.pagehelper.PageInfo;
import com.google.common.base.Splitter;
import java.io.IOException;
import java.net.InetSocketAddress;
@@ -26,9 +27,12 @@ import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.MapUtils;
import org.apache.inlong.manager.client.api.ClientConfiguration;
+import org.apache.inlong.manager.client.api.InlongClient;
import org.apache.inlong.manager.client.api.InlongGroup;
import org.apache.inlong.manager.client.api.InlongGroupConf;
-import org.apache.inlong.manager.client.api.InlongClient;
+import org.apache.inlong.manager.client.api.inner.InnerInlongManagerClient;
+import org.apache.inlong.manager.common.pojo.group.InlongGroupListResponse;
+import org.apache.inlong.manager.common.pojo.group.InlongGroupRequest;
@Slf4j
public class InlongClientImpl implements InlongClient {
@@ -69,6 +73,19 @@ public class InlongClientImpl implements InlongClient {
return new InlongGroupImpl(groupConf, this);
}
+ @Override
+ public PageInfo<InlongGroupListResponse> listGroup(String keyword, int status,
+ int pageNum, int pageSize) throws Exception {
+ InnerInlongManagerClient managerClient = new InnerInlongManagerClient(this);
+ return managerClient.listGroupInfo(keyword, status, pageNum, pageSize);
+ }
+
+ @Override
+ public InlongGroupRequest getGroup(String groupId) throws Exception {
+ InnerInlongManagerClient managerClient = new InnerInlongManagerClient(this);
+ return managerClient.getGroupInfo(groupId);
+ }
+
private boolean checkConnectivity(String host, int port, int connectTimeout) {
InetSocketAddress socketAddress = new InetSocketAddress(host, port);
Socket socket = new Socket();
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/InnerInlongManagerClient.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/InnerInlongManagerClient.java
index 870adcc..6667781 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/InnerInlongManagerClient.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/inner/InnerInlongManagerClient.java
@@ -39,6 +39,7 @@ import org.apache.inlong.manager.client.api.util.AssertUtil;
import org.apache.inlong.manager.client.api.util.GsonUtil;
import org.apache.inlong.manager.client.api.util.InlongParser;
import org.apache.inlong.manager.common.pojo.group.InlongGroupApproveRequest;
+import org.apache.inlong.manager.common.pojo.group.InlongGroupListResponse;
import org.apache.inlong.manager.common.pojo.group.InlongGroupRequest;
import org.apache.inlong.manager.common.pojo.sink.SinkListResponse;
import org.apache.inlong.manager.common.pojo.sink.SinkRequest;
@@ -129,6 +130,45 @@ public class InnerInlongManagerClient {
}
}
+ public PageInfo<InlongGroupListResponse> listGroupInfo(String keyword, int status, int pageNum, int pageSize) {
+ if (pageNum <= 0) {
+ pageNum = 1;
+ }
+ JSONObject groupQuery = new JSONObject();
+ groupQuery.put("keyWord", pageNum);
+ groupQuery.put("status", status);
+ groupQuery.put("pageNum", pageNum);
+ groupQuery.put("pageSize", pageSize);
+ String operationData = GsonUtil.toJson(groupQuery);
+ RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), operationData);
+ String path = HTTP_PATH + "/group/list";
+ final String url = formatUrl(path);
+ Request request = new Request.Builder().get()
+ .url(url)
+ .method("POST", requestBody)
+ .build();
+
+ Call call = httpClient.newCall(request);
+ try {
+ Response response = call.execute();
+ assert response.body() != null;
+ String body = response.body().string();
+ AssertUtil.isTrue(response.isSuccessful(), String.format("Inlong request failed: %s", body));
+ org.apache.inlong.manager.common.beans.Response responseBody = InlongParser.parseResponse(body);
+ if (responseBody.getErrMsg() != null) {
+ if (responseBody.getErrMsg().contains("Inlong group does not exist")) {
+ return null;
+ } else {
+ throw new RuntimeException(responseBody.getErrMsg());
+ }
+ } else {
+ return InlongParser.parseGroupList(responseBody);
+ }
+ } catch (Exception e) {
+ throw new RuntimeException(String.format("Inlong group get failed: %s", e.getMessage()), e);
+ }
+ }
+
/**
* Create inlong group
*/
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/util/InlongParser.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/util/InlongParser.java
index cc78c9d..03e65fa 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/util/InlongParser.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/util/InlongParser.java
@@ -25,6 +25,7 @@ import java.util.List;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.inlong.manager.common.beans.Response;
import org.apache.inlong.manager.common.pojo.group.InlongGroupApproveRequest;
+import org.apache.inlong.manager.common.pojo.group.InlongGroupListResponse;
import org.apache.inlong.manager.common.pojo.group.InlongGroupPulsarInfo;
import org.apache.inlong.manager.common.pojo.group.InlongGroupRequest;
import org.apache.inlong.manager.common.pojo.sink.SinkListResponse;
@@ -56,6 +57,15 @@ public class InlongParser {
return GsonUtil.fromJson(GsonUtil.toJson(data), InlongGroupRequest.class);
}
+ public static PageInfo<InlongGroupListResponse> parseGroupList(Response response) {
+ Object data = response.getData();
+ String pageInfoJson = GsonUtil.toJson(data);
+ PageInfo<InlongGroupListResponse> pageInfo = GsonUtil.fromJson(pageInfoJson,
+ new TypeToken<PageInfo<InlongGroupListResponse>>() {
+ }.getType());
+ return pageInfo;
+ }
+
public static InlongStreamInfo parseStreamInfo(Response response) {
Object data = response.getData();
InlongStreamInfo streamInfo = GsonUtil.fromJson(GsonUtil.toJson(data), InlongStreamInfo.class);