|
@@ -18,7 +18,10 @@
|
|
|
package org.apache.dolphinscheduler.api.controller;
|
|
|
|
|
|
import static org.apache.dolphinscheduler.api.enums.Status.FORCE_TASK_SUCCESS_ERROR;
|
|
|
+import static org.apache.dolphinscheduler.api.enums.Status.QUERY_TASK_INSTANCE_ERROR;
|
|
|
import static org.apache.dolphinscheduler.api.enums.Status.QUERY_TASK_LIST_PAGING_ERROR;
|
|
|
+import static org.apache.dolphinscheduler.api.enums.Status.TASK_SAVEPOINT_ERROR;
|
|
|
+import static org.apache.dolphinscheduler.api.enums.Status.TASK_STOP_ERROR;
|
|
|
|
|
|
import org.apache.dolphinscheduler.api.aspect.AccessLogAnnotation;
|
|
|
import org.apache.dolphinscheduler.api.dto.taskInstance.TaskInstanceListPagingResponse;
|
|
@@ -28,6 +31,7 @@ import org.apache.dolphinscheduler.api.exceptions.ApiException;
|
|
|
import org.apache.dolphinscheduler.api.service.TaskInstanceService;
|
|
|
import org.apache.dolphinscheduler.api.utils.Result;
|
|
|
import org.apache.dolphinscheduler.common.constants.Constants;
|
|
|
+import org.apache.dolphinscheduler.dao.entity.TaskInstance;
|
|
|
import org.apache.dolphinscheduler.dao.entity.User;
|
|
|
import org.apache.dolphinscheduler.plugin.task.api.enums.TaskExecutionStatus;
|
|
|
import org.apache.dolphinscheduler.plugin.task.api.utils.ParameterUtils;
|
|
@@ -105,6 +109,50 @@ public class TaskInstanceV2Controller extends BaseController {
|
|
|
return new TaskInstanceListPagingResponse(result);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ * task savepoint, for stream task
|
|
|
+ *
|
|
|
+ * @param loginUser login user
|
|
|
+ * @param projectCode project code
|
|
|
+ * @param id task instance id
|
|
|
+ * @return the result code and msg
|
|
|
+ */
|
|
|
+ @Operation(summary = "savepoint", description = "TASK_SAVEPOINT")
|
|
|
+ @Parameters({
|
|
|
+ @Parameter(name = "id", description = "TASK_INSTANCE_ID", required = true, schema = @Schema(implementation = int.class, example = "12"))
|
|
|
+ })
|
|
|
+ @PostMapping(value = "/{id}/savepoint")
|
|
|
+ @ResponseStatus(HttpStatus.OK)
|
|
|
+ @ApiException(TASK_SAVEPOINT_ERROR)
|
|
|
+ @AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
|
|
+ public Result<Object> taskSavePoint(@Parameter(hidden = true) @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
|
|
+ @Parameter(name = "projectCode", description = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
|
|
+ @PathVariable(value = "id") Integer id) {
|
|
|
+ return taskInstanceService.taskSavePoint(loginUser, projectCode, id);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * task stop, for stream task
|
|
|
+ *
|
|
|
+ * @param loginUser login user
|
|
|
+ * @param projectCode project code
|
|
|
+ * @param id task instance id
|
|
|
+ * @return the result code and msg
|
|
|
+ */
|
|
|
+ @Operation(summary = "stop", description = "TASK_INSTANCE_STOP")
|
|
|
+ @Parameters({
|
|
|
+ @Parameter(name = "id", description = "TASK_INSTANCE_ID", required = true, schema = @Schema(implementation = int.class, example = "12"))
|
|
|
+ })
|
|
|
+ @PostMapping(value = "/{id}/stop")
|
|
|
+ @ResponseStatus(HttpStatus.OK)
|
|
|
+ @ApiException(TASK_STOP_ERROR)
|
|
|
+ @AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
|
|
+ public Result<Object> stopTask(@Parameter(hidden = true) @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
|
|
+ @Parameter(name = "projectCode", description = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
|
|
+ @PathVariable(value = "id") Integer id) {
|
|
|
+ return taskInstanceService.stopTask(loginUser, projectCode, id);
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
* change one task instance's state from FAILURE to FORCED_SUCCESS
|
|
|
*
|
|
@@ -127,4 +175,27 @@ public class TaskInstanceV2Controller extends BaseController {
|
|
|
Result result = taskInstanceService.forceTaskSuccess(loginUser, projectCode, id);
|
|
|
return new TaskInstanceSuccessResponse(result);
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ * query taskInstance by taskInstanceCode
|
|
|
+ *
|
|
|
+ * @param loginUser login user
|
|
|
+ * @param projectCode project code
|
|
|
+ * @param taskInstanceId taskInstance Id
|
|
|
+ * @return the result code and msg
|
|
|
+ */
|
|
|
+ @Operation(summary = "queryOneTaskInstance", description = "QUERY_ONE_TASK_INSTANCE")
|
|
|
+ @Parameters({
|
|
|
+ @Parameter(name = "taskInstanceId", description = "TASK_INSTANCE_ID", required = true, schema = @Schema(implementation = Long.class), example = "1234567890")
|
|
|
+ })
|
|
|
+ @PostMapping(value = "/{taskInstanceId}", consumes = {"application/json"})
|
|
|
+ @ResponseStatus(HttpStatus.OK)
|
|
|
+ @ApiException(QUERY_TASK_INSTANCE_ERROR)
|
|
|
+ @AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
|
|
+ public TaskInstance queryTaskInstanceByCode(@Parameter(hidden = true) @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
|
|
+ @Parameter(name = "projectCode", description = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
|
|
+ @PathVariable(value = "taskInstanceId") Long taskInstanceId) {
|
|
|
+ TaskInstance taskInstance = taskInstanceService.queryTaskInstanceById(loginUser, projectCode, taskInstanceId);
|
|
|
+ return taskInstance;
|
|
|
+ }
|
|
|
}
|