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 d005158938 [INLONG-8199][Manager] Supports get brief information of
inlong stream (#8207)
d005158938 is described below
commit d0051589386f18f278d7bc9078b950e715915af7
Author: fuweng11 <[email protected]>
AuthorDate: Sat Jun 10 16:45:09 2023 +0800
[INLONG-8199][Manager] Supports get brief information of inlong stream
(#8207)
---
.../manager/pojo/stream/InlongStreamBriefInfo.java | 6 +++++
.../service/stream/InlongStreamService.java | 12 ++++++++-
.../service/stream/InlongStreamServiceImpl.java | 30 ++++++++++++++++++++++
.../web/controller/InlongStreamController.java | 13 +++++++++-
.../openapi/OpenInLongStreamController.java | 14 ++++++++++
5 files changed, 73 insertions(+), 2 deletions(-)
diff --git
a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/stream/InlongStreamBriefInfo.java
b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/stream/InlongStreamBriefInfo.java
index 56a5dece59..59d6aa9e3d 100644
---
a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/stream/InlongStreamBriefInfo.java
+++
b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/stream/InlongStreamBriefInfo.java
@@ -70,4 +70,10 @@ public class InlongStreamBriefInfo {
@ApiModelProperty(value = "Sink brief list")
private List<SinkBriefInfo> sinkList;
+ @ApiModelProperty(value = "Field list")
+ private List<StreamField> fieldList;
+
+ @ApiModelProperty(value = "Inlong stream Extension properties")
+ private List<InlongStreamExtInfo> extList;
+
}
diff --git
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/stream/InlongStreamService.java
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/stream/InlongStreamService.java
index 4b2023fab4..9f83d7764a 100644
---
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/stream/InlongStreamService.java
+++
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/stream/InlongStreamService.java
@@ -85,6 +85,16 @@ public interface InlongStreamService {
*/
InlongStreamInfo get(String groupId, String streamId, UserInfo opInfo);
+ /**
+ * Query the brief of the specified inlong stream
+ *
+ * @param groupId Inlong group id
+ * @param streamId Inlong stream id
+ * @param operator operator
+ * @return inlong stream brief
+ */
+ InlongStreamBriefInfo getBrief(String groupId, String streamId, String
operator);
+
/**
* List streams contained in one group
*
@@ -237,7 +247,7 @@ public interface InlongStreamService {
/**
* Converts a statement to a streamFields
*
- * @param parseFieldRequest parse field request
+ * @param parseFieldRequest parse field request
* @return list of stream field
*/
List<StreamField> parseFields(ParseFieldRequest parseFieldRequest);
diff --git
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/stream/InlongStreamServiceImpl.java
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/stream/InlongStreamServiceImpl.java
index e91e2fc982..3963601a5d 100644
---
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/stream/InlongStreamServiceImpl.java
+++
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/stream/InlongStreamServiceImpl.java
@@ -277,6 +277,34 @@ public class InlongStreamServiceImpl implements
InlongStreamService {
return streamInfo;
}
+ @Override
+ public InlongStreamBriefInfo getBrief(String groupId, String streamId,
String operator) {
+ InlongGroupEntity entity = groupMapper.selectByGroupId(groupId);
+ if (entity == null) {
+ throw new BusinessException(ErrorCodeEnum.GROUP_NOT_FOUND);
+ }
+
+ // only the person in charges can query
+ userService.checkUser(entity.getInCharges(), operator,
+ ErrorCodeEnum.GROUP_PERMISSION_DENIED.getMessage());
+ // get stream information
+ InlongStreamEntity streamEntity =
streamMapper.selectByIdentifier(groupId, streamId);
+ if (streamEntity == null) {
+ throw new BusinessException(ErrorCodeEnum.STREAM_NOT_FOUND);
+ }
+
+ InlongStreamBriefInfo streamInfo =
CommonBeanUtils.copyProperties(streamEntity, InlongStreamBriefInfo::new);
+ // Processing extParams
+ unpackExtParams(streamEntity.getExtParams(), streamInfo);
+ // Load fields
+ List<StreamField> streamFields = getStreamFields(groupId, streamId);
+ streamInfo.setFieldList(streamFields);
+ List<InlongStreamExtEntity> extEntities =
streamExtMapper.selectByRelatedId(groupId, streamId);
+ List<InlongStreamExtInfo> extInfos =
CommonBeanUtils.copyListProperties(extEntities, InlongStreamExtInfo::new);
+ streamInfo.setExtList(extInfos);
+ return streamInfo;
+ }
+
@Override
public List<InlongStreamInfo> list(String groupId) {
LOGGER.debug("begin to list inlong streams by groupId={}", groupId);
@@ -785,6 +813,7 @@ public class InlongStreamServiceImpl implements
InlongStreamService {
/**
* Parse fields from CSV format
+ *
* @param statement CSV statement
* @return List of StreamField
*/
@@ -826,6 +855,7 @@ public class InlongStreamServiceImpl implements
InlongStreamService {
}
return fields;
}
+
private List<StreamField> parseFieldsBySql(String sql) throws
JSQLParserException {
CCJSqlParserManager pm = new CCJSqlParserManager();
Statement statement = pm.parse(new StringReader(sql));
diff --git
a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/InlongStreamController.java
b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/InlongStreamController.java
index e2e8cf3eb1..9275226795 100644
---
a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/InlongStreamController.java
+++
b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/InlongStreamController.java
@@ -104,7 +104,18 @@ public class InlongStreamController {
@ApiImplicitParam(name = "streamId", dataTypeClass = String.class,
required = true)
})
public Response<InlongStreamInfo> get(@RequestParam String groupId,
@RequestParam String streamId) {
- return Response.success(streamService.get(groupId, streamId));
+ return Response.success(streamService.get(groupId, streamId,
LoginUserUtils.getLoginUser()));
+ }
+
+ @RequestMapping(value = "/stream/getBrief", method = RequestMethod.GET)
+ @ApiOperation(value = "Get inlong stream brief")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "groupId", dataTypeClass = String.class,
required = true),
+ @ApiImplicitParam(name = "streamId", dataTypeClass = String.class,
required = true)
+ })
+ public Response<InlongStreamBriefInfo> getBrief(@RequestParam String
groupId, @RequestParam String streamId) {
+ String operator = LoginUserUtils.getLoginUser().getName();
+ return Response.success(streamService.getBrief(groupId, streamId,
operator));
}
@RequestMapping(value = "/stream/list", method = RequestMethod.POST)
diff --git
a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/openapi/OpenInLongStreamController.java
b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/openapi/OpenInLongStreamController.java
index 542fea3c62..1553bc4c31 100644
---
a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/openapi/OpenInLongStreamController.java
+++
b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/openapi/OpenInLongStreamController.java
@@ -68,6 +68,20 @@ public class OpenInLongStreamController {
return Response.success(streamService.get(groupId, streamId,
LoginUserUtils.getLoginUser()));
}
+ @RequestMapping(value = "/stream/getBrief", method = RequestMethod.GET)
+ @ApiOperation(value = "Get inlong stream brief")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "groupId", dataTypeClass = String.class,
required = true),
+ @ApiImplicitParam(name = "streamId", dataTypeClass = String.class,
required = true)
+ })
+ public Response<InlongStreamBriefInfo> getBrief(@RequestParam String
groupId, @RequestParam String streamId) {
+ Preconditions.expectNotBlank(groupId, ErrorCodeEnum.INVALID_PARAMETER,
"groupId cannot be blank");
+ Preconditions.expectNotBlank(streamId,
ErrorCodeEnum.INVALID_PARAMETER, "streamId cannot be blank");
+ Preconditions.expectNotNull(LoginUserUtils.getLoginUser(),
ErrorCodeEnum.LOGIN_USER_EMPTY);
+ String operator = LoginUserUtils.getLoginUser().getName();
+ return Response.success(streamService.getBrief(groupId, streamId,
operator));
+ }
+
@RequestMapping(value = "/stream/list", method = RequestMethod.POST)
@ApiOperation(value = "List inlong stream briefs by paginating")
public Response<List<InlongStreamBriefInfo>> listByCondition(@RequestBody
InlongStreamPageRequest request) {