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/06/24 03:01:01 UTC
[inlong] branch master updated: [INLONG-4742][Manager] Support Reset when inlong group is pending on Configuring status (#4743)
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/inlong.git
The following commit(s) were added to refs/heads/master by this push:
new 74f8cc8d6 [INLONG-4742][Manager] Support Reset when inlong group is pending on Configuring status (#4743)
74f8cc8d6 is described below
commit 74f8cc8d6b9f8e21adfe1063809d8272dc1526dd
Author: kipshi <48...@users.noreply.github.com>
AuthorDate: Fri Jun 24 11:00:57 2022 +0800
[INLONG-4742][Manager] Support Reset when inlong group is pending on Configuring status (#4743)
---
.../inlong/manager/client/api/InlongGroup.java | 17 ++-
.../manager/client/api/impl/BlankInlongGroup.java | 5 +
.../manager/client/api/impl/InlongGroupImpl.java | 10 ++
.../client/api/inner/InnerInlongManagerClient.java | 10 ++
.../manager/client/api/service/InlongGroupApi.java | 3 +
.../client/api/service/InlongStreamApi.java | 1 -
.../api/inner/InnerInlongManagerClientTest.java | 16 +++
.../common/pojo/group/InlongGroupResetRequest.java | 52 +++++++++
.../operation/InlongGroupProcessOperation.java | 117 ++++++++++++++++++++-
.../web/controller/InlongGroupController.java | 21 ++--
10 files changed, 242 insertions(+), 10 deletions(-)
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/InlongGroup.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/InlongGroup.java
index e4fcc7564..7285f2302 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/InlongGroup.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/InlongGroup.java
@@ -106,14 +106,14 @@ public interface InlongGroup {
InlongGroupContext restart(boolean async) throws Exception;
/**
- * delete the stream group and return group info
+ * Delete the stream group and return group info
*
* @return group info
*/
InlongGroupContext delete() throws Exception;
/**
- * delete the stream group and return group info
+ * Delete the stream group and return group info
*
* @return group info
*/
@@ -125,4 +125,17 @@ public interface InlongGroup {
* @return inlong stream contained in this group
*/
List<InlongStream> listStreams() throws Exception;
+
+ /**
+ * Reset group status when group is in INITIALIZING or OPERATING status for a long time.
+ * You can choose to rerun process, or reset to final status directly, both can push the group to next status.
+ * This method has side effect on group you create, use carefully
+ *
+ * @param rerun 1: rerun the process; 0: not rerun the process
+ * @param resetFinalStatus 1: reset to success status; 0: reset to failed status, this params will work
+ * when rerun = 0
+ * @return group info
+ * @throws Exception
+ */
+ InlongGroupContext reset(int rerun, int resetFinalStatus) throws Exception;
}
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/BlankInlongGroup.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/BlankInlongGroup.java
index c3c4e84a2..3a0e2ce59 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/BlankInlongGroup.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/BlankInlongGroup.java
@@ -96,4 +96,9 @@ public class BlankInlongGroup implements InlongGroup {
public List<InlongStream> listStreams() throws Exception {
throw new UnsupportedOperationException("Inlong group is not exists");
}
+
+ @Override
+ public InlongGroupContext reset(int rerun, int resetFinalStatus) throws Exception {
+ throw new UnsupportedOperationException("Inlong group is not exists");
+ }
}
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/InlongGroupImpl.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/InlongGroupImpl.java
index 214f95df6..3e7447f2c 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/InlongGroupImpl.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/impl/InlongGroupImpl.java
@@ -34,6 +34,7 @@ import org.apache.inlong.manager.common.enums.GroupStatus;
import org.apache.inlong.manager.common.enums.ProcessStatus;
import org.apache.inlong.manager.common.pojo.group.InlongGroupInfo;
import org.apache.inlong.manager.common.pojo.group.InlongGroupRequest;
+import org.apache.inlong.manager.common.pojo.group.InlongGroupResetRequest;
import org.apache.inlong.manager.common.pojo.sort.BaseSortConf;
import org.apache.inlong.manager.common.pojo.stream.FullStreamResponse;
import org.apache.inlong.manager.common.pojo.stream.InlongStreamConfigLogListResponse;
@@ -243,6 +244,15 @@ public class InlongGroupImpl implements InlongGroup {
return fetchInlongStreams(inlongGroupId);
}
+ @Override
+ public InlongGroupContext reset(int rerun, int resetFinalStatus) throws Exception {
+ InlongGroupInfo groupInfo = groupContext.getGroupInfo();
+ InlongGroupResetRequest request = new InlongGroupResetRequest(groupInfo.getInlongGroupId(),
+ rerun, resetFinalStatus);
+ managerClient.resetGroup(request);
+ return generateSnapshot();
+ }
+
private InlongGroupContext generateSnapshot() {
// fetch current group
InlongGroupInfo groupInfo = managerClient.getGroupInfo(groupContext.getGroupId());
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 7a2391e39..e0f4eeb66 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
@@ -44,6 +44,7 @@ import org.apache.inlong.manager.common.pojo.group.InlongGroupInfo;
import org.apache.inlong.manager.common.pojo.group.InlongGroupListResponse;
import org.apache.inlong.manager.common.pojo.group.InlongGroupPageRequest;
import org.apache.inlong.manager.common.pojo.group.InlongGroupRequest;
+import org.apache.inlong.manager.common.pojo.group.InlongGroupResetRequest;
import org.apache.inlong.manager.common.pojo.sink.SinkListResponse;
import org.apache.inlong.manager.common.pojo.sink.SinkRequest;
import org.apache.inlong.manager.common.pojo.source.SourceListResponse;
@@ -229,6 +230,15 @@ public class InnerInlongManagerClient {
return Pair.of(response.getData(), response.getErrMsg());
}
+ /**
+ * Reset inlong group info
+ */
+ public boolean resetGroup(InlongGroupResetRequest resetRequest) {
+ Response<Boolean> response = executeHttpCall(inlongGroupApi.resetGroup(resetRequest));
+ assertRespSuccess(response);
+ return response.getData();
+ }
+
/**
* Create information of stream.
*/
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 202c2f7c7..e7a1658bf 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
@@ -22,6 +22,7 @@ import org.apache.inlong.manager.common.beans.Response;
import org.apache.inlong.manager.common.pojo.group.InlongGroupListResponse;
import org.apache.inlong.manager.common.pojo.group.InlongGroupPageRequest;
import org.apache.inlong.manager.common.pojo.group.InlongGroupRequest;
+import org.apache.inlong.manager.common.pojo.group.InlongGroupResetRequest;
import org.apache.inlong.manager.common.pojo.workflow.WorkflowResult;
import retrofit2.Call;
import retrofit2.http.Body;
@@ -68,4 +69,6 @@ public interface InlongGroupApi {
@DELETE("group/delete/{id}")
Call<Response<Boolean>> deleteGroup(@Path("id") String id);
+ @POST("group/reset")
+ Call<Response<Boolean>> resetGroup(@Body InlongGroupResetRequest request);
}
diff --git a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/InlongStreamApi.java b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/InlongStreamApi.java
index c8af43598..237ecfd4a 100644
--- a/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/InlongStreamApi.java
+++ b/inlong-manager/manager-client/src/main/java/org/apache/inlong/manager/client/api/service/InlongStreamApi.java
@@ -51,5 +51,4 @@ public interface InlongStreamApi {
@GET("stream/config/log/list")
Call<Response<PageInfo<InlongStreamConfigLogListResponse>>> getStreamLogs(@Query("inlongGroupId") String groupId,
@Query("inlongStreamId") String streamId);
-
}
diff --git a/inlong-manager/manager-client/src/test/java/org/apache/inlong/manager/client/api/inner/InnerInlongManagerClientTest.java b/inlong-manager/manager-client/src/test/java/org/apache/inlong/manager/client/api/inner/InnerInlongManagerClientTest.java
index 6ce15d909..915167b8c 100644
--- a/inlong-manager/manager-client/src/test/java/org/apache/inlong/manager/client/api/inner/InnerInlongManagerClientTest.java
+++ b/inlong-manager/manager-client/src/test/java/org/apache/inlong/manager/client/api/inner/InnerInlongManagerClientTest.java
@@ -32,6 +32,7 @@ import org.apache.inlong.manager.common.pojo.group.InlongGroupExtInfo;
import org.apache.inlong.manager.common.pojo.group.InlongGroupInfo;
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.group.InlongGroupResetRequest;
import org.apache.inlong.manager.common.pojo.group.pulsar.InlongPulsarInfo;
import org.apache.inlong.manager.common.pojo.sink.SinkListResponse;
import org.apache.inlong.manager.common.pojo.sink.ck.ClickHouseSink;
@@ -652,4 +653,19 @@ class InnerInlongManagerClientTest {
Assertions.assertTrue(exception.getMessage().contains("groupId should not empty"));
}
+
+ @Test
+ void testResetGroup() {
+ stubFor(
+ post(urlMatching("/api/inlong/manager/group/reset.*"))
+ .willReturn(
+ okJson(JsonUtils.toJsonString(
+ Response.success(true))
+ )
+ )
+ );
+
+ boolean isReset = innerInlongManagerClient.resetGroup(new InlongGroupResetRequest());
+ Assertions.assertTrue(isReset);
+ }
}
diff --git a/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/group/InlongGroupResetRequest.java b/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/group/InlongGroupResetRequest.java
new file mode 100644
index 000000000..133460b59
--- /dev/null
+++ b/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/group/InlongGroupResetRequest.java
@@ -0,0 +1,52 @@
+/*
+ * 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.common.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 org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.Pattern;
+
+/**
+ * Inlong group reset request
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel("Inlong group reset request")
+public class InlongGroupResetRequest {
+
+ @ApiModelProperty(value = "Inlong group id", required = true)
+ @Length(min = 4, max = 200)
+ @Pattern(regexp = "^(?![0-9]+$)[a-z][a-z0-9_-]{1,200}$",
+ message = "inlongGroupId must starts with a lowercase letter "
+ + "and contains only lowercase letters, digits, `-` or `_`")
+ private String inlongGroupId;
+
+ @ApiModelProperty(value = "If rerun process when group is in operating, 0: false 1: true")
+ private Integer rerunProcess = 0;
+
+ @ApiModelProperty(value = "This params will work when rerunProcess = 0, 0: reset to fail, 1: reset to success")
+ private Integer resetFinalStatus = 1;
+}
diff --git a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/operation/InlongGroupProcessOperation.java b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/operation/InlongGroupProcessOperation.java
index 3900b6c15..a15b38f22 100644
--- a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/operation/InlongGroupProcessOperation.java
+++ b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/operation/InlongGroupProcessOperation.java
@@ -24,12 +24,14 @@ import org.apache.inlong.manager.common.enums.GroupOperateType;
import org.apache.inlong.manager.common.enums.GroupStatus;
import org.apache.inlong.manager.common.exceptions.WorkflowListenerException;
import org.apache.inlong.manager.common.pojo.group.InlongGroupInfo;
-import org.apache.inlong.manager.common.pojo.stream.InlongStreamInfo;
+import org.apache.inlong.manager.common.pojo.group.InlongGroupResetRequest;
import org.apache.inlong.manager.common.pojo.stream.InlongStreamBriefInfo;
+import org.apache.inlong.manager.common.pojo.stream.InlongStreamInfo;
import org.apache.inlong.manager.common.pojo.workflow.WorkflowResult;
import org.apache.inlong.manager.common.pojo.workflow.form.GroupResourceProcessForm;
import org.apache.inlong.manager.common.pojo.workflow.form.LightGroupResourceProcessForm;
import org.apache.inlong.manager.common.pojo.workflow.form.NewGroupProcessForm;
+import org.apache.inlong.manager.common.util.Preconditions;
import org.apache.inlong.manager.service.core.InlongStreamService;
import org.apache.inlong.manager.service.group.InlongGroupService;
import org.apache.inlong.manager.service.workflow.ProcessName;
@@ -226,6 +228,119 @@ public class InlongGroupProcessOperation {
return groupService.delete(groupId, operator);
}
+ /**
+ * Reset group status when group is staying CONFIG_ING|SUSPENDING|RESTARTING|DELETING for a long time
+ * This api is side effect, must be used carefully.
+ *
+ * @param request
+ * @param operator
+ * @return
+ */
+ public boolean resetGroupStatus(InlongGroupResetRequest request, String operator) {
+ LOGGER.info("begin to reset group status, request = {}, operator = {}", request, operator);
+ final String groupId = request.getInlongGroupId();
+ InlongGroupInfo groupInfo = groupService.get(groupId);
+ Preconditions.checkNotNull(groupInfo, ErrorCodeEnum.GROUP_NOT_FOUND.getMessage());
+ GroupStatus status = GroupStatus.forCode(groupInfo.getStatus());
+ final int rerunProcess = request.getRerunProcess();
+ final int resetFinalStatus = request.getResetFinalStatus();
+ switch (status) {
+ case CONFIG_ING:
+ return dealWithConfigingGroup(groupInfo, operator, rerunProcess, resetFinalStatus);
+ case SUSPENDING:
+ return dealWithSuspendingGroup(groupInfo, operator, rerunProcess, resetFinalStatus);
+ case RESTARTING:
+ return dealWithRestartingGroup(groupInfo, operator, rerunProcess, resetFinalStatus);
+ case DELETING:
+ return dealWithDeletingGroup(groupInfo, operator, rerunProcess, resetFinalStatus);
+ default:
+ throw new IllegalStateException(
+ String.format("Unsupported status to reset for group = %s and status = %s",
+ request.getInlongGroupId(), status));
+ }
+ }
+
+ private boolean dealWithConfigingGroup(InlongGroupInfo groupInfo, String operator, int rerunProcess,
+ int resetFinalStatus) {
+ if (rerunProcess == 1) {
+ initProcessAsync(groupInfo, operator);
+ return true;
+ }
+ final String groupId = groupInfo.getInlongGroupId();
+ if (resetFinalStatus == 1) {
+ groupService.updateStatus(groupId, GroupStatus.CONFIG_SUCCESSFUL.getCode(), operator);
+ } else {
+ groupService.updateStatus(groupId, GroupStatus.CONFIG_FAILED.getCode(), operator);
+ }
+ return true;
+ }
+
+ private boolean dealWithSuspendingGroup(InlongGroupInfo groupInfo, String operator, int rerunProcess,
+ int resetFinalStatus) {
+ final String groupId = groupInfo.getInlongGroupId();
+ if (rerunProcess == 1) {
+ suspendProcessAsync(groupId, operator);
+ return true;
+ }
+ if (resetFinalStatus == 1) {
+ groupService.updateStatus(groupId, GroupStatus.SUSPENDED.getCode(), operator);
+ } else {
+ groupService.updateStatus(groupId, GroupStatus.CONFIG_FAILED.getCode(), operator);
+ }
+ return true;
+ }
+
+ private boolean dealWithRestartingGroup(InlongGroupInfo groupInfo, String operator, int rerunProcess,
+ int resetFinalStatus) {
+ final String groupId = groupInfo.getInlongGroupId();
+ if (rerunProcess == 1) {
+ restartProcessAsync(groupId, operator);
+ return true;
+ }
+ if (resetFinalStatus == 1) {
+ groupService.updateStatus(groupId, GroupStatus.RESTARTED.getCode(), operator);
+ } else {
+ groupService.updateStatus(groupId, GroupStatus.CONFIG_FAILED.getCode(), operator);
+ }
+ return true;
+ }
+
+ private boolean dealWithDeletingGroup(InlongGroupInfo groupInfo, String operator, int rerunProcess,
+ int resetFinalStatus) {
+ final String groupId = groupInfo.getInlongGroupId();
+ if (rerunProcess == 1) {
+ deleteProcessAsync(groupId, operator);
+ return true;
+ }
+ if (resetFinalStatus == 1) {
+ groupService.delete(groupId, operator);
+ } else {
+ groupService.updateStatus(groupId, GroupStatus.CONFIG_FAILED.getCode(), operator);
+ }
+ return true;
+ }
+
+ private String initProcessAsync(InlongGroupInfo groupInfo, String operator) {
+ LOGGER.info("begin to init process, groupId = {}, operator = {}", groupInfo.getInlongGroupId(), operator);
+ final String groupId = groupInfo.getInlongGroupId();
+ groupService.updateStatus(groupId, GroupStatus.CONFIG_ING.getCode(), operator);
+ GroupMode mode = GroupMode.parseGroupMode(groupInfo);
+ switch (mode) {
+ case NORMAL:
+ GroupResourceProcessForm form = genGroupProcessForm(groupInfo, GroupOperateType.INIT);
+ executorService.execute(() -> workflowService.start(ProcessName.SUSPEND_GROUP_PROCESS, operator, form));
+ break;
+ case LIGHT:
+ LightGroupResourceProcessForm lightForm = genLightGroupProcessForm(groupInfo, GroupOperateType.INIT);
+ executorService.execute(
+ () -> workflowService.start(ProcessName.SUSPEND_LIGHT_GROUP_PROCESS, operator, lightForm));
+ break;
+ default:
+ throw new WorkflowListenerException(ErrorCodeEnum.GROUP_MODE_UNSUPPORTED.getMessage());
+ }
+ return groupId;
+ }
+
private void invokeDeleteProcess(String groupId, String operator) {
InlongGroupInfo groupInfo = groupService.get(groupId);
GroupMode mode = GroupMode.parseGroupMode(groupInfo);
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 2f992a9b8..8310aaa51 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
@@ -29,6 +29,7 @@ import org.apache.inlong.manager.common.pojo.group.InlongGroupInfo;
import org.apache.inlong.manager.common.pojo.group.InlongGroupListResponse;
import org.apache.inlong.manager.common.pojo.group.InlongGroupPageRequest;
import org.apache.inlong.manager.common.pojo.group.InlongGroupRequest;
+import org.apache.inlong.manager.common.pojo.group.InlongGroupResetRequest;
import org.apache.inlong.manager.common.pojo.group.InlongGroupTopicInfo;
import org.apache.inlong.manager.common.pojo.workflow.WorkflowResult;
import org.apache.inlong.manager.common.util.LoginUserUtils;
@@ -36,7 +37,9 @@ import org.apache.inlong.manager.service.core.operation.InlongGroupProcessOperat
import org.apache.inlong.manager.service.core.operationlog.OperationLog;
import org.apache.inlong.manager.service.group.InlongGroupService;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@@ -102,7 +105,7 @@ public class InlongGroupController {
return Response.success(groupService.countGroupByUser(operator));
}
- @RequestMapping(value = "startProcess/{groupId}", method = RequestMethod.POST)
+ @RequestMapping(value = "/startProcess/{groupId}", method = RequestMethod.POST)
@ApiOperation(value = "Start inlong approval process")
@ApiImplicitParam(name = "groupId", value = "Inlong group id", dataTypeClass = String.class)
public Response<WorkflowResult> startProcess(@PathVariable String groupId) {
@@ -110,7 +113,7 @@ public class InlongGroupController {
return Response.success(groupProcessOperation.startProcess(groupId, operator));
}
- @RequestMapping(value = "suspendProcess/{groupId}", method = RequestMethod.POST)
+ @RequestMapping(value = "/suspendProcess/{groupId}", method = RequestMethod.POST)
@ApiOperation(value = "Suspend inlong group process")
@ApiImplicitParam(name = "groupId", value = "Inlong group id", dataTypeClass = String.class)
public Response<WorkflowResult> suspendProcess(@PathVariable String groupId) {
@@ -118,7 +121,7 @@ public class InlongGroupController {
return Response.success(groupProcessOperation.suspendProcess(groupId, operator));
}
- @RequestMapping(value = "restartProcess/{groupId}", method = RequestMethod.POST)
+ @RequestMapping(value = "/restartProcess/{groupId}", method = RequestMethod.POST)
@ApiOperation(value = "Restart inlong group process")
@ApiImplicitParam(name = "groupId", value = "Inlong group id", dataTypeClass = String.class)
public Response<WorkflowResult> restartProcess(@PathVariable String groupId) {
@@ -135,7 +138,7 @@ public class InlongGroupController {
return Response.success(groupProcessOperation.deleteProcess(groupId, operator));
}
- @RequestMapping(value = "suspendProcessAsync/{groupId}", method = RequestMethod.POST)
+ @RequestMapping(value = "/suspendProcessAsync/{groupId}", method = RequestMethod.POST)
@ApiOperation(value = "Suspend inlong group process")
@ApiImplicitParam(name = "groupId", value = "Inlong group id", dataTypeClass = String.class)
public Response<String> suspendProcessAsync(@PathVariable String groupId) {
@@ -143,7 +146,7 @@ public class InlongGroupController {
return Response.success(groupProcessOperation.suspendProcessAsync(groupId, operator));
}
- @RequestMapping(value = "restartProcessAsync/{groupId}", method = RequestMethod.POST)
+ @RequestMapping(value = "/restartProcessAsync/{groupId}", method = RequestMethod.POST)
@ApiOperation(value = "Restart inlong group process")
@ApiImplicitParam(name = "groupId", value = "Inlong group id", dataTypeClass = String.class)
public Response<String> restartProcessAsync(@PathVariable String groupId) {
@@ -160,10 +163,16 @@ public class InlongGroupController {
return Response.success(groupProcessOperation.deleteProcessAsync(groupId, operator));
}
- @RequestMapping(value = "getTopic/{groupId}", method = RequestMethod.GET)
+ @RequestMapping(value = "/getTopic/{groupId}", method = RequestMethod.GET)
@ApiOperation(value = "Get topic info")
public Response<InlongGroupTopicInfo> getTopic(@PathVariable String groupId) {
return Response.success(groupService.getTopic(groupId));
}
+ @PostMapping(value = "/reset")
+ @ApiOperation(value = "Reset group status when group is in CONFIG_ING|SUSPENDING|RESTARTING|DELETING")
+ public Response<Boolean> reset(@RequestBody @Validated InlongGroupResetRequest request) {
+ String operator = LoginUserUtils.getLoginUserDetail().getUserName();
+ return Response.success(groupProcessOperation.resetGroupStatus(request, operator));
+ }
}
\ No newline at end of file