You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by zi...@apache.org on 2026/04/07 06:25:06 UTC
(dolphinscheduler) branch dev updated: [Improvement-18056] Clean up unused methods and classes in the dolphinschudler-api module (#18134)
This is an automated email from the ASF dual-hosted git repository.
zihaoxiang pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git
The following commit(s) were added to refs/heads/dev by this push:
new 6d686f33ac [Improvement-18056] Clean up unused methods and classes in the dolphinschudler-api module (#18134)
6d686f33ac is described below
commit 6d686f33ac120f1ab9d0b81a939abf77e1091d2c
Author: njnu-seafish <su...@sina.com>
AuthorDate: Tue Apr 7 14:25:00 2026 +0800
[Improvement-18056] Clean up unused methods and classes in the dolphinschudler-api module (#18134)
---
.../api/audit/constants/AuditLogConstants.java | 1 -
.../constants/ApiFuncIdentificationConstant.java | 50 --
.../dolphinscheduler/api/dto/gantt/GanttDto.java | 19 -
.../taskRelation/TaskRelationFilterRequest.java | 6 -
.../api/dto/treeview/Instance.java | 3 -
.../dolphinscheduler/api/enums/ExecuteType.java | 2 +
.../workflow/BackfillWorkflowExecutorDelegate.java | 8 -
.../api/permission/PermissionCheck.java | 15 +-
.../dolphinscheduler/api/python/PythonGateway.java | 17 -
.../api/service/TaskDefinitionService.java | 12 -
.../api/service/TaskInstanceService.java | 11 -
.../api/service/WorkflowInstanceService.java | 12 -
.../api/service/WorkflowLineageService.java | 2 -
.../api/service/WorkflowTaskRelationService.java | 133 ---
.../api/service/impl/ExecutorServiceImpl.java | 331 --------
.../api/service/impl/SchedulerServiceImpl.java | 20 -
.../service/impl/TaskDefinitionServiceImpl.java | 170 ----
.../api/service/impl/TaskInstanceServiceImpl.java | 17 -
.../api/service/impl/TenantServiceImpl.java | 4 -
.../api/service/impl/UsersServiceImpl.java | 4 -
.../impl/WorkflowDefinitionServiceImpl.java | 144 +---
.../service/impl/WorkflowInstanceServiceImpl.java | 33 -
.../service/impl/WorkflowLineageServiceImpl.java | 10 +-
.../impl/WorkflowTaskRelationServiceImpl.java | 888 ---------------------
.../dolphinscheduler/api/utils/FileUtils.java | 88 --
.../apache/dolphinscheduler/api/utils/Result.java | 3 -
.../BackfillWorkflowRequestTransformer.java | 4 -
.../src/main/resources/i18n/messages.properties | 15 -
.../main/resources/i18n/messages_en_US.properties | 15 -
.../main/resources/i18n/messages_zh_CN.properties | 16 -
.../api/service/AlertGroupServiceTest.java | 1 -
.../service/AlertPluginInstanceServiceTest.java | 5 -
.../api/service/AuditServiceTest.java | 4 -
.../api/service/BaseServiceTest.java | 9 -
.../api/service/DataSourceServiceTest.java | 4 -
.../api/service/K8SNamespaceServiceTest.java | 8 -
.../api/service/ProjectServiceTest.java | 8 +-
.../api/service/SchedulerServiceTest.java | 14 -
.../api/service/SessionServiceTest.java | 4 -
.../api/service/TaskDefinitionLogServiceTest.java | 7 -
.../api/service/TaskDefinitionServiceImplTest.java | 6 -
.../api/service/TaskGroupServiceTest.java | 15 -
.../api/service/TaskInstanceServiceTest.java | 5 +-
.../api/service/TenantServiceTest.java | 4 -
.../api/service/UsersServiceTest.java | 15 -
.../api/service/WorkflowDefinitionServiceTest.java | 36 -
.../api/service/WorkflowInstanceServiceTest.java | 24 +-
.../service/WorkflowTaskLineageServiceTest.java | 4 -
.../service/WorkflowTaskRelationServiceTest.java | 622 ---------------
.../api/service/impl/ClusterServiceTest.java | 4 -
.../dolphinscheduler/api/utils/FileUtilsTest.java | 122 ---
51 files changed, 8 insertions(+), 2966 deletions(-)
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/audit/constants/AuditLogConstants.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/audit/constants/AuditLogConstants.java
index b7200adc13..b24abf56f9 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/audit/constants/AuditLogConstants.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/audit/constants/AuditLogConstants.java
@@ -41,6 +41,5 @@ public final class AuditLogConstants {
public static final String ALIAS = "alias";
public static final String FILE_NAME = "fileName";
public static final String FULL_NAME = "fullName";
- public static final String FUNC_NAME = "funcName";
}
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/constants/ApiFuncIdentificationConstant.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/constants/ApiFuncIdentificationConstant.java
index 12a0bee291..001a5910dd 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/constants/ApiFuncIdentificationConstant.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/constants/ApiFuncIdentificationConstant.java
@@ -24,8 +24,6 @@ import java.util.Map;
public class ApiFuncIdentificationConstant {
- public static final String ACCESS_TOKEN_MANAGE = "security:token:view";
- public static final String ACCESS_TOKEN_VIEW = "security:token:view";
public static final String ACCESS_TOKEN_CREATE = "security:token:create";
public static final String ACCESS_TOKEN_UPDATE = "security:token:update";
public static final String ACCESS_TOKEN_DELETE = "security:token:delete";
@@ -33,7 +31,6 @@ public class ApiFuncIdentificationConstant {
public static final String ALERT_GROUP_CREATE = "security:alert-group:create";
public static final String ALERT_GROUP_UPDATE = "security:alert-group:update";
public static final String ALERT_GROUP_DELETE = "security:alert-group:delete";
- public static final String TENANT_MANAGER = "security:tenant:view";
public static final String TENANT_CREATE = "security:tenant:create";
public static final String TENANT_UPDATE = "security:tenant:update";
public static final String TENANT_DELETE = "security:tenant:delete";
@@ -41,27 +38,13 @@ public class ApiFuncIdentificationConstant {
public static final String ALERT_PLUGIN_UPDATE = "security:alert-plugin:update";
public static final String ALERT_PLUGIN_DELETE = "security:alert-plugin:delete";
public static final String WORKER_GROUP_CREATE = "security:worker-group:create";
- public static final String WORKER_GROUP_EDIT = "security:worker-group:update";
public static final String WORKER_GROUP_DELETE = "security:worker-group:delete";
- public static final String YARN_QUEUE_MANAGE = "security:queue:view";
public static final String YARN_QUEUE_CREATE = "security:queue:create";
public static final String YARN_QUEUE_UPDATE = "security:queue:update";
public static final String ENVIRONMENT_CREATE = "security:environment:create";
public static final String ENVIRONMENT_UPDATE = "security:environment:update";
public static final String ENVIRONMENT_DELETE = "security:environment:delete";
- public static final String ENVIRONMENT_MANAGER = "security:environment:view";
- public static final String CALENDAR_CREATE = "security:calendar:create";
- public static final String CALENDAR_EDIT = "security:calendar:update";
- public static final String CALENDAR_DELETE = "security:calendar:delete";
- public static final String CARDS_CREATE = "security:cards:create";
- public static final String CARDS_EDIT = "security:cards:update";
- public static final String CARDS_EDIT_VALUE = "security:cards:value";
- public static final String CARDS_CARDS_DELETE = "security:cards:delete";
- public static final String ALARM_GROUP_MANAGE = "security:alert-group:view";
public static final String ALARM_INSTANCE_MANAGE = "security:alert-plugin:view";
- public static final String WORKER_GROUP_MANAGE = "security:worker-group:view";
- public static final String CALENDAR_MANAGE = "security:calendar:view";
- public static final String CARDS_MANAGER = "security:cards:view";
public static final String USER_MANAGER = "security:user:view";
public static final String PROJECT = "project:view";
@@ -70,22 +53,12 @@ public class ApiFuncIdentificationConstant {
public static final String PROJECT_DELETE = "project:delete";
public static final String WORKFLOW_DEFINITION = "project:definition:list";
public static final String WORKFLOW_CREATE = "project:definition:create";
- public static final String WORKFLOW_IMPORT = "project:definition:import";
public static final String WORKFLOW_UPDATE = "project:definition:update";
- public static final String WORKFLOW_START = "project:executors:start";
- public static final String TIMING = "project:schedules:timing";
public static final String WORKFLOW_ONLINE_OFFLINE = "project:definition:release";
- public static final String WORKFLOW_COPY = "project:definition:copy";
- public static final String CRON_MANAGE = "project:schedules:corn";
- public static final String WORKFLOW_DELETE = "project:definition:delete";
public static final String WORKFLOW_TREE_VIEW = "project:definition:view-tree";
- public static final String WORKFLOW_EXPORT = "project:definition:export";
public static final String WORKFLOW_BATCH_COPY = "project:definition:batch-copy";
- public static final String WORKFLOW_DEFINITION_EXPORT = "project:definition:batch-export";
- public static final String WORKFLOW_DEFINITION_BATCH_DELETE = "project:definition:batch-delete";
public static final String WORKFLOW_SWITCH_TO_THIS_VERSION = "project:definition:version:switch";
public static final String WORKFLOW_DEFINITION_DELETE = "project:definition:version:delete";
- public static final String WORKFLOW_SAVE = "project:definition:verify-name";
public static final String WORKFLOW_INSTANCE = "project:process-instance:list";
public static final String RERUN = "project:executors:execute";
public static final String FAILED_TO_RETRY = "project:executors:retry";
@@ -93,57 +66,34 @@ public class ApiFuncIdentificationConstant {
public static final String RECOVERY_SUSPEND = "project:executors:recover";
public static final String PAUSE = "project:executors:pause";
public static final String INSTANCE_DELETE = "project:process-instance:delete";
- public static final String INSTANCE_BATCH_DELETE = "project:process-instance:batch-delete";
public static final String FORCED_SUCCESS = "project:task-instance:force-success";
public static final String VIEW_LOG = "project:log:detail";
public static final String DOWNLOAD_LOG = "project:log:download-log";
public static final String PROJECT_OVERVIEW = "project:overview:view";
- public static final String WORKFLOW_RELATION = "project:lineages:view";
- public static final String WORKFLOW_DEFINITION_VIEW = "project:definition:view";
- public static final String WORKFLOW_INSTANCE_VIEW = "project:process-instance:view";
public static final String TASK_INSTANCE = "project:task-instance:view";
public static final String INSTANCE_UPDATE = "project:process-instance:update";
public static final String VERSION_LIST = "project:version:list";
public static final String TASK_DEFINITION = "project:task-definition:view";
- public static final String TASK_DEFINITION_CREATE = "project:task-definition:create";
- public static final String TASK_DEFINITION_UPDATE = "project:task-definition:edit";
public static final String TASK_DEFINITION_MOVE = "project:task-definition:move";
public static final String TASK_VERSION_VIEW = "project:task-definition:version";
public static final String TASK_DEFINITION_DELETE = "project:task-definition:delete";
- public static final String VERSION_DELETE = "project:version:delete";
public static final String DATASOURCE = "datasource:view";
public static final String DATASOURCE_CREATE_DATASOURCE = "datasource:create";
public static final String DATASOURCE_UPDATE = "datasource:update";
public static final String DATASOURCE_DELETE = "datasource:delete";
- public static final String DATASOURCE_LIST = "datasource:list";
- public static final String DATASOURCE_PARAM_VIEW = "datasource:param-view";
-
- public static final String FILE_VIEW = "resources:file:view";
- public static final String FOLDER_ONLINE_CREATE = "resources:file:create";
- public static final String FILE_ONLINE_CREATE = "resources:file:online-create";
- public static final String FILE_UPLOAD = "resources:file:upload";
- public static final String FILE_UPDATE = "resources:file:update-content";
- public static final String FILE_RENAME = "resources:file:rename";
- public static final String FILE_DOWNLOAD = "resources:file:download";
- public static final String FILE_DELETE = "resources:file:delete";
public static final String TASK_GROUP_VIEW = "resources:task-group:view";
public static final String TASK_GROUP_CREATE = "resources:task-group:create";
public static final String TASK_GROUP_CLOSE = "resources:task-group:close";
public static final String TASK_GROUP_EDIT = "resources:task-group:update";
- public static final String TASK_GROUP_VIEW_QUEUE = "resources:task-group:queue-view";
- public static final String TASK_GROUP_QUEUE = "resources:task-group-queue:view";
public static final String TASK_GROUP_QUEUE_PRIORITY = "resources:task-group-queue:priority";
public static final String TASK_GROUP_QUEUE_START = "resources:task-group-queue:start";
public static final String MONITOR_MASTER_VIEW = "monitor:masters:view";
- public static final String MONITOR_WORKER_VIEW = "monitor:workers:view";
public static final String MONITOR_DATABASES_VIEW = "monitor:databases:view";
- public static final String MONITOR_STATISTICS_VIEW = "monitor:statistics:view";
-
public final static Map<ExecuteType, String> map = new HashMap<ExecuteType, String>();
static {
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/dto/gantt/GanttDto.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/dto/gantt/GanttDto.java
index 06edac8fd5..706d631f7f 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/dto/gantt/GanttDto.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/dto/gantt/GanttDto.java
@@ -27,11 +27,6 @@ import lombok.Data;
@Data
public class GanttDto {
- /**
- * height
- */
- private int height;
-
/**
* tasks list
*/
@@ -52,18 +47,4 @@ public class GanttDto {
taskStatus.put("success", "success");
}
- public GanttDto(int height, List<Task> tasks, List<Long> taskNames) {
- this();
- this.height = height;
- this.tasks = tasks;
- this.taskNames = taskNames;
- }
-
- public GanttDto(int height, List<Task> tasks, List<Long> taskNames, Map<String, String> taskStatus) {
- this.height = height;
- this.tasks = tasks;
- this.taskNames = taskNames;
- this.taskStatus = taskStatus;
- }
-
}
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/dto/taskRelation/TaskRelationFilterRequest.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/dto/taskRelation/TaskRelationFilterRequest.java
index d198134681..188255984c 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/dto/taskRelation/TaskRelationFilterRequest.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/dto/taskRelation/TaskRelationFilterRequest.java
@@ -44,12 +44,6 @@ public class TaskRelationFilterRequest extends PageQueryDto {
@Schema(example = "1234567890123")
private long postTaskCode;
- public TaskRelationFilterRequest(long workflowCode, long preTaskCode, long postTaskCode) {
- this.workflowCode = workflowCode;
- this.preTaskCode = preTaskCode;
- this.postTaskCode = postTaskCode;
- }
-
public TaskRelationFilterRequest(long preTaskCode, long postTaskCode) {
this.preTaskCode = preTaskCode;
this.postTaskCode = postTaskCode;
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/dto/treeview/Instance.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/dto/treeview/Instance.java
index 84c0db7dbc..b05ee430db 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/dto/treeview/Instance.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/dto/treeview/Instance.java
@@ -68,9 +68,6 @@ public class Instance {
private long subflowCode;
- public Instance() {
- }
-
public Instance(int id, String name, long code, String type) {
this.id = id;
this.name = name;
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/enums/ExecuteType.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/enums/ExecuteType.java
index ff3f122a23..c6f9933d19 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/enums/ExecuteType.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/enums/ExecuteType.java
@@ -24,11 +24,13 @@ public enum ExecuteType {
/**
* operation type
+ * 0 none
* 1 repeat running
* 2 resume pause
* 3 resume failure
* 4 stop
* 5 pause
+ * 6 execute task
*/
NONE(0, "NONE"),
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/executor/workflow/BackfillWorkflowExecutorDelegate.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/executor/workflow/BackfillWorkflowExecutorDelegate.java
index 0c684f2876..ddda4e5f03 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/executor/workflow/BackfillWorkflowExecutorDelegate.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/executor/workflow/BackfillWorkflowExecutorDelegate.java
@@ -25,14 +25,12 @@ import org.apache.dolphinscheduler.common.enums.RunMode;
import org.apache.dolphinscheduler.common.model.Server;
import org.apache.dolphinscheduler.common.utils.DateUtils;
import org.apache.dolphinscheduler.dao.entity.WorkflowDefinition;
-import org.apache.dolphinscheduler.dao.repository.CommandDao;
import org.apache.dolphinscheduler.extract.base.client.Clients;
import org.apache.dolphinscheduler.extract.master.IWorkflowControlClient;
import org.apache.dolphinscheduler.extract.master.transportor.workflow.WorkflowBackfillTriggerRequest;
import org.apache.dolphinscheduler.extract.master.transportor.workflow.WorkflowBackfillTriggerResponse;
import org.apache.dolphinscheduler.registry.api.RegistryClient;
import org.apache.dolphinscheduler.registry.api.enums.RegistryNodeType;
-import org.apache.dolphinscheduler.service.process.ProcessService;
import java.time.ZonedDateTime;
import java.util.ArrayList;
@@ -51,12 +49,6 @@ import com.google.common.collect.Lists;
@Component
public class BackfillWorkflowExecutorDelegate implements IExecutorDelegate<BackfillWorkflowDTO, List<Integer>> {
- @Autowired
- private CommandDao commandDao;
-
- @Autowired
- private ProcessService processService;
-
@Autowired
private RegistryClient registryClient;
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/permission/PermissionCheck.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/permission/PermissionCheck.java
index 6ace0b64ac..0699c7df9b 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/permission/PermissionCheck.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/permission/PermissionCheck.java
@@ -20,7 +20,6 @@ package org.apache.dolphinscheduler.api.permission;
import org.apache.dolphinscheduler.common.enums.AuthorizationType;
import org.apache.dolphinscheduler.common.enums.UserType;
import org.apache.dolphinscheduler.dao.entity.User;
-import org.apache.dolphinscheduler.plugin.task.api.model.ResourceInfo;
import org.apache.dolphinscheduler.service.exceptions.ServiceException;
import org.apache.dolphinscheduler.service.process.ProcessService;
@@ -36,6 +35,7 @@ public class PermissionCheck<T> {
* logger
*/
private Logger logger;
+
/**
* Authorization Type
*/
@@ -51,11 +51,6 @@ public class PermissionCheck<T> {
*/
private T[] needChecks;
- /**
- * resoruce info
- */
- private List<ResourceInfo> resourceList;
-
/**
* user id
*/
@@ -86,14 +81,6 @@ public class PermissionCheck<T> {
this.userId = userId;
}
- public List<ResourceInfo> getResourceList() {
- return resourceList;
- }
-
- public void setResourceList(List<ResourceInfo> resourceList) {
- this.resourceList = resourceList;
- }
-
/**
* check permission
*
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/python/PythonGateway.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/python/PythonGateway.java
index d6650a4044..95111cb2e5 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/python/PythonGateway.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/python/PythonGateway.java
@@ -34,13 +34,10 @@ import org.apache.dolphinscheduler.api.service.UsersService;
import org.apache.dolphinscheduler.api.service.WorkflowDefinitionService;
import org.apache.dolphinscheduler.common.constants.Constants;
import org.apache.dolphinscheduler.common.enums.CommandType;
-import org.apache.dolphinscheduler.common.enums.ComplementDependentMode;
-import org.apache.dolphinscheduler.common.enums.ExecutionOrder;
import org.apache.dolphinscheduler.common.enums.FailureStrategy;
import org.apache.dolphinscheduler.common.enums.Flag;
import org.apache.dolphinscheduler.common.enums.Priority;
import org.apache.dolphinscheduler.common.enums.ReleaseState;
-import org.apache.dolphinscheduler.common.enums.RunMode;
import org.apache.dolphinscheduler.common.enums.TaskDependType;
import org.apache.dolphinscheduler.common.enums.UserType;
import org.apache.dolphinscheduler.common.enums.WarningType;
@@ -49,7 +46,6 @@ import org.apache.dolphinscheduler.common.utils.CodeGenerateUtils;
import org.apache.dolphinscheduler.dao.entity.DataSource;
import org.apache.dolphinscheduler.dao.entity.Project;
import org.apache.dolphinscheduler.dao.entity.ProjectUser;
-import org.apache.dolphinscheduler.dao.entity.Queue;
import org.apache.dolphinscheduler.dao.entity.Schedule;
import org.apache.dolphinscheduler.dao.entity.TaskDefinition;
import org.apache.dolphinscheduler.dao.entity.Tenant;
@@ -94,11 +90,6 @@ public class PythonGateway {
private static final Priority DEFAULT_PRIORITY = Priority.MEDIUM;
private static final Long DEFAULT_ENVIRONMENT_CODE = -1L;
- private static final TaskDependType DEFAULT_TASK_DEPEND_TYPE = TaskDependType.TASK_POST;
- private static final RunMode DEFAULT_RUN_MODE = RunMode.RUN_MODE_SERIAL;
- private static final ExecutionOrder DEFAULT_EXECUTION_ORDER = ExecutionOrder.DESC_ORDER;
- private static final int DEFAULT_DRY_RUN = 0;
- private static final ComplementDependentMode COMPLEMENT_DEPENDENT_MODE = ComplementDependentMode.OFF_MODE;
// We use admin user's user_id to skip some permission issue from python gateway service
private static final int ADMIN_USER_ID = 1;
@@ -160,14 +151,6 @@ public class PythonGateway {
}
};
- private final Queue queuePythonGateway = new Queue() {
-
- {
- setId(Integer.MAX_VALUE);
- setQueueName("queuePythonGateway");
- }
- };
-
public String ping() {
return "PONG";
}
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/TaskDefinitionService.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/TaskDefinitionService.java
index 00d1f43093..05343c736d 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/TaskDefinitionService.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/TaskDefinitionService.java
@@ -17,8 +17,6 @@
package org.apache.dolphinscheduler.api.service;
-import org.apache.dolphinscheduler.api.dto.task.TaskFilterRequest;
-import org.apache.dolphinscheduler.api.utils.PageInfo;
import org.apache.dolphinscheduler.api.utils.Result;
import org.apache.dolphinscheduler.common.enums.ReleaseState;
import org.apache.dolphinscheduler.dao.entity.TaskDefinition;
@@ -54,16 +52,6 @@ public interface TaskDefinitionService {
TaskDefinition getTaskDefinition(User loginUser,
long taskCode);
- /**
- * Get resource task definition according to query parameter
- *
- * @param loginUser login user
- * @param taskFilterRequest taskFilterRequest
- * @return PageResourceResponse from condition
- */
- PageInfo<TaskDefinition> filterTaskDefinition(User loginUser,
- TaskFilterRequest taskFilterRequest);
-
/**
* update task definition and upstream
*
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/TaskInstanceService.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/TaskInstanceService.java
index 3690aa118c..63b65d9a54 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/TaskInstanceService.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/TaskInstanceService.java
@@ -19,7 +19,6 @@ package org.apache.dolphinscheduler.api.service;
import org.apache.dolphinscheduler.api.utils.Result;
import org.apache.dolphinscheduler.common.enums.TaskExecuteType;
-import org.apache.dolphinscheduler.dao.entity.TaskInstance;
import org.apache.dolphinscheduler.dao.entity.User;
import org.apache.dolphinscheduler.plugin.task.api.enums.TaskExecutionStatus;
@@ -90,15 +89,5 @@ public interface TaskInstanceService {
*/
Result stopTask(User loginUser, long projectCode, Integer taskInstanceId);
- /**
- * query taskInstance by taskInstanceCode
- *
- * @param loginUser login user
- * @param projectCode project code
- * @param taskInstanceId taskInstance id
- * @return the result code and msg
- */
- TaskInstance queryTaskInstanceById(User loginUser, long projectCode, Long taskInstanceId);
-
void deleteByWorkflowInstanceId(Integer workflowInstanceId);
}
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/WorkflowInstanceService.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/WorkflowInstanceService.java
index cd8ae1ced6..0eb224d305 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/WorkflowInstanceService.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/WorkflowInstanceService.java
@@ -51,18 +51,6 @@ public interface WorkflowInstanceService {
long projectCode,
Integer workflowInstanceId);
- WorkflowInstance queryByWorkflowInstanceIdThrowExceptionIfNotFound(Integer workflowInstanceId);
-
- /**
- * query workflow instance by id
- *
- * @param loginUser login user
- * @param workflowInstanceId workflow instance id
- * @return workflow instance detail
- */
- Map<String, Object> queryWorkflowInstanceById(User loginUser,
- Integer workflowInstanceId);
-
/**
* paging query workflow instance list, filtering according to project, workflow definition, time range, keyword, workflow status
*
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/WorkflowLineageService.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/WorkflowLineageService.java
index f20503b140..8340029eec 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/WorkflowLineageService.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/WorkflowLineageService.java
@@ -55,8 +55,6 @@ public interface WorkflowLineageService {
List<DependentLineageTask> queryDependentWorkflowDefinitions(long projectCode, long workflowDefinitionCode,
Long taskCode);
- int createWorkflowLineage(List<WorkflowTaskLineage> workflowTaskLineages);
-
/**
* Replace the lineage of given workflow definition by new lineage list.
* When the list is empty, existing lineage data will be deleted.
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/WorkflowTaskRelationService.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/WorkflowTaskRelationService.java
index 23fa22815a..8c5ca80703 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/WorkflowTaskRelationService.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/WorkflowTaskRelationService.java
@@ -17,145 +17,12 @@
package org.apache.dolphinscheduler.api.service;
-import org.apache.dolphinscheduler.api.dto.taskRelation.TaskRelationCreateRequest;
-import org.apache.dolphinscheduler.api.dto.taskRelation.TaskRelationUpdateUpstreamRequest;
-import org.apache.dolphinscheduler.dao.entity.User;
import org.apache.dolphinscheduler.dao.entity.WorkflowTaskRelation;
import java.util.List;
-import java.util.Map;
public interface WorkflowTaskRelationService {
- /**
- * create workflow task relation
- *
- * @param loginUser login user
- * @param projectCode project code
- * @param workflowDefinitionCode workflowDefinitionCode
- * @param preTaskCode preTaskCode
- * @param postTaskCode postTaskCode
- * @return create result code
- */
- Map<String, Object> createWorkflowTaskRelation(User loginUser,
- long projectCode,
- long workflowDefinitionCode,
- long preTaskCode,
- long postTaskCode);
-
- /**
- * create resource workflow task relation
- *
- * @param loginUser login user
- * @param taskRelationCreateRequest project code
- * @return WorkflowTaskRelation object
- */
- WorkflowTaskRelation createWorkflowTaskRelationV2(User loginUser,
- TaskRelationCreateRequest taskRelationCreateRequest);
-
- /**
- * delete workflow task relation
- *
- * @param loginUser login user
- * @param projectCode project code
- * @param workflowDefinitionCode workflow definition code
- * @param taskCode the post task code
- * @return delete result code
- */
- Map<String, Object> deleteTaskWorkflowRelation(User loginUser,
- long projectCode,
- long workflowDefinitionCode,
- long taskCode);
-
- /**
- * delete workflow task relation, will delete exists relation preTaskCode -> postTaskCode, throw error if not exists
- *
- * @param loginUser login user
- * @param preTaskCode relation upstream code
- * @param postTaskCode relation downstream code
- */
- void deleteTaskWorkflowRelationV2(User loginUser,
- long preTaskCode,
- long postTaskCode);
-
- /**
- * delete workflow task relation, will delete exists relation upstream -> downstream, throw error if not exists
- *
- * @param loginUser login user
- * @param taskCode relation upstream code
- * @param needSyncDag needSyncDag
- * @param taskRelationUpdateUpstreamRequest relation downstream code
- */
- List<WorkflowTaskRelation> updateUpstreamTaskDefinitionWithSyncDag(User loginUser,
- long taskCode,
- Boolean needSyncDag,
- TaskRelationUpdateUpstreamRequest taskRelationUpdateUpstreamRequest);
-
- /**
- * delete task upstream relation
- *
- * @param loginUser login user
- * @param projectCode project code
- * @param preTaskCodes the pre task codes, sep ','
- * @param taskCode the post task code
- * @return delete result code
- */
- Map<String, Object> deleteUpstreamRelation(User loginUser,
- long projectCode,
- String preTaskCodes,
- long taskCode);
-
- /**
- * delete task downstream relation
- *
- * @param loginUser login user
- * @param projectCode project code
- * @param postTaskCodes the post task codes, sep ','
- * @param taskCode the pre task code
- * @return delete result code
- */
- Map<String, Object> deleteDownstreamRelation(User loginUser,
- long projectCode,
- String postTaskCodes,
- long taskCode);
-
- /**
- * query task upstream relation
- *
- * @param loginUser login user
- * @param projectCode project code
- * @param taskCode current task code (post task code)
- * @return workflow task relation list
- */
- Map<String, Object> queryUpstreamRelation(User loginUser,
- long projectCode,
- long taskCode);
-
- /**
- * query task downstream relation
- *
- * @param loginUser login user
- * @param projectCode project code
- * @param taskCode pre task code
- * @return workflow task relation list
- */
- Map<String, Object> queryDownstreamRelation(User loginUser,
- long projectCode,
- long taskCode);
-
- /**
- * delete edge
- *
- * @param loginUser login user
- * @param projectCode project code
- * @param workflowDefinitionCode workflow definition code
- * @param preTaskCode pre task code
- * @param postTaskCode post task code
- * @return delete result code
- */
- Map<String, Object> deleteEdge(User loginUser, long projectCode, long workflowDefinitionCode, long preTaskCode,
- long postTaskCode);
-
List<WorkflowTaskRelation> queryByWorkflowDefinitionCode(long workflowDefinitionCode,
int workflowDefinitionVersion);
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ExecutorServiceImpl.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ExecutorServiceImpl.java
index c308c7f420..47eb69c255 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ExecutorServiceImpl.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ExecutorServiceImpl.java
@@ -18,13 +18,9 @@
package org.apache.dolphinscheduler.api.service.impl;
import static com.google.common.base.Preconditions.checkNotNull;
-import static org.apache.dolphinscheduler.common.constants.CommandKeyConstants.CMD_PARAM_COMPLEMENT_DATA_END_DATE;
-import static org.apache.dolphinscheduler.common.constants.CommandKeyConstants.CMD_PARAM_COMPLEMENT_DATA_SCHEDULE_DATE_LIST;
-import static org.apache.dolphinscheduler.common.constants.CommandKeyConstants.CMD_PARAM_COMPLEMENT_DATA_START_DATE;
import static org.apache.dolphinscheduler.common.constants.CommandKeyConstants.CMD_PARAM_RECOVER_WORKFLOW_ID_STRING;
import static org.apache.dolphinscheduler.common.constants.CommandKeyConstants.CMD_PARAM_START_NODES;
import static org.apache.dolphinscheduler.common.constants.CommandKeyConstants.CMD_PARAM_SUB_WORKFLOW_DEFINITION_CODE;
-import static org.apache.dolphinscheduler.common.constants.Constants.COMMA;
import org.apache.dolphinscheduler.api.constants.ApiFuncIdentificationConstant;
import org.apache.dolphinscheduler.api.dto.workflow.WorkflowBackFillRequest;
@@ -36,8 +32,6 @@ import org.apache.dolphinscheduler.api.exceptions.ServiceException;
import org.apache.dolphinscheduler.api.executor.workflow.ExecutorClient;
import org.apache.dolphinscheduler.api.service.ExecutorService;
import org.apache.dolphinscheduler.api.service.ProjectService;
-import org.apache.dolphinscheduler.api.service.WorkerGroupService;
-import org.apache.dolphinscheduler.api.service.WorkflowLineageService;
import org.apache.dolphinscheduler.api.validator.workflow.BackfillWorkflowDTO;
import org.apache.dolphinscheduler.api.validator.workflow.BackfillWorkflowDTOValidator;
import org.apache.dolphinscheduler.api.validator.workflow.BackfillWorkflowRequestTransformer;
@@ -46,21 +40,13 @@ import org.apache.dolphinscheduler.api.validator.workflow.TriggerWorkflowDTOVali
import org.apache.dolphinscheduler.api.validator.workflow.TriggerWorkflowRequestTransformer;
import org.apache.dolphinscheduler.common.constants.Constants;
import org.apache.dolphinscheduler.common.enums.CommandType;
-import org.apache.dolphinscheduler.common.enums.ComplementDependentMode;
-import org.apache.dolphinscheduler.common.enums.CycleEnum;
-import org.apache.dolphinscheduler.common.enums.ExecutionOrder;
import org.apache.dolphinscheduler.common.enums.Flag;
import org.apache.dolphinscheduler.common.enums.ReleaseState;
-import org.apache.dolphinscheduler.common.enums.RunMode;
import org.apache.dolphinscheduler.common.enums.TaskDependType;
-import org.apache.dolphinscheduler.common.utils.DateUtils;
import org.apache.dolphinscheduler.common.utils.JSONUtils;
import org.apache.dolphinscheduler.dao.entity.Command;
-import org.apache.dolphinscheduler.dao.entity.DependentWorkflowDefinition;
-import org.apache.dolphinscheduler.dao.entity.Schedule;
import org.apache.dolphinscheduler.dao.entity.TaskDefinition;
import org.apache.dolphinscheduler.dao.entity.TaskGroupQueue;
-import org.apache.dolphinscheduler.dao.entity.Tenant;
import org.apache.dolphinscheduler.dao.entity.User;
import org.apache.dolphinscheduler.dao.entity.WorkflowDefinition;
import org.apache.dolphinscheduler.dao.entity.WorkflowInstance;
@@ -68,29 +54,18 @@ import org.apache.dolphinscheduler.dao.entity.WorkflowTaskRelation;
import org.apache.dolphinscheduler.dao.mapper.TaskDefinitionLogMapper;
import org.apache.dolphinscheduler.dao.mapper.TaskDefinitionMapper;
import org.apache.dolphinscheduler.dao.mapper.TaskGroupQueueMapper;
-import org.apache.dolphinscheduler.dao.mapper.TenantMapper;
import org.apache.dolphinscheduler.dao.mapper.WorkflowDefinitionMapper;
import org.apache.dolphinscheduler.dao.mapper.WorkflowTaskRelationMapper;
import org.apache.dolphinscheduler.dao.repository.WorkflowInstanceDao;
import org.apache.dolphinscheduler.plugin.task.api.utils.TaskTypeUtils;
import org.apache.dolphinscheduler.service.command.CommandService;
-import org.apache.dolphinscheduler.service.cron.CronUtils;
-import org.apache.dolphinscheduler.service.exceptions.CronParseException;
import org.apache.dolphinscheduler.service.process.ProcessService;
-import org.apache.commons.beanutils.BeanUtils;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.lang3.StringUtils;
-
-import java.time.ZonedDateTime;
-import java.util.ArrayList;
-import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
-import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
@@ -101,8 +76,6 @@ import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import com.google.common.base.Splitter;
-
@Service
@Slf4j
public class ExecutorServiceImpl extends BaseServiceImpl implements ExecutorService {
@@ -135,15 +108,6 @@ public class ExecutorServiceImpl extends BaseServiceImpl implements ExecutorServ
@Autowired
private TaskGroupQueueMapper taskGroupQueueMapper;
- @Autowired
- private WorkerGroupService workerGroupService;
-
- @Autowired
- private TenantMapper tenantMapper;
-
- @Autowired
- private WorkflowLineageService workflowLineageService;
-
@Autowired
private TriggerWorkflowRequestTransformer triggerWorkflowRequestTransformer;
@@ -238,20 +202,6 @@ public class ExecutorServiceImpl extends BaseServiceImpl implements ExecutorServ
.isEmpty();
}
- /**
- * check valid tenant
- *
- * @param tenantCode
- */
- private void checkValidTenant(String tenantCode) {
- if (!Constants.DEFAULT.equals(tenantCode)) {
- Tenant tenant = tenantMapper.queryByTenantCode(tenantCode);
- if (tenant == null) {
- throw new ServiceException(Status.TENANT_NOT_EXIST, tenantCode);
- }
- }
- }
-
@Override
public void controlWorkflowInstance(User loginUser, Integer workflowInstanceId, ExecuteType executeType) {
checkNotNull(workflowInstanceId, "workflowInstanceId cannot be null");
@@ -427,287 +377,6 @@ public class ExecutorServiceImpl extends BaseServiceImpl implements ExecutorServ
return result;
}
- private int createComplementCommand(Long triggerCode, Command command, Map<String, String> cmdParam,
- List<ZonedDateTime> dateTimeList, List<Schedule> schedules,
- ComplementDependentMode complementDependentMode, boolean allLevelDependent) {
-
- String dateTimeListStr = dateTimeList.stream()
- .map(item -> DateUtils.dateToString(item))
- .collect(Collectors.joining(COMMA));
-
- cmdParam.put(CMD_PARAM_COMPLEMENT_DATA_SCHEDULE_DATE_LIST, dateTimeListStr);
- command.setCommandParam(JSONUtils.toJsonString(cmdParam));
-
- log.info("Creating command, commandInfo:{}.", command);
- int createCount = commandService.createCommand(command);
-
- if (createCount > 0) {
- log.info("Create {} command complete, workflowDefinitionCode:{}",
- command.getCommandType().getDescp(), command.getWorkflowDefinitionCode());
- } else {
- log.error("Create {} command error, workflowDefinitionCode:{}",
- command.getCommandType().getDescp(), command.getWorkflowDefinitionCode());
- }
-
- if (schedules.isEmpty() || complementDependentMode == ComplementDependentMode.OFF_MODE) {
- log.info(
- "Complement dependent mode is off mode or Scheduler is empty, so skip create complement dependent command, workflowDefinitionCode:{}.",
- command.getWorkflowDefinitionCode());
- } else {
- log.info(
- "Complement dependent mode is all dependent and Scheduler is not empty, need create complement dependent command, workflowDefinitionCode:{}.",
- command.getWorkflowDefinitionCode());
- createComplementDependentCommand(schedules, command, allLevelDependent);
- }
-
- return createCount;
- }
-
- protected int createComplementCommandList(Long triggerCode, String scheduleTimeParam, RunMode runMode,
- Command command,
- Integer expectedParallelismNumber,
- ComplementDependentMode complementDependentMode,
- boolean allLevelDependent,
- ExecutionOrder executionOrder) throws CronParseException {
- int createCount = 0;
- int dependentWorkflowDefinitionCreateCount = 0;
- runMode = (runMode == null) ? RunMode.RUN_MODE_SERIAL : runMode;
- Map<String, String> cmdParam = JSONUtils.toMap(command.getCommandParam());
- Map<String, String> scheduleParam = JSONUtils.toMap(scheduleTimeParam);
-
- if (Objects.isNull(executionOrder)) {
- executionOrder = ExecutionOrder.DESC_ORDER;
- }
-
- List<Schedule> schedules = processService.queryReleaseSchedulerListByWorkflowDefinitionCode(
- command.getWorkflowDefinitionCode());
-
- List<ZonedDateTime> listDate = new ArrayList<>();
- if (scheduleParam.containsKey(CMD_PARAM_COMPLEMENT_DATA_START_DATE) && scheduleParam.containsKey(
- CMD_PARAM_COMPLEMENT_DATA_END_DATE)) {
- String startDate = scheduleParam.get(CMD_PARAM_COMPLEMENT_DATA_START_DATE);
- String endDate = scheduleParam.get(CMD_PARAM_COMPLEMENT_DATA_END_DATE);
- if (startDate != null && endDate != null) {
- listDate = CronUtils.getSelfFireDateList(
- DateUtils.stringToZoneDateTime(startDate),
- DateUtils.stringToZoneDateTime(endDate),
- schedules);
- }
- }
-
- if (scheduleParam.containsKey(CMD_PARAM_COMPLEMENT_DATA_SCHEDULE_DATE_LIST)) {
- String dateList = scheduleParam.get(CMD_PARAM_COMPLEMENT_DATA_SCHEDULE_DATE_LIST);
-
- if (StringUtils.isNotBlank(dateList)) {
- listDate = Splitter.on(COMMA).splitToStream(dateList)
- .map(item -> DateUtils.stringToZoneDateTime(item.trim()))
- .distinct()
- .collect(Collectors.toList());
- }
- }
-
- if (CollectionUtils.isEmpty(listDate)) {
- throw new ServiceException(Status.TASK_COMPLEMENT_DATA_DATE_ERROR);
- }
-
- if (executionOrder.equals(ExecutionOrder.DESC_ORDER)) {
- Collections.sort(listDate, Collections.reverseOrder());
- } else {
- Collections.sort(listDate);
- }
-
- switch (runMode) {
- case RUN_MODE_SERIAL: {
- log.info("RunMode of {} command is serial run, workflowDefinitionCode:{}.",
- command.getCommandType().getDescp(), command.getWorkflowDefinitionCode());
- createCount = createComplementCommand(triggerCode, command, cmdParam, listDate, schedules,
- complementDependentMode, allLevelDependent);
- break;
- }
- case RUN_MODE_PARALLEL: {
- log.info("RunMode of {} command is parallel run, workflowDefinitionCode:{}.",
- command.getCommandType().getDescp(), command.getWorkflowDefinitionCode());
-
- int queueNum = 0;
- if (CollectionUtils.isNotEmpty(listDate)) {
- queueNum = listDate.size();
- if (expectedParallelismNumber != null && expectedParallelismNumber != 0) {
- queueNum = Math.min(queueNum, expectedParallelismNumber);
- }
- log.info("Complement command run in parallel mode, current expectedParallelismNumber:{}.",
- queueNum);
- List[] queues = new List[queueNum];
-
- for (int i = 0; i < listDate.size(); i++) {
- if (Objects.isNull(queues[i % queueNum])) {
- queues[i % queueNum] = new ArrayList();
- }
- queues[i % queueNum].add(listDate.get(i));
- }
- for (List queue : queues) {
- createCount = createComplementCommand(triggerCode, command, cmdParam, queue, schedules,
- complementDependentMode, allLevelDependent);
- }
- }
- break;
- }
- default:
- break;
- }
- log.info("Create complement command count:{}, Create dependent complement command count:{}", createCount,
- dependentWorkflowDefinitionCreateCount);
- return createCount;
- }
-
- /**
- * create complement dependent command
- */
- public int createComplementDependentCommand(List<Schedule> schedules, Command command, boolean allLevelDependent) {
- int dependentWorkflowDefinitionCreateCount = 0;
- Command dependentCommand;
-
- try {
- dependentCommand = (Command) BeanUtils.cloneBean(command);
- } catch (Exception e) {
- log.error("Copy dependent command error.", e);
- return dependentWorkflowDefinitionCreateCount;
- }
-
- List<DependentWorkflowDefinition> dependentWorkflowDefinitionList =
- getComplementDependentDefinitionList(dependentCommand.getWorkflowDefinitionCode(),
- CronUtils.getMaxCycle(schedules.get(0).getCrontab()), dependentCommand.getWorkerGroup(),
- allLevelDependent);
- dependentCommand.setTaskDependType(TaskDependType.TASK_POST);
- for (DependentWorkflowDefinition dependentWorkflowDefinition : dependentWorkflowDefinitionList) {
- // If the id is Integer, the auto-increment id will be obtained by mybatis-plus
- // and causing duplicate when clone it.
- dependentCommand.setId(null);
- dependentCommand.setWorkflowDefinitionCode(dependentWorkflowDefinition.getWorkflowDefinitionCode());
- dependentCommand.setWorkflowDefinitionVersion(dependentWorkflowDefinition.getWorkflowDefinitionVersion());
- dependentCommand.setWorkerGroup(dependentWorkflowDefinition.getWorkerGroup());
- Map<String, String> cmdParam = JSONUtils.toMap(dependentCommand.getCommandParam());
- cmdParam.put(CMD_PARAM_START_NODES, String.valueOf(dependentWorkflowDefinition.getTaskDefinitionCode()));
- dependentCommand.setCommandParam(JSONUtils.toJsonString(cmdParam));
- log.info("Creating complement dependent command, commandInfo:{}.", command);
- dependentWorkflowDefinitionCreateCount += commandService.createCommand(dependentCommand);
- }
-
- return dependentWorkflowDefinitionCreateCount;
- }
-
- /**
- * get complement dependent online workflow definition list
- */
- private List<DependentWorkflowDefinition> getComplementDependentDefinitionList(long workflowDefinitionCode,
- CycleEnum workflowDefinitionCycle,
- String workerGroup,
- boolean allLevelDependent) {
- List<DependentWorkflowDefinition> dependentWorkflowDefinitionList =
- checkDependentWorkflowDefinitionValid(
- workflowLineageService.queryDownstreamDependentWorkflowDefinitions(workflowDefinitionCode),
- workflowDefinitionCycle, workerGroup,
- workflowDefinitionCode);
-
- if (dependentWorkflowDefinitionList.isEmpty()) {
- return dependentWorkflowDefinitionList;
- }
-
- if (allLevelDependent) {
- List<DependentWorkflowDefinition> childList = new ArrayList<>(dependentWorkflowDefinitionList);
- while (true) {
- List<DependentWorkflowDefinition> childDependentList = childList
- .stream()
- .flatMap(dependentWorkflowDefinition -> checkDependentWorkflowDefinitionValid(
- workflowLineageService.queryDownstreamDependentWorkflowDefinitions(
- dependentWorkflowDefinition.getWorkflowDefinitionCode()),
- workflowDefinitionCycle,
- workerGroup,
- dependentWorkflowDefinition.getWorkflowDefinitionCode()).stream())
- .collect(Collectors.toList());
- if (childDependentList.isEmpty()) {
- break;
- }
- dependentWorkflowDefinitionList.addAll(childDependentList);
- childList = new ArrayList<>(childDependentList);
- }
- }
- return dependentWorkflowDefinitionList;
- }
-
- /**
- * Check whether the dependency cycle of the dependent node is consistent with the schedule cycle of
- * the dependent workflow definition and if there is no worker group in the schedule, use the complement selection's
- * worker group
- */
- private List<DependentWorkflowDefinition> checkDependentWorkflowDefinitionValid(
- List<DependentWorkflowDefinition> dependentWorkflowDefinitionList,
- CycleEnum workflowDefinitionCycle,
- String workerGroup,
- long upstreamWorkflowDefinitionCode) {
- List<DependentWorkflowDefinition> validDependentWorkflowDefinitionList = new ArrayList<>();
-
- List<Long> workflowDefinitionCodeList =
- dependentWorkflowDefinitionList.stream().map(DependentWorkflowDefinition::getWorkflowDefinitionCode)
- .collect(Collectors.toList());
-
- Map<Long, String> workflowDefinitionWorkerGroupMap =
- workerGroupService.queryWorkerGroupByWorkflowDefinitionCodes(workflowDefinitionCodeList);
-
- for (DependentWorkflowDefinition dependentWorkflowDefinition : dependentWorkflowDefinitionList) {
- if (dependentWorkflowDefinition
- .getDependentCycle(upstreamWorkflowDefinitionCode) == workflowDefinitionCycle) {
- if (workflowDefinitionWorkerGroupMap
- .get(dependentWorkflowDefinition.getWorkflowDefinitionCode()) == null) {
- dependentWorkflowDefinition.setWorkerGroup(workerGroup);
- }
-
- validDependentWorkflowDefinitionList.add(dependentWorkflowDefinition);
- }
- }
-
- return validDependentWorkflowDefinitionList;
- }
-
- /**
- * @param schedule
- * @return check error return 0, otherwise 1
- */
- private boolean isValidateScheduleTime(String schedule) {
- Map<String, String> scheduleResult = JSONUtils.toMap(schedule);
- if (scheduleResult == null) {
- return false;
- }
- if (scheduleResult.containsKey(CMD_PARAM_COMPLEMENT_DATA_SCHEDULE_DATE_LIST)) {
- if (scheduleResult.get(CMD_PARAM_COMPLEMENT_DATA_SCHEDULE_DATE_LIST) == null) {
- return false;
- }
- }
- if (scheduleResult.containsKey(CMD_PARAM_COMPLEMENT_DATA_START_DATE)) {
- String startDate = scheduleResult.get(CMD_PARAM_COMPLEMENT_DATA_START_DATE);
- String endDate = scheduleResult.get(CMD_PARAM_COMPLEMENT_DATA_END_DATE);
- if (startDate == null || endDate == null) {
- return false;
- }
- try {
- ZonedDateTime start = DateUtils.stringToZoneDateTime(startDate);
- ZonedDateTime end = DateUtils.stringToZoneDateTime(endDate);
- if (start == null || end == null) {
- return false;
- }
- if (start.isAfter(end)) {
- log.error(
- "Complement data parameter error, start time should be before end time, startDate:{}, endDate:{}.",
- start, end);
- return false;
- }
- } catch (Exception ex) {
- log.warn("Parse schedule time error, startDate:{}, endDate:{}.", startDate, endDate);
- return false;
- }
- }
- return true;
- }
-
@Override
public void execStreamTaskInstance(User loginUser,
long projectCode,
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/SchedulerServiceImpl.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/SchedulerServiceImpl.java
index 70b192a697..e43863f509 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/SchedulerServiceImpl.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/SchedulerServiceImpl.java
@@ -42,7 +42,6 @@ import org.apache.dolphinscheduler.dao.entity.Project;
import org.apache.dolphinscheduler.dao.entity.Schedule;
import org.apache.dolphinscheduler.dao.entity.User;
import org.apache.dolphinscheduler.dao.entity.WorkflowDefinition;
-import org.apache.dolphinscheduler.dao.mapper.EnvironmentMapper;
import org.apache.dolphinscheduler.dao.mapper.ProjectMapper;
import org.apache.dolphinscheduler.dao.mapper.ScheduleMapper;
import org.apache.dolphinscheduler.dao.mapper.WorkflowDefinitionMapper;
@@ -97,9 +96,6 @@ public class SchedulerServiceImpl extends BaseServiceImpl implements SchedulerSe
@Autowired
private SchedulerApi schedulerApi;
- @Autowired
- private EnvironmentMapper environmentMapper;
-
@Autowired
private TenantExistValidator tenantExistValidator;
@@ -226,22 +222,6 @@ public class SchedulerServiceImpl extends BaseServiceImpl implements SchedulerSe
this.projectService.checkProjectAndAuthThrowException(loginUser, project, null);
}
- private void scheduleParamCheck(String scheduleParamStr) {
- ScheduleParam scheduleParam = JSONUtils.parseObject(scheduleParamStr, ScheduleParam.class);
- if (scheduleParam == null) {
- throw new ServiceException(Status.PARSE_SCHEDULE_PARAM_ERROR, scheduleParamStr);
- }
- if (DateUtils.differSec(scheduleParam.getStartTime(), scheduleParam.getEndTime()) == 0) {
- throw new ServiceException(Status.SCHEDULE_START_TIME_END_TIME_SAME);
- }
- if (scheduleParam.getStartTime().getTime() > scheduleParam.getEndTime().getTime()) {
- throw new ServiceException(Status.START_TIME_BIGGER_THAN_END_TIME_ERROR);
- }
- if (!CronUtils.isValidExpression(scheduleParam.getCrontab())) {
- throw new ServiceException(Status.SCHEDULE_CRON_CHECK_FAILED, scheduleParam.getCrontab());
- }
- }
-
/**
* updateWorkflowInstance schedule
*
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskDefinitionServiceImpl.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskDefinitionServiceImpl.java
index da10229d56..9ee45ee442 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskDefinitionServiceImpl.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskDefinitionServiceImpl.java
@@ -18,20 +18,15 @@
package org.apache.dolphinscheduler.api.service.impl;
import static org.apache.dolphinscheduler.api.constants.ApiFuncIdentificationConstant.TASK_DEFINITION;
-import static org.apache.dolphinscheduler.api.constants.ApiFuncIdentificationConstant.TASK_DEFINITION_DELETE;
import static org.apache.dolphinscheduler.api.constants.ApiFuncIdentificationConstant.TASK_VERSION_VIEW;
-import static org.apache.dolphinscheduler.api.constants.ApiFuncIdentificationConstant.WORKFLOW_DEFINITION;
import static org.apache.dolphinscheduler.api.constants.ApiFuncIdentificationConstant.WORKFLOW_SWITCH_TO_THIS_VERSION;
import static org.apache.dolphinscheduler.plugin.task.api.TaskPluginManager.checkTaskParameters;
-import org.apache.dolphinscheduler.api.dto.task.TaskFilterRequest;
-import org.apache.dolphinscheduler.api.dto.taskRelation.TaskRelationUpdateUpstreamRequest;
import org.apache.dolphinscheduler.api.enums.Status;
import org.apache.dolphinscheduler.api.exceptions.ServiceException;
import org.apache.dolphinscheduler.api.permission.PermissionCheck;
import org.apache.dolphinscheduler.api.service.ProjectService;
import org.apache.dolphinscheduler.api.service.TaskDefinitionService;
-import org.apache.dolphinscheduler.api.service.WorkflowDefinitionService;
import org.apache.dolphinscheduler.api.service.WorkflowTaskRelationService;
import org.apache.dolphinscheduler.api.utils.PageInfo;
import org.apache.dolphinscheduler.api.utils.Result;
@@ -48,7 +43,6 @@ import org.apache.dolphinscheduler.common.utils.JSONUtils;
import org.apache.dolphinscheduler.dao.entity.Project;
import org.apache.dolphinscheduler.dao.entity.TaskDefinition;
import org.apache.dolphinscheduler.dao.entity.TaskDefinitionLog;
-import org.apache.dolphinscheduler.dao.entity.TaskMainInfo;
import org.apache.dolphinscheduler.dao.entity.User;
import org.apache.dolphinscheduler.dao.entity.WorkflowDefinition;
import org.apache.dolphinscheduler.dao.entity.WorkflowDefinitionLog;
@@ -127,44 +121,9 @@ public class TaskDefinitionServiceImpl extends BaseServiceImpl implements TaskDe
@Autowired
private ProcessService processService;
- @Autowired
- private WorkflowDefinitionService workflowDefinitionService;
-
@Autowired
private WorkflowDefinitionLogMapper workflowDefinitionLogMapper;
- private TaskDefinitionLog persist2TaskDefinitionLog(User user, TaskDefinition taskDefinition) {
- TaskDefinitionLog taskDefinitionLog = new TaskDefinitionLog(taskDefinition);
- taskDefinitionLog.setOperator(user.getId());
- taskDefinitionLog.setOperateTime(new Date());
- int result = taskDefinitionLogMapper.insert(taskDefinitionLog);
- if (result <= 0) {
- throw new ServiceException(Status.CREATE_TASK_DEFINITION_LOG_ERROR, taskDefinitionLog.getName());
- }
- return taskDefinitionLog;
- }
-
- private void checkTaskDefinitionValid(User user, TaskDefinition taskDefinition, String permissions) {
- // check user access for project
- Project project = projectMapper.queryByCode(taskDefinition.getProjectCode());
- projectService.checkProjectAndAuthThrowException(user, project, permissions);
-
- if (!checkTaskParameters(taskDefinition.getTaskType(), taskDefinition.getTaskParams())) {
- throw new ServiceException(Status.WORKFLOW_NODE_S_PARAMETER_INVALID, taskDefinition.getName());
- }
- }
-
- private List<WorkflowTaskRelation> updateTaskUpstreams(User user, long workflowCode, long taskCode,
- String upstreamCodes) {
- TaskRelationUpdateUpstreamRequest taskRelationUpdateUpstreamRequest = new TaskRelationUpdateUpstreamRequest();
- taskRelationUpdateUpstreamRequest.setWorkflowCode(workflowCode);
- if (upstreamCodes != null) {
- taskRelationUpdateUpstreamRequest.setUpstreams(upstreamCodes);
- }
- return workflowTaskRelationService.updateUpstreamTaskDefinitionWithSyncDag(user, taskCode, Boolean.FALSE,
- taskRelationUpdateUpstreamRequest);
- }
-
/**
* query task definition
*
@@ -196,38 +155,6 @@ public class TaskDefinitionServiceImpl extends BaseServiceImpl implements TaskDe
return result;
}
- /**
- * Whether task definition can be deleted or not
- */
- private void taskCanDeleteValid(User user, TaskDefinition taskDefinition, User loginUser) {
- // check user access for project
- Project project = projectMapper.queryByCode(taskDefinition.getProjectCode());
- projectService.checkProjectAndAuthThrowException(user, project, TASK_DEFINITION_DELETE);
- // check if user have write perm for project
- Map<String, Object> result = new HashMap<>();
- boolean hasProjectAndWritePerm = projectService.hasProjectAndWritePerm(loginUser, project, result);
- if (!hasProjectAndWritePerm) {
- throw new ServiceException(Status.TASK_DEFINITION_STATE_ONLINE, taskDefinition.getCode());
- }
-
- // Whether task relation workflow is online
- if (processService.isTaskOnline(taskDefinition.getCode()) && taskDefinition.getFlag() == Flag.YES) {
- throw new ServiceException(Status.TASK_DEFINITION_STATE_ONLINE, taskDefinition.getCode());
- }
-
- // Whether task have downstream tasks
- List<WorkflowTaskRelation> workflowTaskRelationList =
- workflowTaskRelationMapper.queryDownstreamByTaskCode(taskDefinition.getCode());
- if (CollectionUtils.isNotEmpty(workflowTaskRelationList)) {
- Set<Long> postTaskCodes = workflowTaskRelationList
- .stream()
- .map(WorkflowTaskRelation::getPostTaskCode)
- .collect(Collectors.toSet());
- String postTaskCodesStr = StringUtils.join(postTaskCodes, Constants.COMMA);
- throw new ServiceException(Status.TASK_HAS_DOWNSTREAM, postTaskCodesStr);
- }
- }
-
public void updateDag(User loginUser, long workflowDefinitionCode,
List<WorkflowTaskRelation> workflowTaskRelationList,
List<TaskDefinitionLog> taskDefinitionLogs) {
@@ -262,28 +189,6 @@ public class TaskDefinitionServiceImpl extends BaseServiceImpl implements TaskDe
}
}
- private void TaskDefinitionUpdateValid(TaskDefinition taskDefinitionOriginal, TaskDefinition taskDefinitionUpdate) {
- // Task already online
- if (processService.isTaskOnline(taskDefinitionOriginal.getCode())
- && taskDefinitionOriginal.getFlag() == Flag.YES) {
- // if stream, can update task definition without online check
- if (taskDefinitionOriginal.getTaskExecuteType() != TaskExecuteType.STREAM) {
- throw new ServiceException(Status.NOT_SUPPORT_UPDATE_TASK_DEFINITION);
- }
- }
-
- // not update anything
- if (taskDefinitionOriginal.equals(taskDefinitionUpdate)) {
- throw new ServiceException(Status.TASK_DEFINITION_NOT_CHANGE, taskDefinitionOriginal.getCode());
- }
-
- // check version invalid
- Integer version = taskDefinitionLogMapper.queryMaxVersionForDefinition(taskDefinitionOriginal.getCode());
- if (version == null || version == 0) {
- throw new ServiceException(Status.DATA_IS_NOT_VALID, taskDefinitionOriginal.getCode());
- }
- }
-
/**
* Get resource task definition by code
*
@@ -303,36 +208,6 @@ public class TaskDefinitionServiceImpl extends BaseServiceImpl implements TaskDe
return taskDefinition;
}
- /**
- * Get resource task definition according to query parameter
- *
- * @param loginUser login user
- * @param taskFilterRequest taskFilterRequest object you want to filter the resource task definitions
- * @return TaskDefinitions of page
- */
- @Override
- public PageInfo<TaskDefinition> filterTaskDefinition(User loginUser,
- TaskFilterRequest taskFilterRequest) {
- TaskDefinition taskDefinition = taskFilterRequest.convert2TaskDefinition();
- if (taskDefinition.getProjectName() != null) {
- Project project = projectMapper.queryByName(taskDefinition.getProjectName());
- // check user access for project
- projectService.checkProjectAndAuthThrowException(loginUser, project, WORKFLOW_DEFINITION);
- taskDefinition.setProjectCode(project.getCode());
- }
-
- Page<TaskDefinition> page =
- new Page<>(taskFilterRequest.getPageNo(), taskFilterRequest.getPageSize());
- IPage<TaskDefinition> taskDefinitionIPage =
- taskDefinitionMapper.filterTaskDefinition(page, taskDefinition);
-
- PageInfo<TaskDefinition> pageInfo =
- new PageInfo<>(taskFilterRequest.getPageNo(), taskFilterRequest.getPageSize());
- pageInfo.setTotal((int) taskDefinitionIPage.getTotal());
- pageInfo.setTotalList(taskDefinitionIPage.getRecords());
- return pageInfo;
- }
-
private TaskDefinitionLog updateTask(User loginUser, long projectCode, long taskCode, String taskDefinitionJsonObj,
Map<String, Object> result) {
Project project = projectMapper.queryByCode(projectCode);
@@ -798,51 +673,6 @@ public class TaskDefinitionServiceImpl extends BaseServiceImpl implements TaskDe
return result;
}
- private void fillRecords(long projectCode, IPage<TaskMainInfo> taskMainInfoIPage) {
- List<TaskMainInfo> records = Collections.emptyList();
- if (CollectionUtils.isNotEmpty(taskMainInfoIPage.getRecords())) {
- // query task relevant info by task code
- records = taskDefinitionMapper.queryDefineListByCodeList(projectCode,
- taskMainInfoIPage.getRecords().stream().map(TaskMainInfo::getTaskCode)
- .collect(Collectors.toList()));
- }
- // because first step, so need init records
- taskMainInfoIPage.setRecords(Collections.emptyList());
- if (CollectionUtils.isNotEmpty(records)) {
- // task code and task info map
- Map<Long, TaskMainInfo> taskMainInfoMap = new HashMap<>();
- // construct task code and relevant upstream task list map
- for (TaskMainInfo info : records) {
- taskMainInfoMap.compute(info.getTaskCode(), (k, v) -> {
- if (v == null) {
- Map<Long, String> upstreamTaskMap = new HashMap<>();
- if (info.getUpstreamTaskCode() != 0) {
- upstreamTaskMap.put(info.getUpstreamTaskCode(), info.getUpstreamTaskName());
- info.setUpstreamTaskCode(0L);
- info.setUpstreamTaskName(StringUtils.EMPTY);
- }
- info.setUpstreamTaskMap(upstreamTaskMap);
- v = info;
- }
- if (info.getUpstreamTaskCode() != 0) {
- v.getUpstreamTaskMap().put(info.getUpstreamTaskCode(), info.getUpstreamTaskName());
- }
- return v;
- });
- }
-
- // because taskMainInfoMap's value is TaskMainInfo,
- // TaskMainInfo have task code info, so only need gain taskMainInfoMap's values
- List<TaskMainInfo> resultRecords = Lists.newArrayList(taskMainInfoMap.values());
- resultRecords.sort((o1, o2) -> o2.getTaskUpdateTime().compareTo(o1.getTaskUpdateTime()));
- taskMainInfoIPage.setRecords(resultRecords);
- }
- }
-
- private void fillWorkflowInfo(long projectCode, IPage<TaskMainInfo> taskMainInfoIPage) {
-
- }
-
@Override
public Map<String, Object> genTaskCodeList(Integer genNum) {
Map<String, Object> result = new HashMap<>();
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskInstanceServiceImpl.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskInstanceServiceImpl.java
index 1e599eb7a7..b5abbc86a6 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskInstanceServiceImpl.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TaskInstanceServiceImpl.java
@@ -36,7 +36,6 @@ import org.apache.dolphinscheduler.dao.entity.TaskInstance;
import org.apache.dolphinscheduler.dao.entity.User;
import org.apache.dolphinscheduler.dao.entity.WorkflowInstance;
import org.apache.dolphinscheduler.dao.mapper.ProjectMapper;
-import org.apache.dolphinscheduler.dao.mapper.TaskDefinitionMapper;
import org.apache.dolphinscheduler.dao.mapper.TaskInstanceMapper;
import org.apache.dolphinscheduler.dao.repository.TaskInstanceDao;
import org.apache.dolphinscheduler.dao.repository.WorkflowInstanceDao;
@@ -89,9 +88,6 @@ public class TaskInstanceServiceImpl extends BaseServiceImpl implements TaskInst
@Autowired
UsersService usersService;
- @Autowired
- TaskDefinitionMapper taskDefinitionMapper;
-
@Autowired
private TaskGroupQueueService taskGroupQueueService;
@@ -302,19 +298,6 @@ public class TaskInstanceServiceImpl extends BaseServiceImpl implements TaskInst
return result;
}
- @Override
- public TaskInstance queryTaskInstanceById(User loginUser, long projectCode, Long taskInstanceId) {
- Project project = projectMapper.queryByCode(projectCode);
- // check user access for project
- projectService.checkProjectAndAuthThrowException(loginUser, project, FORCED_SUCCESS);
- TaskInstance taskInstance = taskInstanceMapper.selectById(taskInstanceId);
- if (taskInstance == null) {
- log.error("Task instance can not be found, projectCode:{}, taskInstanceId:{}.", projectCode,
- taskInstanceId);
- }
- return taskInstance;
- }
-
@Override
public void deleteByWorkflowInstanceId(Integer workflowInstanceId) {
List<TaskInstance> needToDeleteTaskInstances =
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TenantServiceImpl.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TenantServiceImpl.java
index f2dab3b868..9dbb6bcc98 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TenantServiceImpl.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/TenantServiceImpl.java
@@ -40,7 +40,6 @@ import org.apache.dolphinscheduler.dao.mapper.ScheduleMapper;
import org.apache.dolphinscheduler.dao.mapper.TenantMapper;
import org.apache.dolphinscheduler.dao.mapper.UserMapper;
import org.apache.dolphinscheduler.dao.mapper.WorkflowInstanceMapper;
-import org.apache.dolphinscheduler.plugin.storage.api.StorageOperator;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
@@ -81,9 +80,6 @@ public class TenantServiceImpl extends BaseServiceImpl implements TenantService
@Autowired
private QueueService queueService;
- @Autowired(required = false)
- private StorageOperator storageOperator;
-
/**
* Check the tenant new object valid or not
*
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/UsersServiceImpl.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/UsersServiceImpl.java
index 0d0ecc0e9e..e706be2a37 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/UsersServiceImpl.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/UsersServiceImpl.java
@@ -47,7 +47,6 @@ import org.apache.dolphinscheduler.dao.mapper.ProjectMapper;
import org.apache.dolphinscheduler.dao.mapper.ProjectUserMapper;
import org.apache.dolphinscheduler.dao.mapper.TenantMapper;
import org.apache.dolphinscheduler.dao.mapper.UserMapper;
-import org.apache.dolphinscheduler.plugin.storage.api.StorageOperator;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
@@ -102,9 +101,6 @@ public class UsersServiceImpl extends BaseServiceImpl implements UsersService {
@Autowired
private ProjectMapper projectMapper;
- @Autowired(required = false)
- private StorageOperator storageOperator;
-
@Autowired
private K8sNamespaceUserMapper k8sNamespaceUserMapper;
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowDefinitionServiceImpl.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowDefinitionServiceImpl.java
index 2085948e28..4ff7110e42 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowDefinitionServiceImpl.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowDefinitionServiceImpl.java
@@ -17,7 +17,6 @@
package org.apache.dolphinscheduler.api.service.impl;
-import static java.util.stream.Collectors.toSet;
import static org.apache.dolphinscheduler.api.constants.ApiFuncIdentificationConstant.TASK_DEFINITION_MOVE;
import static org.apache.dolphinscheduler.api.constants.ApiFuncIdentificationConstant.VERSION_LIST;
import static org.apache.dolphinscheduler.api.constants.ApiFuncIdentificationConstant.WORKFLOW_BATCH_COPY;
@@ -27,7 +26,6 @@ import static org.apache.dolphinscheduler.api.constants.ApiFuncIdentificationCon
import static org.apache.dolphinscheduler.api.constants.ApiFuncIdentificationConstant.WORKFLOW_ONLINE_OFFLINE;
import static org.apache.dolphinscheduler.api.constants.ApiFuncIdentificationConstant.WORKFLOW_SWITCH_TO_THIS_VERSION;
import static org.apache.dolphinscheduler.api.constants.ApiFuncIdentificationConstant.WORKFLOW_TREE_VIEW;
-import static org.apache.dolphinscheduler.api.constants.ApiFuncIdentificationConstant.WORKFLOW_UPDATE;
import static org.apache.dolphinscheduler.api.enums.Status.WORKFLOW_DEFINITION_NOT_EXIST;
import static org.apache.dolphinscheduler.common.constants.CommandKeyConstants.CMD_PARAM_SUB_WORKFLOW_DEFINITION_CODE;
import static org.apache.dolphinscheduler.common.constants.Constants.COPY_SUFFIX;
@@ -170,6 +168,7 @@ public class WorkflowDefinitionServiceImpl extends BaseServiceImpl implements Wo
@Autowired
private WorkflowDefinitionLogDao workflowDefinitionLogDao;
+
@Lazy
@Autowired
private WorkflowInstanceService workflowInstanceService;
@@ -277,36 +276,6 @@ public class WorkflowDefinitionServiceImpl extends BaseServiceImpl implements Wo
return result;
}
- private void createWorkflowValid(User user, WorkflowDefinition workflowDefinition) {
- Project project = projectMapper.queryByCode(workflowDefinition.getProjectCode());
- if (project == null) {
- throw new ServiceException(Status.PROJECT_NOT_FOUND, workflowDefinition.getProjectCode());
- }
- // check user access for project
- projectService.checkProjectAndAuthThrowException(user, project, WORKFLOW_CREATE);
-
- if (checkDescriptionLength(workflowDefinition.getDescription())) {
- throw new ServiceException(Status.DESCRIPTION_TOO_LONG_ERROR);
- }
-
- // check whether the new workflow definition name exist
- WorkflowDefinition definition =
- workflowDefinitionMapper.verifyByDefineName(project.getCode(), workflowDefinition.getName());
- if (definition != null) {
- throw new ServiceException(Status.WORKFLOW_DEFINITION_NAME_EXIST, workflowDefinition.getName());
- }
-
- }
-
- private void syncObj2Log(User user, WorkflowDefinition workflowDefinition) {
- WorkflowDefinitionLog workflowDefinitionLog = new WorkflowDefinitionLog(workflowDefinition);
- workflowDefinitionLog.setOperator(user.getId());
- int result = workflowDefinitionLogMapper.insert(workflowDefinitionLog);
- if (result <= 0) {
- throw new ServiceException(Status.CREATE_WORKFLOW_DEFINITION_LOG_ERROR);
- }
- }
-
protected Map<String, Object> createDagDefine(User loginUser,
List<WorkflowTaskRelationLog> taskRelationList,
WorkflowDefinition workflowDefinition,
@@ -1917,117 +1886,6 @@ public class WorkflowDefinitionServiceImpl extends BaseServiceImpl implements Wo
}
- private void updateWorkflowValid(User user, WorkflowDefinition oldWorkflowDefinition,
- WorkflowDefinition newWorkflowDefinition) {
- // online can not permit edit
- if (oldWorkflowDefinition.getReleaseState() == ReleaseState.ONLINE) {
- throw new ServiceException(Status.WORKFLOW_DEFINITION_NOT_ALLOWED_EDIT, oldWorkflowDefinition.getName());
- }
-
- Project project = projectMapper.queryByCode(oldWorkflowDefinition.getProjectCode());
- // check user access for project
- projectService.checkProjectAndAuthThrowException(user, project, WORKFLOW_UPDATE);
-
- if (checkDescriptionLength(newWorkflowDefinition.getDescription())) {
- throw new ServiceException(Status.DESCRIPTION_TOO_LONG_ERROR);
- }
-
- // check whether the new workflow define name exist
- if (!oldWorkflowDefinition.getName().equals(newWorkflowDefinition.getName())) {
- WorkflowDefinition definition = workflowDefinitionMapper
- .verifyByDefineName(newWorkflowDefinition.getProjectCode(), newWorkflowDefinition.getName());
- if (definition != null) {
- throw new ServiceException(Status.WORKFLOW_DEFINITION_NAME_EXIST, newWorkflowDefinition.getName());
- }
- }
- }
-
- public int saveWorkflowDefine(User loginUser, WorkflowDefinition workflowDefinition) {
- WorkflowDefinitionLog workflowDefinitionLog = new WorkflowDefinitionLog(workflowDefinition);
- Integer version = workflowDefinitionLogMapper.queryMaxVersionForDefinition(workflowDefinition.getCode());
- int insertVersion = version == null || version == 0 ? Constants.VERSION_FIRST : version + 1;
- workflowDefinitionLog.setVersion(insertVersion);
- workflowDefinition.setVersion(insertVersion);
-
- workflowDefinitionLog.setOperator(loginUser.getId());
- workflowDefinition.setUserId(loginUser.getId());
- workflowDefinitionLog.setOperateTime(workflowDefinition.getUpdateTime());
- workflowDefinition.setUpdateTime(workflowDefinition.getUpdateTime());
- workflowDefinitionLog.setId(null);
- int result = workflowDefinitionMapper.updateById(workflowDefinition);
-
- int insertLog = workflowDefinitionLogMapper.insert(workflowDefinitionLog);
- workflowDefinitionLog.setId(workflowDefinition.getId());
- return (insertLog & result) > 0 ? insertVersion : 0;
- }
-
- public int saveTaskRelation(User loginUser, WorkflowDefinition workflowDefinition,
- int workflowDefinitionVersion) {
- long projectCode = workflowDefinition.getProjectCode();
- long workflowDefinitionCode = workflowDefinition.getCode();
- List<WorkflowTaskRelation> taskRelations =
- workflowTaskRelationMapper.queryByWorkflowDefinitionCode(workflowDefinitionCode);
- List<WorkflowTaskRelationLog> taskRelationList =
- taskRelations.stream().map(WorkflowTaskRelationLog::new).collect(Collectors.toList());
-
- List<Long> taskCodeList =
- taskRelations.stream().map(WorkflowTaskRelation::getPostTaskCode).collect(Collectors.toList());
- List<TaskDefinition> taskDefinitions = taskDefinitionMapper.queryByCodeList(taskCodeList);
- List<TaskDefinitionLog> taskDefinitionLogs =
- taskDefinitions.stream().map(TaskDefinitionLog::new).collect(Collectors.toList());
-
- if (taskRelationList.isEmpty()) {
- return Constants.EXIT_CODE_SUCCESS;
- }
- Map<Long, TaskDefinitionLog> taskDefinitionLogMap = null;
- if (CollectionUtils.isNotEmpty(taskDefinitionLogs)) {
- taskDefinitionLogMap = taskDefinitionLogs
- .stream()
- .collect(Collectors.toMap(TaskDefinition::getCode, taskDefinitionLog -> taskDefinitionLog));
- }
- Date now = new Date();
- for (WorkflowTaskRelationLog workflowTaskRelationLog : taskRelationList) {
- workflowTaskRelationLog.setProjectCode(projectCode);
- workflowTaskRelationLog.setWorkflowDefinitionCode(workflowDefinitionCode);
- workflowTaskRelationLog.setWorkflowDefinitionVersion(workflowDefinitionVersion);
- if (taskDefinitionLogMap != null) {
- TaskDefinitionLog preTaskDefinitionLog =
- taskDefinitionLogMap.get(workflowTaskRelationLog.getPreTaskCode());
- if (preTaskDefinitionLog != null) {
- workflowTaskRelationLog.setPreTaskVersion(preTaskDefinitionLog.getVersion());
- }
- TaskDefinitionLog postTaskDefinitionLog =
- taskDefinitionLogMap.get(workflowTaskRelationLog.getPostTaskCode());
- if (postTaskDefinitionLog != null) {
- workflowTaskRelationLog.setPostTaskVersion(postTaskDefinitionLog.getVersion());
- }
- }
- workflowTaskRelationLog.setCreateTime(now);
- workflowTaskRelationLog.setUpdateTime(now);
- workflowTaskRelationLog.setOperator(loginUser.getId());
- workflowTaskRelationLog.setOperateTime(now);
- }
- if (!taskRelations.isEmpty()) {
- Set<Integer> workflowTaskRelationSet =
- taskRelations.stream().map(WorkflowTaskRelation::hashCode).collect(toSet());
- Set<Integer> taskRelationSet =
- taskRelationList.stream().map(WorkflowTaskRelationLog::hashCode).collect(toSet());
- boolean isSame = CollectionUtils.isEqualCollection(workflowTaskRelationSet,
- taskRelationSet);
- if (isSame) {
- log.info("workflow task relations is non-existent, projectCode:{}, workflowDefinitionCode:{}.",
- workflowDefinition.getProjectCode(), workflowDefinition.getCode());
- return Constants.EXIT_CODE_SUCCESS;
- }
- workflowTaskRelationMapper.deleteByWorkflowDefinitionCode(projectCode, workflowDefinitionCode);
- }
- List<WorkflowTaskRelation> workflowTaskRelations =
- taskRelationList.stream().map(WorkflowTaskRelation::new).collect(Collectors.toList());
- int insert = workflowTaskRelationMapper.batchInsert(workflowTaskRelations);
- int resultLog = workflowTaskRelationLogMapper.batchInsert(taskRelationList);
- return (insert & resultLog) > 0 ? Constants.EXIT_CODE_SUCCESS : Constants.EXIT_CODE_FAILURE;
- }
-
@Transactional
@Override
public void onlineWorkflowDefinition(User loginUser, Long projectCode, Long workflowDefinitionCode) {
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowInstanceServiceImpl.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowInstanceServiceImpl.java
index 7ae19e010f..4059b17b07 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowInstanceServiceImpl.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowInstanceServiceImpl.java
@@ -34,8 +34,6 @@ import org.apache.dolphinscheduler.api.dto.gantt.GanttDto;
import org.apache.dolphinscheduler.api.dto.gantt.Task;
import org.apache.dolphinscheduler.api.enums.Status;
import org.apache.dolphinscheduler.api.exceptions.ServiceException;
-import org.apache.dolphinscheduler.api.service.ExecutorService;
-import org.apache.dolphinscheduler.api.service.LoggerService;
import org.apache.dolphinscheduler.api.service.ProjectService;
import org.apache.dolphinscheduler.api.service.TaskInstanceService;
import org.apache.dolphinscheduler.api.service.UsersService;
@@ -152,15 +150,9 @@ public class WorkflowInstanceServiceImpl extends BaseServiceImpl implements Work
@Autowired
WorkflowDefinitionService workflowDefinitionService;
- @Autowired
- ExecutorService execService;
-
@Autowired
TaskInstanceMapper taskInstanceMapper;
- @Autowired
- LoggerService loggerService;
-
@Autowired
WorkflowDefinitionLogMapper workflowDefinitionLogMapper;
@@ -268,31 +260,6 @@ public class WorkflowInstanceServiceImpl extends BaseServiceImpl implements Work
return result;
}
- @Override
- public WorkflowInstance queryByWorkflowInstanceIdThrowExceptionIfNotFound(Integer workflowInstanceId) {
- WorkflowInstance workflowInstance = workflowInstanceDao.queryById(workflowInstanceId);
- if (workflowInstance == null) {
- throw new ServiceException(WORKFLOW_INSTANCE_NOT_EXIST, workflowInstanceId);
- }
- return workflowInstance;
- }
-
- /**
- * query workflow instance by id
- *
- * @param loginUser login user
- * @param workflowInstanceId workflow instance id
- * @return workflow instance detail
- */
- @Override
- public Map<String, Object> queryWorkflowInstanceById(User loginUser, Integer workflowInstanceId) {
- WorkflowInstance workflowInstance = workflowInstanceMapper.selectById(workflowInstanceId);
- WorkflowDefinition workflowDefinition =
- workflowDefinitionMapper.queryByCode(workflowInstance.getWorkflowDefinitionCode());
-
- return queryWorkflowInstanceById(loginUser, workflowDefinition.getProjectCode(), workflowInstanceId);
- }
-
/**
* paging query workflow instance list, filtering according to project, workflow definition, time range, keyword, workflow status
*
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowLineageServiceImpl.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowLineageServiceImpl.java
index ab2ac16af8..998aaf7929 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowLineageServiceImpl.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowLineageServiceImpl.java
@@ -31,7 +31,6 @@ import org.apache.dolphinscheduler.dao.entity.WorkFlowRelationDetail;
import org.apache.dolphinscheduler.dao.entity.WorkflowDefinition;
import org.apache.dolphinscheduler.dao.entity.WorkflowTaskLineage;
import org.apache.dolphinscheduler.dao.mapper.ProjectMapper;
-import org.apache.dolphinscheduler.dao.mapper.TaskDefinitionLogMapper;
import org.apache.dolphinscheduler.dao.mapper.TaskDefinitionMapper;
import org.apache.dolphinscheduler.dao.mapper.WorkflowDefinitionMapper;
import org.apache.dolphinscheduler.dao.repository.WorkflowTaskLineageDao;
@@ -60,14 +59,12 @@ public class WorkflowLineageServiceImpl extends BaseServiceImpl implements Workf
@Autowired
private ProjectMapper projectMapper;
- @Autowired
- private TaskDefinitionLogMapper taskDefinitionLogMapper;
-
@Autowired
private TaskDefinitionMapper taskDefinitionMapper;
@Autowired
private WorkflowTaskLineageDao workflowTaskLineageDao;
+
@Autowired
private WorkflowDefinitionMapper workflowDefinitionMapper;
@@ -322,11 +319,6 @@ public class WorkflowLineageServiceImpl extends BaseServiceImpl implements Workf
return dependentLineageTaskList;
}
- @Override
- public int createWorkflowLineage(List<WorkflowTaskLineage> workflowTaskLineages) {
- return workflowTaskLineageDao.batchInsert(workflowTaskLineages);
- }
-
@Override
public int updateWorkflowLineage(long workflowDefinitionCode, List<WorkflowTaskLineage> workflowTaskLineages) {
// Remove existing lineage first to keep data consistent
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowTaskRelationServiceImpl.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowTaskRelationServiceImpl.java
index 2b46d12681..620a04eafe 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowTaskRelationServiceImpl.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/WorkflowTaskRelationServiceImpl.java
@@ -17,883 +17,24 @@
package org.apache.dolphinscheduler.api.service.impl;
-import static java.util.stream.Collectors.toSet;
-
-import org.apache.dolphinscheduler.api.dto.taskRelation.TaskRelationCreateRequest;
-import org.apache.dolphinscheduler.api.dto.taskRelation.TaskRelationFilterRequest;
-import org.apache.dolphinscheduler.api.dto.taskRelation.TaskRelationUpdateUpstreamRequest;
-import org.apache.dolphinscheduler.api.enums.Status;
-import org.apache.dolphinscheduler.api.exceptions.ServiceException;
-import org.apache.dolphinscheduler.api.service.ProjectService;
import org.apache.dolphinscheduler.api.service.WorkflowTaskRelationService;
-import org.apache.dolphinscheduler.common.constants.Constants;
-import org.apache.dolphinscheduler.common.enums.ConditionType;
-import org.apache.dolphinscheduler.dao.entity.Project;
-import org.apache.dolphinscheduler.dao.entity.TaskDefinition;
-import org.apache.dolphinscheduler.dao.entity.TaskDefinitionLog;
-import org.apache.dolphinscheduler.dao.entity.User;
-import org.apache.dolphinscheduler.dao.entity.WorkflowDefinition;
-import org.apache.dolphinscheduler.dao.entity.WorkflowDefinitionLog;
import org.apache.dolphinscheduler.dao.entity.WorkflowTaskRelation;
-import org.apache.dolphinscheduler.dao.entity.WorkflowTaskRelationLog;
-import org.apache.dolphinscheduler.dao.mapper.ProjectMapper;
-import org.apache.dolphinscheduler.dao.mapper.TaskDefinitionLogMapper;
-import org.apache.dolphinscheduler.dao.mapper.TaskDefinitionMapper;
-import org.apache.dolphinscheduler.dao.mapper.WorkflowDefinitionLogMapper;
-import org.apache.dolphinscheduler.dao.mapper.WorkflowDefinitionMapper;
-import org.apache.dolphinscheduler.dao.mapper.WorkflowTaskRelationLogMapper;
import org.apache.dolphinscheduler.dao.mapper.WorkflowTaskRelationMapper;
-import org.apache.dolphinscheduler.plugin.task.api.utils.TaskTypeUtils;
-import org.apache.dolphinscheduler.service.process.ProcessService;
-
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.lang3.StringUtils;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Set;
-import java.util.stream.Collectors;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.google.common.collect.Lists;
@Service
@Slf4j
public class WorkflowTaskRelationServiceImpl extends BaseServiceImpl implements WorkflowTaskRelationService {
- @Autowired
- private ProjectMapper projectMapper;
-
- @Autowired
- private ProjectService projectService;
-
@Autowired
private WorkflowTaskRelationMapper workflowTaskRelationMapper;
- @Autowired
- private TaskDefinitionLogMapper taskDefinitionLogMapper;
-
- @Autowired
- private TaskDefinitionMapper taskDefinitionMapper;
-
- @Autowired
- private WorkflowDefinitionMapper workflowDefinitionMapper;
-
- @Autowired
- private WorkflowDefinitionLogMapper workflowDefinitionLogMapper;
-
- @Autowired
- private ProcessService processService;
-
- @Autowired
- private WorkflowTaskRelationLogMapper workflowTaskRelationLogMapper;
-
- /**
- * create workflow task relation
- *
- * @param loginUser login user
- * @param projectCode project code
- * @param workflowDefinitionCode workflowDefinitionCode
- * @param preTaskCode preTaskCode
- * @param postTaskCode postTaskCode
- * @return create result code
- */
- @Transactional
- @Override
- public Map<String, Object> createWorkflowTaskRelation(User loginUser, long projectCode, long workflowDefinitionCode,
- long preTaskCode, long postTaskCode) {
- Project project = projectMapper.queryByCode(projectCode);
- // check user access for project
- Map<String, Object> result = projectService.checkProjectAndAuth(loginUser, project, projectCode, null);
- if (result.get(Constants.STATUS) != Status.SUCCESS) {
- return result;
- }
- WorkflowDefinition workflowDefinition = workflowDefinitionMapper.queryByCode(workflowDefinitionCode);
- if (workflowDefinition == null) {
- log.error("workflow definition does not exist, workflowDefinitionCode:{}.", workflowDefinitionCode);
- putMsg(result, Status.WORKFLOW_DEFINITION_NOT_EXIST, String.valueOf(workflowDefinitionCode));
- return result;
- }
- if (workflowDefinition.getProjectCode() != projectCode) {
- log.error("workflow definition's project does not match project {}.", projectCode);
- putMsg(result, Status.PROJECT_WORKFLOW_NOT_MATCH);
- return result;
- }
- updateWorkflowDefiniteVersion(loginUser, result, workflowDefinition);
- List<WorkflowTaskRelation> workflowTaskRelationList =
- workflowTaskRelationMapper.queryByWorkflowDefinitionCode(workflowDefinitionCode);
- List<WorkflowTaskRelation> workflowTaskRelations = Lists.newArrayList(workflowTaskRelationList);
- if (!workflowTaskRelations.isEmpty()) {
- Map<Long, WorkflowTaskRelation> preTaskCodeMap =
- workflowTaskRelations.stream().filter(r -> r.getPostTaskCode() == postTaskCode)
- .collect(Collectors.toMap(WorkflowTaskRelation::getPreTaskCode,
- workflowTaskRelation -> workflowTaskRelation));
- if (!preTaskCodeMap.isEmpty()) {
- if (preTaskCodeMap.containsKey(preTaskCode) || (!preTaskCodeMap.containsKey(0L) && preTaskCode == 0L)) {
- putMsg(result, Status.WORKFLOW_TASK_RELATION_EXIST, String.valueOf(workflowDefinitionCode));
- return result;
- }
- if (preTaskCodeMap.containsKey(0L) && preTaskCode != 0L) {
- // delete no upstream
- workflowTaskRelations.remove(preTaskCodeMap.get(0L));
- }
- }
- }
- TaskDefinition postTaskDefinition = taskDefinitionMapper.queryByCode(postTaskCode);
- WorkflowTaskRelation workflowTaskRelation = setRelation(workflowDefinition, postTaskDefinition);
- if (preTaskCode != 0L) {
- TaskDefinition preTaskDefinition = taskDefinitionMapper.queryByCode(preTaskCode);
- List<WorkflowTaskRelation> upstreamTaskRelationList = workflowTaskRelations.stream()
- .filter(r -> r.getPostTaskCode() == preTaskCode).collect(Collectors.toList());
- // upstream is or not exist
- if (upstreamTaskRelationList.isEmpty()) {
- WorkflowTaskRelation preWorkflowTaskRelation = setRelation(workflowDefinition, preTaskDefinition);
- preWorkflowTaskRelation.setPreTaskCode(0L);
- preWorkflowTaskRelation.setPreTaskVersion(0);
- workflowTaskRelations.add(preWorkflowTaskRelation);
- }
- workflowTaskRelation.setPreTaskCode(preTaskDefinition.getCode());
- workflowTaskRelation.setPreTaskVersion(preTaskDefinition.getVersion());
- } else {
- workflowTaskRelation.setPreTaskCode(0L);
- workflowTaskRelation.setPreTaskVersion(0);
- }
- workflowTaskRelations.add(workflowTaskRelation);
- updateRelation(loginUser, result, workflowDefinition, workflowTaskRelations);
- return result;
- }
-
- private WorkflowTaskRelationLog persist2WorkflowTaskRelationLog(User user,
- WorkflowTaskRelation workflowTaskRelation) {
- WorkflowTaskRelationLog workflowTaskRelationLog = new WorkflowTaskRelationLog(workflowTaskRelation);
- workflowTaskRelationLog.setOperator(user.getId());
- workflowTaskRelationLog.setOperateTime(new Date());
- int result = workflowTaskRelationLogMapper.insert(workflowTaskRelationLog);
- if (result <= 0) {
- throw new ServiceException(Status.CREATE_WORKFLOW_TASK_RELATION_LOG_ERROR,
- workflowTaskRelationLog.getPreTaskCode(), workflowTaskRelationLog.getPostTaskCode());
- }
- return workflowTaskRelationLog;
- }
-
- private void updateVersions(WorkflowTaskRelation workflowTaskRelation) {
- // workflow
- WorkflowDefinition workflowDefinition =
- workflowDefinitionMapper.queryByCode(workflowTaskRelation.getWorkflowDefinitionCode());
- workflowTaskRelation.setWorkflowDefinitionVersion(workflowDefinition.getVersion());
-
- // tasks
- TaskDefinition preTaskDefinition = taskDefinitionMapper.queryByCode(workflowTaskRelation.getPreTaskCode());
- workflowTaskRelation.setPreTaskVersion(preTaskDefinition.getVersion());
- TaskDefinition postTaskDefinition = taskDefinitionMapper.queryByCode(workflowTaskRelation.getPostTaskCode());
- workflowTaskRelation.setPostTaskVersion(postTaskDefinition.getVersion());
- }
-
- /**
- * create resource workflow task relation
- *
- * @param loginUser login user
- * @param taskRelationCreateRequest project code
- * @return workflowTaskRelation object
- */
- @Override
- @Transactional
- public WorkflowTaskRelation createWorkflowTaskRelationV2(User loginUser,
- TaskRelationCreateRequest taskRelationCreateRequest) {
- WorkflowTaskRelation workflowTaskRelation = taskRelationCreateRequest.convert2WorkflowTaskRelation();
- WorkflowDefinition workflowDefinition =
- workflowDefinitionMapper.queryByCode(workflowTaskRelation.getWorkflowDefinitionCode());
- if (workflowDefinition == null) {
- throw new ServiceException(Status.WORKFLOW_DEFINITION_NOT_EXIST,
- String.valueOf(workflowTaskRelation.getWorkflowDefinitionCode()));
- }
- if (workflowTaskRelation.getProjectCode() == 0) {
- workflowTaskRelation.setProjectCode(workflowDefinition.getProjectCode());
- }
- Project project = projectMapper.queryByCode(workflowTaskRelation.getProjectCode());
- projectService.checkProjectAndAuthThrowException(loginUser, project, null);
-
- // persistence workflow task relation and workflow task relation log to database
- this.updateVersions(workflowTaskRelation);
- int insert = workflowTaskRelationMapper.insert(workflowTaskRelation);
- if (insert <= 0) {
- throw new ServiceException(Status.CREATE_WORKFLOW_TASK_RELATION_ERROR,
- workflowTaskRelation.getPreTaskCode(),
- workflowTaskRelation.getPostTaskCode());
- }
- this.persist2WorkflowTaskRelationLog(loginUser, workflowTaskRelation);
-
- return workflowTaskRelation;
- }
-
- private WorkflowTaskRelation setRelation(WorkflowDefinition workflowDefinition, TaskDefinition taskDefinition) {
- Date now = new Date();
- WorkflowTaskRelation workflowTaskRelation = new WorkflowTaskRelation();
- workflowTaskRelation.setProjectCode(workflowDefinition.getProjectCode());
- workflowTaskRelation.setWorkflowDefinitionCode(workflowDefinition.getCode());
- workflowTaskRelation.setWorkflowDefinitionVersion(workflowDefinition.getVersion());
- workflowTaskRelation.setPostTaskCode(taskDefinition.getCode());
- workflowTaskRelation.setPostTaskVersion(taskDefinition.getVersion());
- workflowTaskRelation.setConditionType(ConditionType.NONE);
- workflowTaskRelation.setConditionParams("{}");
- workflowTaskRelation.setCreateTime(now);
- workflowTaskRelation.setUpdateTime(now);
- return workflowTaskRelation;
- }
-
- private void updateWorkflowDefiniteVersion(User loginUser, Map<String, Object> result,
- WorkflowDefinition workflowDefinition) {
- int insertVersion =
- processService.saveWorkflowDefine(loginUser, workflowDefinition, Boolean.TRUE, Boolean.TRUE);
- if (insertVersion <= 0) {
- log.error("Update workflow definition error, projectCode:{}, workflowDefinitionCode:{}.",
- workflowDefinition.getProjectCode(), workflowDefinition.getCode());
- putMsg(result, Status.UPDATE_WORKFLOW_DEFINITION_ERROR);
- throw new ServiceException(Status.UPDATE_WORKFLOW_DEFINITION_ERROR);
- } else
- log.info(
- "Update workflow definition complete, new version is {}, projectCode:{}, workflowDefinitionCode:{}.",
- insertVersion, workflowDefinition.getProjectCode(), workflowDefinition.getCode());
- workflowDefinition.setVersion(insertVersion);
- }
-
- /**
- * delete workflow task relation
- *
- * @param loginUser login user
- * @param projectCode project code
- * @param workflowDefinitionCode workflow definition code
- * @param taskCode the post task code
- * @return delete result code
- */
- @Transactional
- @Override
- public Map<String, Object> deleteTaskWorkflowRelation(User loginUser, long projectCode, long workflowDefinitionCode,
- long taskCode) {
- Project project = projectMapper.queryByCode(projectCode);
- // check user access for project
- Map<String, Object> result = projectService.checkProjectAndAuth(loginUser, project, projectCode, null);
- if (result.get(Constants.STATUS) != Status.SUCCESS) {
- return result;
- }
- if (taskCode == 0) {
- log.error(
- "delete task workflow relation error due to parameter taskCode is 0, projectCode:{}, workflowDefinitionCode:{}.",
- projectCode, workflowDefinitionCode);
- putMsg(result, Status.DELETE_TASK_WORKFLOW_RELATION_ERROR);
- return result;
- }
- WorkflowDefinition workflowDefinition = workflowDefinitionMapper.queryByCode(workflowDefinitionCode);
- if (workflowDefinition == null) {
- log.error("workflow definition does not exist, workflowDefinitionCode:{}.", workflowDefinitionCode);
- putMsg(result, Status.WORKFLOW_DEFINITION_NOT_EXIST, String.valueOf(workflowDefinitionCode));
- return result;
- }
- TaskDefinition taskDefinition = taskDefinitionMapper.queryByCode(taskCode);
- if (null == taskDefinition) {
- log.error("Task definition does not exist, taskDefinitionCode:{}.", taskCode);
- putMsg(result, Status.TASK_DEFINE_NOT_EXIST, String.valueOf(taskCode));
- return result;
- }
- List<WorkflowTaskRelation> workflowTaskRelations =
- workflowTaskRelationMapper.queryByWorkflowDefinitionCode(workflowDefinitionCode);
- List<WorkflowTaskRelation> workflowTaskRelationList = Lists.newArrayList(workflowTaskRelations);
- if (CollectionUtils.isEmpty(workflowTaskRelationList)) {
- log.error("workflow task relations are empty, projectCode:{}, workflowDefinitionCode:{}.", projectCode,
- workflowDefinitionCode);
- putMsg(result, Status.DATA_IS_NULL, "workflowTaskRelationList");
- return result;
- }
- List<Long> downstreamList = Lists.newArrayList();
- for (WorkflowTaskRelation workflowTaskRelation : workflowTaskRelations) {
- if (workflowTaskRelation.getPreTaskCode() == taskCode) {
- downstreamList.add(workflowTaskRelation.getPostTaskCode());
- }
- if (workflowTaskRelation.getPostTaskCode() == taskCode) {
- workflowTaskRelationList.remove(workflowTaskRelation);
- }
- }
- if (CollectionUtils.isNotEmpty(downstreamList)) {
- String downstream = StringUtils.join(downstreamList, ",");
- log.warn(
- "Relation can not be deleted because task has downstream tasks:[{}], projectCode:{}, workflowDefinitionCode:{}, taskDefinitionCode:{}.",
- downstream, projectCode, workflowDefinitionCode, taskCode);
- putMsg(result, Status.TASK_HAS_DOWNSTREAM, downstream);
- return result;
- }
- updateWorkflowDefiniteVersion(loginUser, result, workflowDefinition);
- updateRelation(loginUser, result, workflowDefinition, workflowTaskRelationList);
- if (TaskTypeUtils.isConditionTask(taskDefinition.getTaskType())
- || TaskTypeUtils.isSubWorkflowTask(taskDefinition.getTaskType())
- || TaskTypeUtils.isDependentTask(taskDefinition.getTaskType())) {
- int deleteTaskDefinition = taskDefinitionMapper.deleteByCode(taskCode);
- if (0 == deleteTaskDefinition) {
- log.error("Delete task definition error, taskDefinitionCode:{}.", taskCode);
- putMsg(result, Status.DELETE_TASK_DEFINE_BY_CODE_ERROR);
- throw new ServiceException(Status.DELETE_TASK_DEFINE_BY_CODE_ERROR);
- } else
- log.info("Delete {} type task definition complete, taskDefinitionCode:{}.",
- taskDefinition.getTaskType(), taskCode);
- }
- putMsg(result, Status.SUCCESS);
- return result;
- }
-
- /**
- * delete workflow task relation, will delete exists relation preTaskCode -> postTaskCode, throw error if not exists
- *
- * @param loginUser login user
- * @param preTaskCode relation upstream code
- * @param postTaskCode relation downstream code
- */
- @Override
- @Transactional
- public void deleteTaskWorkflowRelationV2(User loginUser,
- long preTaskCode,
- long postTaskCode) {
- WorkflowTaskRelation workflowTaskRelation =
- new TaskRelationFilterRequest(preTaskCode, postTaskCode).convert2TaskDefinition();
-
- Page<WorkflowTaskRelation> page =
- new Page<>(new TaskRelationFilterRequest(preTaskCode, postTaskCode).getPageNo(),
- new TaskRelationFilterRequest(preTaskCode, postTaskCode).getPageSize());
- IPage<WorkflowTaskRelation> workflowTaskRelationIPage =
- workflowTaskRelationMapper.filterWorkflowTaskRelation(page, workflowTaskRelation);
-
- List<WorkflowTaskRelation> workflowTaskRelations = workflowTaskRelationIPage.getRecords();
- if (workflowTaskRelations.size() != 1) {
- throw new ServiceException(Status.WORKFLOW_TASK_RELATION_NOT_EXPECT, 1, workflowTaskRelations.size());
- }
-
- WorkflowTaskRelation workflowTaskRelationDb = workflowTaskRelations.get(0);
- Project project = projectMapper.queryByCode(workflowTaskRelationDb.getProjectCode());
- projectService.checkProjectAndAuthThrowException(loginUser, project, null);
- workflowTaskRelationMapper.deleteById(workflowTaskRelationDb.getId());
- }
-
- /**
- * delete workflow task relation, will delete exists relation upstream -> downstream, throw error if not exists
- *
- * @param loginUser login user
- * @param taskCode relation upstream code
- * @param needSyncDag needSyncDag
- * @param taskRelationUpdateUpstreamRequest relation downstream code
- */
- @Override
- @Transactional
- public List<WorkflowTaskRelation> updateUpstreamTaskDefinitionWithSyncDag(User loginUser,
- long taskCode,
- Boolean needSyncDag,
- TaskRelationUpdateUpstreamRequest taskRelationUpdateUpstreamRequest) {
- TaskDefinition downstreamTask = taskDefinitionMapper.queryByCode(taskCode);
- if (downstreamTask == null) {
- throw new ServiceException(Status.TASK_DEFINE_NOT_EXIST, taskCode);
- }
- List<Long> upstreamTaskCodes = taskRelationUpdateUpstreamRequest.getUpstreams();
-
- WorkflowTaskRelation workflowTaskRelation = new WorkflowTaskRelation();
- workflowTaskRelation.setPostTaskCode(taskCode);
-
- Page<WorkflowTaskRelation> page = new Page<>(taskRelationUpdateUpstreamRequest.getPageNo(),
- taskRelationUpdateUpstreamRequest.getPageSize());
- IPage<WorkflowTaskRelation> workflowTaskRelationExistsIPage =
- workflowTaskRelationMapper.filterWorkflowTaskRelation(page, workflowTaskRelation);
- List<WorkflowTaskRelation> workflowTaskRelationExists = workflowTaskRelationExistsIPage.getRecords();
-
- WorkflowDefinition workflowDefinition = null;
- if (CollectionUtils.isNotEmpty(workflowTaskRelationExists)) {
- workflowDefinition =
- workflowDefinitionMapper.queryByCode(workflowTaskRelationExists.get(0).getWorkflowDefinitionCode());
- } else if (taskRelationUpdateUpstreamRequest.getWorkflowCode() != 0L) {
- workflowDefinition =
- workflowDefinitionMapper.queryByCode(taskRelationUpdateUpstreamRequest.getWorkflowCode());
- }
- if (workflowDefinition == null) {
- throw new ServiceException(Status.REQUEST_PARAMS_NOT_VALID_ERROR,
- taskRelationUpdateUpstreamRequest.toString());
- }
- workflowDefinition.setUpdateTime(new Date());
- int insertVersion = workflowDefinition.getVersion();
- if (needSyncDag) {
- insertVersion =
- this.saveWorkflowDefinition(loginUser, workflowDefinition);
- if (insertVersion <= 0) {
- throw new ServiceException(Status.UPDATE_WORKFLOW_DEFINITION_ERROR);
- }
- }
- // get new relation to create and out of date relation to delete
- List<Long> taskCodeCreates = upstreamTaskCodes
- .stream()
- .filter(upstreamTaskCode -> workflowTaskRelationExists.stream().noneMatch(
- workflowTaskRelation1 -> workflowTaskRelation1.getPreTaskCode() == upstreamTaskCode))
- .collect(Collectors.toList());
- List<Integer> taskCodeDeletes = workflowTaskRelationExists.stream()
- .filter(ptr -> !upstreamTaskCodes.contains(ptr.getPreTaskCode()))
- .map(WorkflowTaskRelation::getId)
- .collect(Collectors.toList());
-
- // delete relation not exists
- if (CollectionUtils.isNotEmpty(taskCodeDeletes)) {
- int delete = workflowTaskRelationMapper.deleteBatchIds(taskCodeDeletes);
- if (delete != taskCodeDeletes.size()) {
- throw new ServiceException(Status.WORKFLOW_TASK_RELATION_BATCH_DELETE_ERROR, taskCodeDeletes);
- }
- }
-
- // create relation not exists
- List<WorkflowTaskRelation> workflowTaskRelations = new ArrayList<>();
- for (long createCode : taskCodeCreates) {
- long upstreamCode = 0L;
- int version = 0;
- if (createCode != 0L) {
- // 0 for DAG root, should not, it may already exists and skip to create anymore
- TaskDefinition upstreamTask = taskDefinitionMapper.queryByCode(createCode);
- if (upstreamTask == null) {
- throw new ServiceException(Status.TASK_DEFINE_NOT_EXIST, createCode);
- }
- upstreamCode = upstreamTask.getCode();
- version = upstreamTask.getVersion();
- }
- WorkflowTaskRelation workflowTaskRelationCreate =
- new WorkflowTaskRelation(null, workflowDefinition.getVersion(), downstreamTask.getProjectCode(),
- workflowDefinition.getCode(), upstreamCode, version,
- downstreamTask.getCode(), downstreamTask.getVersion(), null, null);
- workflowTaskRelations.add(workflowTaskRelationCreate);
- }
- int batchInsert = workflowTaskRelationMapper.batchInsert(workflowTaskRelations);
- if (batchInsert != workflowTaskRelations.size()) {
- throw new ServiceException(Status.WORKFLOW_TASK_RELATION_BATCH_CREATE_ERROR, taskCodeCreates);
- }
-
- // batch sync to workflow task relation log
- int saveTaskRelationResult = saveTaskRelation(loginUser, workflowDefinition, insertVersion);
- if (saveTaskRelationResult != Constants.EXIT_CODE_SUCCESS) {
- log.error(
- "Save workflow task relations error, projectCode:{}, workflowDefinitionCode:{}, workflowDefinitionVersion:{}.",
- workflowDefinition.getProjectCode(), workflowDefinition.getCode(), insertVersion);
- throw new ServiceException(Status.CREATE_WORKFLOW_TASK_RELATION_ERROR);
- }
- log.info(
- "Save workflow task relations complete, projectCode:{}, workflowDefinitionCode:{}, workflowDefinitionVersion:{}.",
- workflowDefinition.getProjectCode(), workflowDefinition.getCode(), insertVersion);
- workflowTaskRelations.get(0).setWorkflowDefinitionVersion(insertVersion);
- return workflowTaskRelations;
- }
-
- public int saveTaskRelation(User loginUser, WorkflowDefinition workflowDefinition,
- int workflowDefinitionVersion) {
- long projectCode = workflowDefinition.getProjectCode();
- long workflowDefinitionCode = workflowDefinition.getCode();
- List<WorkflowTaskRelation> taskRelations =
- workflowTaskRelationMapper.queryByWorkflowDefinitionCode(workflowDefinitionCode);
- List<WorkflowTaskRelationLog> taskRelationList =
- taskRelations.stream().map(WorkflowTaskRelationLog::new).collect(Collectors.toList());
-
- List<Long> taskCodeList =
- taskRelations.stream().map(WorkflowTaskRelation::getPostTaskCode).collect(Collectors.toList());
- List<TaskDefinition> taskDefinitions = taskDefinitionMapper.queryByCodeList(taskCodeList);
- List<TaskDefinitionLog> taskDefinitionLogs =
- taskDefinitions.stream().map(TaskDefinitionLog::new).collect(Collectors.toList());
-
- if (taskRelationList.isEmpty()) {
- return Constants.EXIT_CODE_SUCCESS;
- }
- Map<Long, TaskDefinitionLog> taskDefinitionLogMap = null;
- if (org.apache.commons.collections.CollectionUtils.isNotEmpty(taskDefinitionLogs)) {
- taskDefinitionLogMap = taskDefinitionLogs
- .stream()
- .collect(Collectors.toMap(TaskDefinition::getCode, taskDefinitionLog -> taskDefinitionLog));
- }
- Date now = new Date();
- for (WorkflowTaskRelationLog workflowTaskRelationLog : taskRelationList) {
- workflowTaskRelationLog.setProjectCode(projectCode);
- workflowTaskRelationLog.setWorkflowDefinitionCode(workflowDefinitionCode);
- workflowTaskRelationLog.setWorkflowDefinitionVersion(workflowDefinitionVersion);
- if (taskDefinitionLogMap != null) {
- TaskDefinitionLog preTaskDefinitionLog =
- taskDefinitionLogMap.get(workflowTaskRelationLog.getPreTaskCode());
- if (preTaskDefinitionLog != null) {
- workflowTaskRelationLog.setPreTaskVersion(preTaskDefinitionLog.getVersion());
- }
- TaskDefinitionLog postTaskDefinitionLog =
- taskDefinitionLogMap.get(workflowTaskRelationLog.getPostTaskCode());
- if (postTaskDefinitionLog != null) {
- workflowTaskRelationLog.setPostTaskVersion(postTaskDefinitionLog.getVersion());
- }
- }
- workflowTaskRelationLog.setCreateTime(now);
- workflowTaskRelationLog.setUpdateTime(now);
- workflowTaskRelationLog.setOperator(loginUser.getId());
- workflowTaskRelationLog.setOperateTime(now);
- }
- if (CollectionUtils.isNotEmpty(taskRelations)) {
- Set<Integer> workflowTaskRelationSet =
- taskRelations.stream().map(WorkflowTaskRelation::hashCode).collect(toSet());
- Set<Integer> taskRelationSet =
- taskRelationList.stream().map(WorkflowTaskRelationLog::hashCode).collect(toSet());
- boolean isSame = org.apache.commons.collections.CollectionUtils.isEqualCollection(workflowTaskRelationSet,
- taskRelationSet);
- if (isSame) {
- return Constants.EXIT_CODE_SUCCESS;
- }
- workflowTaskRelationMapper.deleteByWorkflowDefinitionCode(projectCode, workflowDefinitionCode);
- }
- List<WorkflowTaskRelation> workflowTaskRelations =
- taskRelationList.stream().map(WorkflowTaskRelation::new).collect(Collectors.toList());
- int insert = workflowTaskRelationMapper.batchInsert(workflowTaskRelations);
- int resultLog = workflowTaskRelationLogMapper.batchInsert(taskRelationList);
- return (insert & resultLog) > 0 ? Constants.EXIT_CODE_SUCCESS : Constants.EXIT_CODE_FAILURE;
- }
-
- public int saveWorkflowDefinition(User loginUser, WorkflowDefinition workflowDefinition) {
- WorkflowDefinitionLog workflowDefinitionLog = new WorkflowDefinitionLog(workflowDefinition);
- Integer version = workflowDefinitionLogMapper.queryMaxVersionForDefinition(workflowDefinition.getCode());
- int insertVersion = version == null || version == 0 ? Constants.VERSION_FIRST : version + 1;
- workflowDefinitionLog.setVersion(insertVersion);
- workflowDefinitionLog.setOperator(loginUser.getId());
- workflowDefinitionLog.setOperateTime(workflowDefinition.getUpdateTime());
- workflowDefinitionLog.setId(null);
- int insertLog = workflowDefinitionLogMapper.insert(workflowDefinitionLog);
-
- workflowDefinitionLog.setId(workflowDefinition.getId());
- int result = workflowDefinitionMapper.updateById(workflowDefinitionLog);
- return (insertLog & result) > 0 ? insertVersion : 0;
- }
-
- private void updateRelation(User loginUser, Map<String, Object> result, WorkflowDefinition workflowDefinition,
- List<WorkflowTaskRelation> workflowTaskRelationList) {
- List<WorkflowTaskRelationLog> relationLogs =
- workflowTaskRelationList.stream().map(WorkflowTaskRelationLog::new).collect(Collectors.toList());
- int insertResult = processService.saveTaskRelation(loginUser, workflowDefinition.getProjectCode(),
- workflowDefinition.getCode(),
- workflowDefinition.getVersion(), relationLogs, Lists.newArrayList(), Boolean.TRUE);
- if (insertResult == Constants.EXIT_CODE_SUCCESS) {
- log.info(
- "Update task relations complete, projectCode:{}, workflowDefinitionCode:{}, workflowDefinitionVersion:{}.",
- workflowDefinition.getProjectCode(), workflowDefinition.getCode(), workflowDefinition.getVersion());
- putMsg(result, Status.SUCCESS);
- result.put(Constants.DATA_LIST, workflowDefinition);
- } else {
- log.error(
- "Update task relations error, projectCode:{}, workflowDefinitionCode:{}, workflowDefinitionVersion:{}.",
- workflowDefinition.getProjectCode(), workflowDefinition.getCode(), workflowDefinition.getVersion());
- putMsg(result, Status.UPDATE_WORKFLOW_DEFINITION_ERROR);
- throw new ServiceException(Status.UPDATE_WORKFLOW_DEFINITION_ERROR);
- }
- }
-
- /**
- * delete task upstream relation
- *
- * @param loginUser login user
- * @param projectCode project code
- * @param preTaskCodes the pre task codes, sep ','
- * @param taskCode the post task code
- * @return delete result code
- */
- @Transactional
- @Override
- public Map<String, Object> deleteUpstreamRelation(User loginUser, long projectCode, String preTaskCodes,
- long taskCode) {
- Project project = projectMapper.queryByCode(projectCode);
- // check user access for project
- Map<String, Object> result = projectService.checkProjectAndAuth(loginUser, project, projectCode, null);
- if (result.get(Constants.STATUS) != Status.SUCCESS) {
- return result;
- }
- if (StringUtils.isEmpty(preTaskCodes)) {
- log.warn("Parameter preTaskCodes is empty.");
- putMsg(result, Status.DATA_IS_NULL, "preTaskCodes");
- return result;
- }
- List<WorkflowTaskRelation> upstreamList = workflowTaskRelationMapper.queryUpstreamByCode(projectCode, taskCode);
- if (CollectionUtils.isEmpty(upstreamList)) {
- log.error("Upstream tasks based on the task do not exist, theTaskDefinitionCode:{}.", taskCode);
- putMsg(result, Status.DATA_IS_NULL, "taskCode");
- return result;
- }
-
- List<Long> preTaskCodeList = Lists.newArrayList(preTaskCodes.split(Constants.COMMA)).stream()
- .map(Long::parseLong).collect(Collectors.toList());
- if (preTaskCodeList.contains(0L)) {
- log.warn("Parameter preTaskCodes contain 0.");
- putMsg(result, Status.DATA_IS_NULL, "preTaskCodes");
- return result;
- }
- List<Long> currentUpstreamList =
- upstreamList.stream().map(WorkflowTaskRelation::getPreTaskCode).collect(Collectors.toList());
- if (currentUpstreamList.contains(0L)) {
- log.error("Upstream taskCodes based on the task contain, theTaskDefinitionCode:{}.", taskCode);
- putMsg(result, Status.DATA_IS_NOT_VALID, "currentUpstreamList");
- return result;
- }
- List<Long> tmpCurrent = Lists.newArrayList(currentUpstreamList);
- tmpCurrent.removeAll(preTaskCodeList);
- preTaskCodeList.removeAll(currentUpstreamList);
- if (!preTaskCodeList.isEmpty()) {
- String invalidPreTaskCodes = StringUtils.join(preTaskCodeList, Constants.COMMA);
- log.error("Some upstream taskCodes are invalid, preTaskCodeList:{}.", invalidPreTaskCodes);
- putMsg(result, Status.DATA_IS_NOT_VALID, invalidPreTaskCodes);
- return result;
- }
- WorkflowDefinition workflowDefinition =
- workflowDefinitionMapper.queryByCode(upstreamList.get(0).getWorkflowDefinitionCode());
- if (workflowDefinition == null) {
- log.error("workflow definition does not exist, workflowDefinitionCode:{}.",
- upstreamList.get(0).getWorkflowDefinitionCode());
- putMsg(result, Status.WORKFLOW_DEFINITION_NOT_EXIST,
- String.valueOf(upstreamList.get(0).getWorkflowDefinitionCode()));
- return result;
- }
- List<WorkflowTaskRelation> workflowTaskRelations =
- workflowTaskRelationMapper.queryByWorkflowDefinitionCode(workflowDefinition.getCode());
- List<WorkflowTaskRelation> workflowTaskRelationList = Lists.newArrayList(workflowTaskRelations);
- List<WorkflowTaskRelation> workflowTaskRelationWaitRemove = Lists.newArrayList();
- for (WorkflowTaskRelation workflowTaskRelation : workflowTaskRelationList) {
- if (currentUpstreamList.size() > 1) {
- if (currentUpstreamList.contains(workflowTaskRelation.getPreTaskCode())) {
- currentUpstreamList.remove(workflowTaskRelation.getPreTaskCode());
- workflowTaskRelationWaitRemove.add(workflowTaskRelation);
- }
- } else {
- if (workflowTaskRelation.getPostTaskCode() == taskCode
- && (currentUpstreamList.isEmpty() || tmpCurrent.isEmpty())) {
- workflowTaskRelation.setPreTaskVersion(0);
- workflowTaskRelation.setPreTaskCode(0L);
- }
- }
- }
- workflowTaskRelationList.removeAll(workflowTaskRelationWaitRemove);
- updateWorkflowDefiniteVersion(loginUser, result, workflowDefinition);
- updateRelation(loginUser, result, workflowDefinition, workflowTaskRelationList);
- return result;
- }
-
- /**
- * delete task downstream relation
- *
- * @param loginUser login user
- * @param projectCode project code
- * @param postTaskCodes the post task codes, sep ','
- * @param taskCode the pre task code
- * @return delete result code
- */
- @Transactional
- @Override
- public Map<String, Object> deleteDownstreamRelation(User loginUser, long projectCode, String postTaskCodes,
- long taskCode) {
- Project project = projectMapper.queryByCode(projectCode);
- // check user access for project
- Map<String, Object> result = projectService.checkProjectAndAuth(loginUser, project, projectCode, null);
- if (result.get(Constants.STATUS) != Status.SUCCESS) {
- return result;
- }
- if (StringUtils.isEmpty(postTaskCodes)) {
- log.warn("Parameter postTaskCodes is empty.");
- putMsg(result, Status.DATA_IS_NULL, "postTaskCodes");
- return result;
- }
- List<WorkflowTaskRelation> downstreamList =
- workflowTaskRelationMapper.queryDownstreamByCode(projectCode, taskCode);
- if (CollectionUtils.isEmpty(downstreamList)) {
- log.error("Downstream tasks based on the task do not exist, theTaskDefinitionCode:{}.", taskCode);
- putMsg(result, Status.DATA_IS_NULL, "taskCode");
- return result;
- }
- List<Long> postTaskCodeList = Lists.newArrayList(postTaskCodes.split(Constants.COMMA)).stream()
- .map(Long::parseLong).collect(Collectors.toList());
- if (postTaskCodeList.contains(0L)) {
- log.warn("Parameter postTaskCodes contains 0.");
- putMsg(result, Status.DATA_IS_NULL, "postTaskCodes");
- return result;
- }
- WorkflowDefinition workflowDefinition =
- workflowDefinitionMapper.queryByCode(downstreamList.get(0).getWorkflowDefinitionCode());
- if (workflowDefinition == null) {
- log.error("workflow definition does not exist, workflowDefinitionCode:{}.",
- downstreamList.get(0).getWorkflowDefinitionCode());
- putMsg(result, Status.WORKFLOW_DEFINITION_NOT_EXIST,
- String.valueOf(downstreamList.get(0).getWorkflowDefinitionCode()));
- return result;
- }
- List<WorkflowTaskRelation> workflowTaskRelations =
- workflowTaskRelationMapper.queryByWorkflowDefinitionCode(workflowDefinition.getCode());
- List<WorkflowTaskRelation> workflowTaskRelationList = Lists.newArrayList(workflowTaskRelations);
- workflowTaskRelationList
- .removeIf(workflowTaskRelation -> postTaskCodeList.contains(workflowTaskRelation.getPostTaskCode())
- && workflowTaskRelation.getPreTaskCode() == taskCode);
- updateWorkflowDefiniteVersion(loginUser, result, workflowDefinition);
- updateRelation(loginUser, result, workflowDefinition, workflowTaskRelationList);
- return result;
- }
-
- /**
- * query task upstream relation
- *
- * @param loginUser login user
- * @param projectCode project code
- * @param taskCode current task code (post task code)
- * @return the upstream task definitions
- */
- @Override
- public Map<String, Object> queryUpstreamRelation(User loginUser, long projectCode, long taskCode) {
- Project project = projectMapper.queryByCode(projectCode);
- // check user access for project
- Map<String, Object> result = projectService.checkProjectAndAuth(loginUser, project, projectCode, null);
- if (result.get(Constants.STATUS) != Status.SUCCESS) {
- return result;
- }
- List<WorkflowTaskRelation> workflowTaskRelationList =
- workflowTaskRelationMapper.queryUpstreamByCode(projectCode, taskCode);
- List<TaskDefinitionLog> taskDefinitionLogList = new ArrayList<>();
- if (CollectionUtils.isNotEmpty(workflowTaskRelationList)) {
- Set<TaskDefinition> taskDefinitions = workflowTaskRelationList
- .stream()
- .map(workflowTaskRelation -> {
- TaskDefinition taskDefinition = buildTaskDefinition();
- taskDefinition.setProjectCode(workflowTaskRelation.getProjectCode());
- taskDefinition.setCode(workflowTaskRelation.getPreTaskCode());
- taskDefinition.setVersion(workflowTaskRelation.getPreTaskVersion());
- return taskDefinition;
- })
- .collect(Collectors.toSet());
- taskDefinitionLogList = taskDefinitionLogMapper.queryByTaskDefinitions(taskDefinitions);
- }
- result.put(Constants.DATA_LIST, taskDefinitionLogList);
- putMsg(result, Status.SUCCESS);
- return result;
- }
-
- /**
- * query task downstream relation
- *
- * @param loginUser login user
- * @param projectCode project code
- * @param taskCode pre task code
- * @return the downstream task definitions
- */
- @Override
- public Map<String, Object> queryDownstreamRelation(User loginUser, long projectCode, long taskCode) {
- Project project = projectMapper.queryByCode(projectCode);
- // check user access for project
- Map<String, Object> result = projectService.checkProjectAndAuth(loginUser, project, projectCode, null);
- if (result.get(Constants.STATUS) != Status.SUCCESS) {
- return result;
- }
- List<WorkflowTaskRelation> workflowTaskRelationList =
- workflowTaskRelationMapper.queryDownstreamByCode(projectCode, taskCode);
- List<TaskDefinitionLog> taskDefinitionLogList = new ArrayList<>();
- if (CollectionUtils.isNotEmpty(workflowTaskRelationList)) {
- Set<TaskDefinition> taskDefinitions = workflowTaskRelationList
- .stream()
- .map(workflowTaskRelation -> {
- TaskDefinition taskDefinition = buildTaskDefinition();
- taskDefinition.setProjectCode(workflowTaskRelation.getProjectCode());
- taskDefinition.setCode(workflowTaskRelation.getPostTaskCode());
- taskDefinition.setVersion(workflowTaskRelation.getPostTaskVersion());
- return taskDefinition;
- })
- .collect(Collectors.toSet());
- taskDefinitionLogList = taskDefinitionLogMapper.queryByTaskDefinitions(taskDefinitions);
- }
- result.put(Constants.DATA_LIST, taskDefinitionLogList);
- putMsg(result, Status.SUCCESS);
- return result;
- }
-
- /**
- * delete edge
- *
- * @param loginUser login user
- * @param projectCode project code
- * @param workflowDefinitionCode workflow definition code
- * @param preTaskCode pre task code
- * @param postTaskCode post task code
- * @return delete result code
- */
- @Transactional
- @Override
- public Map<String, Object> deleteEdge(User loginUser, long projectCode, long workflowDefinitionCode,
- long preTaskCode, long postTaskCode) {
- Project project = projectMapper.queryByCode(projectCode);
- // check user access for project
- Map<String, Object> result = projectService.checkProjectAndAuth(loginUser, project, projectCode, null);
- if (result.get(Constants.STATUS) != Status.SUCCESS) {
- return result;
- }
- WorkflowDefinition workflowDefinition = workflowDefinitionMapper.queryByCode(workflowDefinitionCode);
- if (workflowDefinition == null) {
- log.error("workflow definition does not exist, projectCode:{}, workflowDefinitionCode:{}.", projectCode,
- workflowDefinitionCode);
- putMsg(result, Status.WORKFLOW_DEFINITION_NOT_EXIST, String.valueOf(workflowDefinitionCode));
- return result;
- }
- List<WorkflowTaskRelation> workflowTaskRelations =
- workflowTaskRelationMapper.queryByWorkflowDefinitionCode(workflowDefinitionCode);
- List<WorkflowTaskRelation> workflowTaskRelationList = Lists.newArrayList(workflowTaskRelations);
- if (CollectionUtils.isEmpty(workflowTaskRelationList)) {
- log.error("workflow task relations are empty, projectCode:{}, workflowDefinitionCode:{}.", projectCode,
- workflowDefinitionCode);
- putMsg(result, Status.DATA_IS_NULL, "workflowTaskRelationList");
- return result;
- }
- Map<Long, List<WorkflowTaskRelation>> taskRelationMap = new HashMap<>();
- for (WorkflowTaskRelation workflowTaskRelation : workflowTaskRelationList) {
- taskRelationMap.compute(workflowTaskRelation.getPostTaskCode(), (k, v) -> {
- if (v == null) {
- v = new ArrayList<>();
- }
- v.add(workflowTaskRelation);
- return v;
- });
- }
- if (!taskRelationMap.containsKey(postTaskCode)) {
- putMsg(result, Status.DATA_IS_NULL, "postTaskCode");
- return result;
- }
- if (taskRelationMap.get(postTaskCode).size() > 1) {
- for (WorkflowTaskRelation workflowTaskRelation : taskRelationMap.get(postTaskCode)) {
- if (workflowTaskRelation.getPreTaskCode() == preTaskCode) {
- int delete = workflowTaskRelationMapper.deleteById(workflowTaskRelation.getId());
- if (delete == 0) {
- log.error(
- "Delete task relation edge error, workflowTaskRelationId:{}, preTaskCode:{}, postTaskCode:{}",
- workflowTaskRelation.getId(), preTaskCode, postTaskCode);
- putMsg(result, Status.DELETE_EDGE_ERROR);
- throw new ServiceException(Status.DELETE_EDGE_ERROR);
- } else
- log.info(
- "Delete task relation edge complete, workflowTaskRelationId:{}, preTaskCode:{}, postTaskCode:{}",
- workflowTaskRelation.getId(), preTaskCode, postTaskCode);
- workflowTaskRelationList.remove(workflowTaskRelation);
- }
- }
- } else {
- WorkflowTaskRelation workflowTaskRelation = taskRelationMap.get(postTaskCode).get(0);
- workflowTaskRelationList.remove(workflowTaskRelation);
- workflowTaskRelation.setPreTaskVersion(0);
- workflowTaskRelation.setPreTaskCode(0L);
- workflowTaskRelationList.add(workflowTaskRelation);
- log.info(
- "Delete task relation through set invalid value for it: preTaskCode from {} to 0, workflowTaskRelationId:{}.",
- preTaskCode, workflowTaskRelation.getId());
- }
- updateWorkflowDefiniteVersion(loginUser, result, workflowDefinition);
- updateRelation(loginUser, result, workflowDefinition, workflowTaskRelationList);
- return result;
- }
-
@Override
public List<WorkflowTaskRelation> queryByWorkflowDefinitionCode(long workflowDefinitionCode,
int workflowDefinitionVersion) {
@@ -907,33 +48,4 @@ public class WorkflowTaskRelationServiceImpl extends BaseServiceImpl implements
workflowDefinitionVersion);
}
- /**
- * build task definition
- *
- * @return task definition
- */
- private TaskDefinition buildTaskDefinition() {
-
- return new TaskDefinition() {
-
- @Override
- public boolean equals(Object o) {
- if (this == o) {
- return true;
- }
- if (!(o instanceof TaskDefinition)) {
- return false;
- }
- TaskDefinition that = (TaskDefinition) o;
- return getCode() == that.getCode()
- && getVersion() == that.getVersion()
- && getProjectCode() == that.getProjectCode();
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(getCode(), getVersion(), getProjectCode());
- }
- };
- }
}
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/utils/FileUtils.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/utils/FileUtils.java
deleted file mode 100644
index ac35663ab0..0000000000
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/utils/FileUtils.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * 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.dolphinscheduler.api.utils;
-
-import org.apache.commons.io.IOUtils;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.nio.charset.StandardCharsets;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-
-import lombok.extern.slf4j.Slf4j;
-
-import org.springframework.core.io.Resource;
-import org.springframework.core.io.UrlResource;
-import org.springframework.web.multipart.MultipartFile;
-
-/**
- * file utils
- */
-@Slf4j
-public class FileUtils {
-
- /**
- * copy source InputStream to target file
- * @param file
- * @param destFilename
- */
- public static void copyInputStreamToFile(MultipartFile file, String destFilename) {
- try {
- org.apache.commons.io.FileUtils.copyInputStreamToFile(file.getInputStream(), new File(destFilename));
- } catch (IOException e) {
- log.error("failed to copy file , {} is empty file", file.getOriginalFilename(), e);
- }
- }
-
- /**
- * file to resource
- *
- * @param filename file name
- * @return resource
- * @throws MalformedURLException io exceptions
- */
- public static Resource file2Resource(String filename) throws MalformedURLException {
- Path file = Paths.get(filename);
-
- Resource resource = new UrlResource(file.toUri());
- if (resource.exists() || resource.isReadable()) {
- return resource;
- } else {
- log.error("File can not be read, fileName:{}", filename);
- }
- return null;
- }
-
- /**
- * file convert String
- * @param file MultipartFile file
- * @return file content string
- */
- public static String file2String(MultipartFile file) {
- try (InputStream inputStream = file.getInputStream()) {
- return IOUtils.toString(inputStream, StandardCharsets.UTF_8);
- } catch (IOException e) {
- log.error("file convert to string failed: {}", file.getName());
- }
-
- return "";
- }
-}
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/utils/Result.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/utils/Result.java
index 90273e5bb4..d83ce0771b 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/utils/Result.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/utils/Result.java
@@ -146,7 +146,4 @@ public class Result<T> {
+ '}';
}
- public Boolean checkResult() {
- return this.code == Status.SUCCESS.getCode();
- }
}
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/validator/workflow/BackfillWorkflowRequestTransformer.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/validator/workflow/BackfillWorkflowRequestTransformer.java
index b9f0b36316..8fea31a953 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/validator/workflow/BackfillWorkflowRequestTransformer.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/validator/workflow/BackfillWorkflowRequestTransformer.java
@@ -25,7 +25,6 @@ import org.apache.dolphinscheduler.common.utils.CodeGenerateUtils;
import org.apache.dolphinscheduler.common.utils.DateUtils;
import org.apache.dolphinscheduler.dao.entity.Schedule;
import org.apache.dolphinscheduler.dao.entity.WorkflowDefinition;
-import org.apache.dolphinscheduler.dao.repository.ProjectDao;
import org.apache.dolphinscheduler.dao.repository.WorkflowDefinitionDao;
import org.apache.dolphinscheduler.plugin.task.api.utils.PropertyUtils;
import org.apache.dolphinscheduler.service.cron.CronUtils;
@@ -49,9 +48,6 @@ public class BackfillWorkflowRequestTransformer implements ITransformer<Workflow
@Autowired
private ProcessService processService;
- @Autowired
- private ProjectDao projectDao;
-
@Autowired
private WorkflowDefinitionDao workflowDefinitionDao;
diff --git a/dolphinscheduler-api/src/main/resources/i18n/messages.properties b/dolphinscheduler-api/src/main/resources/i18n/messages.properties
index 379f9b0cfd..472001c276 100644
--- a/dolphinscheduler-api/src/main/resources/i18n/messages.properties
+++ b/dolphinscheduler-api/src/main/resources/i18n/messages.properties
@@ -94,7 +94,6 @@ SUFFIX=resource file suffix
CONTENT=resource file content
UPDATE_RESOURCE_NOTES=edit resource file online
DOWNLOAD_RESOURCE_NOTES=download resource file
-CLASS_NAME=package and class name
VERIFY_QUEUE_NOTES=verify queue
TENANT_TAG=tenant related operation
CREATE_TENANT_NOTES=create tenant
@@ -112,7 +111,6 @@ QUERY_ALL_PROJECT_LIST_NOTES=query all project list
QUERY_AUTHORIZED_PROJECT_NOTES=query authorized project
QUERY_AUTHORIZED_USER_NOTES=query authorized user
CREATE_TOKEN_NOTES=create access token for specified user
-CREATE_TOKEN_V2=create access token for specified user (V2)
UPDATE_TOKEN_NOTES=update access token for specified user
TOKEN=access token string, it will be automatically generated when it absent
EXPIRE_TIME=expire time for the token
@@ -149,7 +147,6 @@ VERIFY_WORKFLOW_DEFINITION_NAME_NOTES=verify workflow definition name
LOGIN_NOTES=user login
SSO_LOGIN_NOTES=user sso login
UPDATE_WORKFLOW_DEFINITION_NOTES=update workflow definition
-WORKFLOW_DEFINITION_ID=workflow definition id
RELEASE_WORKFLOW_DEFINITION_NOTES=release workflow definition
QUERY_WORKFLOW_DEFINITION_BY_NAME_NOTES=query workflow definition by name
QUERY_WORKFLOW_DEFINITION_LIST_NOTES=query workflow definition list
@@ -173,8 +170,6 @@ TASK_ID=task instance id
SKIP_LINE_NUM=skip line num
QUERY_TASK_INSTANCE_LOG_NOTES=query task instance log
DOWNLOAD_TASK_INSTANCE_LOG_NOTES=download task instance log
-QUERY_TASK_INSTANCE_LOG_IN_SPECIFIED_PROJECT_NOTES=query task instance log in specified project
-DOWNLOAD_TASK_INSTANCE_LOG_IN_SPECIFIED_PROJECT_NOTES=download task instance log in specified project
USERS_TAG=users related operation
SCHEDULE_TAG=schedule related operation
CREATE_SCHEDULE_NOTES=create schedule
@@ -241,7 +236,6 @@ STATE=state
TABLE_NAME=table name
AUDIT_LOG_TAG=audit log related operation
TASK_DEFINITION_TAG=task definition related operation
-WORKFLOW_TASK_RELATION_TAG=workflow task relation related operation
ENVIRONMENT_TAG=environment related operation
CREATE_ENVIRONMENT_NOTES=create environment
ENVIRONMENT_NAME=environment name
@@ -296,14 +290,6 @@ QUERY_AVAILABLE_NAMESPACE_LIST_NOTES=query available k8s namespace
QUERY_WORKFLOW_DEFINITION_All_BY_PROJECT_CODE_NOTES=query all workflow definition by project code
-CREATE_WORKFLOW_TASK_RELATION_NOTES=create workflow task relation
-DELETE_WORKFLOW_TASK_RELATION_NOTES=delete workflow task relation
-DELETE_UPSTREAM_RELATION_NOTES=delete upstream task relation
-DELETE_DOWNSTREAM_RELATION_NOTES=delete downstream task relation
-QUERY_UPSTREAM_RELATION_NOTES=query upstream task relation
-QUERY_DOWNSTREAM_RELATION_NOTES=query downstream task relation
-DELETE_EDGE_NOTES=delete edge
-
TASK_DEFINITION_JSON=task definition json
UPSTREAM_CODES=upstream code list
UPDATE_TASK_DEFINITION_NOTES=update task definition
@@ -344,7 +330,6 @@ QUERY_WORKFLOW_LINEAGE_BY_NAME_NOTES=query workflow lineage by name
QUERY_WORKFLOW_LINEAGE_BY_CODE_NOTE=query workflow lineage by code list
QUERY_WORKFLOW_LINEAGE_NOTES=query workflow lineage
VERIFY_TASK_CAN_DELETE=verify if task can be deleted
-WORKFLOW_TAG_V2=work flow lineage related operation (V2)
PROJECT_PARAMETER_TAG=project parameter related operation
CREATE_PROJECT_PARAMETER_NOTES=create project parameter
diff --git a/dolphinscheduler-api/src/main/resources/i18n/messages_en_US.properties b/dolphinscheduler-api/src/main/resources/i18n/messages_en_US.properties
index 086dbc2694..d75bd7c0a5 100644
--- a/dolphinscheduler-api/src/main/resources/i18n/messages_en_US.properties
+++ b/dolphinscheduler-api/src/main/resources/i18n/messages_en_US.properties
@@ -34,7 +34,6 @@ VERIFY_ALERT_GROUP_NAME_NOTES=verify alert group name, check alert group exist o
EXECUTOR_TAG=executor operation
EXECUTOR_NAME=executor name
WORKER_GROUP=work group
-startParams=start parameters
ALERT_GROUP_TAG=alert group related operation
ALERT_PLUGIN_INSTANCE_TAG=alert plugin instance related operation
WORK_FLOW_LINEAGE_TAG=work flow lineage related operation
@@ -99,7 +98,6 @@ SUFFIX=resource file suffix
CONTENT=resource file content
UPDATE_RESOURCE_NOTES=edit resource file online
DOWNLOAD_RESOURCE_NOTES=download resource file
-CLASS_NAME=package and class name
VERIFY_QUEUE_NOTES=verify queue
TENANT_TAG=tenant related operation
CREATE_TENANT_NOTES=create tenant
@@ -117,7 +115,6 @@ QUERY_UNAUTHORIZED_PROJECT_NOTES=query unauthorized project
QUERY_AUTHORIZED_PROJECT_NOTES=query authorized project
QUERY_AUTHORIZED_USER_NOTES=query authorized user
CREATE_TOKEN_NOTES=create access token for specified user
-CREATE_TOKEN_V2=create access token for specified user (V2)
UPDATE_TOKEN_NOTES=update access token for specified user
TOKEN=access token string, it will be automatically generated when it absent
EXPIRE_TIME=expire time for the token
@@ -203,8 +200,6 @@ WORKFLOW_INSTANCE_IDS=workflow instance ids, delimiter by "," if more than one i
SKIP_LINE_NUM=skip line num
QUERY_TASK_INSTANCE_LOG_NOTES=query task instance log
DOWNLOAD_TASK_INSTANCE_LOG_NOTES=download task instance log
-QUERY_TASK_INSTANCE_LOG_IN_SPECIFIED_PROJECT_NOTES=query task instance log in specified project
-DOWNLOAD_TASK_INSTANCE_LOG_IN_SPECIFIED_PROJECT_NOTES=download task instance log in specified project
USERS_TAG=users related operation
SCHEDULE_TAG=schedule related operation
CREATE_SCHEDULE_NOTES=create schedule
@@ -275,7 +270,6 @@ TABLE_NAME=table name
QUERY_AUDIT_LOG=query audit log
AUDIT_LOG_TAG=audit log related operation
TASK_DEFINITION_TAG=task definition related operation
-WORKFLOW_TASK_RELATION_TAG=process task relation related operation
ENVIRONMENT_TAG=environment related operation
CREATE_ENVIRONMENT_NOTES=create environment
ENVIRONMENT_NAME=environment name
@@ -326,14 +320,6 @@ QUERY_AVAILABLE_NAMESPACE_LIST_NOTES=query available k8s namespace
QUERY_WORKFLOW_DEFINITION_All_BY_PROJECT_CODE_NOTES=query all process definition by project code
-CREATE_WORKFLOW_TASK_RELATION_NOTES=create process task relation
-DELETE_WORKFLOW_TASK_RELATION_NOTES=delete process task relation
-DELETE_UPSTREAM_RELATION_NOTES=delete upstream task relation
-DELETE_DOWNSTREAM_RELATION_NOTES=delete downstream task relation
-QUERY_UPSTREAM_RELATION_NOTES=query upstream task relation
-QUERY_DOWNSTREAM_RELATION_NOTES=query downstream task relation
-DELETE_EDGE_NOTES=delete edge
-
TASK_DEFINITION_JSON=task definition json
UPSTREAM_CODES=upstream code list
UPDATE_TASK_DEFINITION_NOTES=update task definition
@@ -371,7 +357,6 @@ TASK_INSTANCE_STOP=stop task instance
QUERY_WORKFLOW_LINEAGE_BY_CODE_NOTE=query workflow lineage by code list
QUERY_WORKFLOW_LINEAGE_NOTES=query workflow lineage
VERIFY_TASK_CAN_DELETE=verify if task can be deleted
-WORKFLOW_TAG_V2=work flow lineage related operation (V2)
PROJECT_PARAMETER_TAG=project parameter related operation
CREATE_PROJECT_PARAMETER_NOTES=create project parameter
diff --git a/dolphinscheduler-api/src/main/resources/i18n/messages_zh_CN.properties b/dolphinscheduler-api/src/main/resources/i18n/messages_zh_CN.properties
index f6a1bd01e4..2c0260898b 100644
--- a/dolphinscheduler-api/src/main/resources/i18n/messages_zh_CN.properties
+++ b/dolphinscheduler-api/src/main/resources/i18n/messages_zh_CN.properties
@@ -32,7 +32,6 @@ EXECUTOR_NAME=\u6D41\u7A0B\u540D\u79F0
DESC=\u5907\u6CE8(\u63CF\u8FF0)
GROUP_NAME=\u7EC4\u540D\u79F0
WORKER_GROUP=worker\u7FA4\u7EC4
-startParams=\u542F\u52A8\u53C2\u6570
QUERY_ALERT_GROUP_LIST_NOTES=\u544A\u8B66\u7EC4\u5217\u8868
UPDATE_ALERT_GROUP_NOTES=\u7F16\u8F91(\u66F4\u65B0)\u544A\u8B66\u7EC4
DELETE_ALERT_GROUP_BY_ID_NOTES=\u901A\u8FC7ID\u5220\u9664\u544A\u8B66\u7EC4
@@ -86,7 +85,6 @@ SUFFIX=\u8D44\u6E90\u6587\u4EF6\u540E\u7F00
CONTENT=\u8D44\u6E90\u6587\u4EF6\u5185\u5BB9
UPDATE_RESOURCE_NOTES=\u5728\u7EBF\u66F4\u65B0\u8D44\u6E90\u6587\u4EF6
DOWNLOAD_RESOURCE_NOTES=\u4E0B\u8F7D\u8D44\u6E90\u6587\u4EF6
-CLASS_NAME=\u5305\u540D\u7C7B\u540D
VERIFY_QUEUE_NOTES=\u9A8C\u8BC1\u961F\u5217
TENANT_TAG=\u79DF\u6237\u76F8\u5173\u64CD\u4F5C
CREATE_TENANT_NOTES=\u521B\u5EFA\u79DF\u6237
@@ -104,7 +102,6 @@ QUERY_UNAUTHORIZED_PROJECT_NOTES=\u67E5\u8BE2\u672A\u6388\u6743\u7684\u9879\u76E
QUERY_AUTHORIZED_PROJECT_NOTES=\u67E5\u8BE2\u6388\u6743\u9879\u76EE
QUERY_AUTHORIZED_USER_NOTES=\u67E5\u8BE2\u62E5\u6709\u9879\u76EE\u6388\u6743\u7684\u7528\u6237
CREATE_TOKEN_NOTES=\u4E3A\u6307\u5B9A\u7528\u6237\u521B\u5EFA\u5B89\u5168\u4EE4\u724C
-CREATE_TOKEN_V2=\u4E3A\u6307\u5B9A\u7528\u6237\u521B\u5EFA\u5B89\u5168\u4EE4\u724C (V2)
UPDATE_TOKEN_NOTES=\u66F4\u65B0\u6307\u5B9A\u7528\u6237\u7684\u5B89\u5168\u4EE4\u724C
TOKEN=\u5B89\u5168\u4EE4\u724C\u5B57\u7B26\u4E32\uFF0C\u82E5\u672A\u663E\u5F0F\u6307\u5B9A\u5C06\u4F1A\u81EA\u52A8\u751F\u6210
EXPIRE_TIME=\u5B89\u5168\u4EE4\u724C\u7684\u8FC7\u671F\u65F6\u95F4
@@ -144,7 +141,6 @@ QUERY_WORKFLOW_INSTANCE_LIST_NOTES=\u67E5\u8BE2\u6D41\u7A0B\u5B9E\u4F8B\u5217\u8
VERIFY_WORKFLOW_DEFINITION_NAME_NOTES=\u9A8C\u8BC1\u6D41\u7A0B\u5B9A\u4E49\u540D\u5B57
LOGIN_NOTES=\u7528\u6237\u767B\u5F55
UPDATE_WORKFLOW_DEFINITION_NOTES=\u66F4\u65B0\u6D41\u7A0B\u5B9A\u4E49
-WORKFLOW_DEFINITION_ID=\u6D41\u7A0B\u5B9A\u4E49ID
RELEASE_WORKFLOW_DEFINITION_NOTES=\u53D1\u5E03\u6D41\u7A0B\u5B9A\u4E49
QUERY_WORKFLOW_DEFINITION_LIST_NOTES=\u67E5\u8BE2\u6D41\u7A0B\u5B9A\u4E49\u5217\u8868
QUERY_WORKFLOW_DEFINITION_LIST_PAGING_NOTES=\u5206\u9875\u67E5\u8BE2\u6D41\u7A0B\u5B9A\u4E49\u5217\u8868
@@ -184,8 +180,6 @@ TASK_ID=\u4EFB\u52A1\u5B9E\u4F8BID
SKIP_LINE_NUM=\u5FFD\u7565\u884C\u6570
QUERY_TASK_INSTANCE_LOG_NOTES=\u67E5\u8BE2\u4EFB\u52A1\u5B9E\u4F8B\u65E5\u5FD7
DOWNLOAD_TASK_INSTANCE_LOG_NOTES=\u4E0B\u8F7D\u4EFB\u52A1\u5B9E\u4F8B\u65E5\u5FD7
-QUERY_TASK_INSTANCE_LOG_IN_SPECIFIED_PROJECT_NOTES=\u67E5\u8BE2\u6307\u5B9A\u9879\u76EE\u7684\u4EFB\u52A1\u5B9E\u4F8B\u65E5\u5FD7
-DOWNLOAD_TASK_INSTANCE_LOG_IN_SPECIFIED_PROJECT_NOTES=\u4E0B\u8F7D\u6307\u5B9A\u9879\u76EE\u7684\u4EFB\u52A1\u5B9E\u4F8B\u65E5\u5FD7
USERS_TAG=\u7528\u6237\u76F8\u5173\u64CD\u4F5C
SCHEDULE_TAG=\u5B9A\u65F6\u76F8\u5173\u64CD\u4F5C
CREATE_SCHEDULE_NOTES=\u521B\u5EFA\u5B9A\u65F6
@@ -274,7 +268,6 @@ TABLE_NAME=\u8868\u540D
QUERY_AUDIT_LOG=\u67E5\u8BE2\u5BA1\u8BA1\u65E5\u5FD7
AUDIT_LOG_TAG=\u5BA1\u8BA1\u65E5\u5FD7\u6267\u884C\u76F8\u5173\u64CD\u4F5C
TASK_DEFINITION_TAG=\u4EFB\u52A1\u5B9A\u4E49\u76F8\u5173\u64CD\u4F5C
-WORKFLOW_TASK_RELATION_TAG=\u5DE5\u4F5C\u6D41\u5173\u7CFB\u76F8\u5173\u64CD\u4F5C
ENVIRONMENT_TAG=\u73AF\u5883\u76F8\u5173\u64CD\u4F5C
CREATE_ENVIRONMENT_NOTES=\u521B\u5EFA\u73AF\u5883
ENVIRONMENT_NAME=\u73AF\u5883\u540D\u79F0
@@ -325,14 +318,6 @@ QUERY_AVAILABLE_NAMESPACE_LIST_NOTES=\u67E5\u8BE2\u53EF\u7528\u547D\u540D\u7A7A\
QUERY_WORKFLOW_DEFINITION_All_BY_PROJECT_CODE_NOTES=\u901A\u8FC7\u9879\u76EE\u4EE3\u7801\u67E5\u8BE2\u6240\u6709\u5DE5\u4F5C\u91CF\u5B9A\u4E49
-CREATE_WORKFLOW_TASK_RELATION_NOTES=\u521B\u5EFA\u5DE5\u4F5C\u6D41\u4EFB\u52A1\u5173\u7CFB
-DELETE_WORKFLOW_TASK_RELATION_NOTES=\u5220\u9664\u5DE5\u4F5C\u6D41\u4EFB\u52A1\u5173\u7CFB
-DELETE_UPSTREAM_RELATION_NOTES=\u5220\u9664\u4E0A\u6E38\u5DE5\u4F5C\u6D41\u4EFB\u52A1\u5173\u7CFB
-DELETE_DOWNSTREAM_RELATION_NOTES=\u5220\u9664\u4E0B\u6E38\u5DE5\u4F5C\u6D41\u4EFB\u52A1\u5173\u7CFB
-QUERY_UPSTREAM_RELATION_NOTES=\u67E5\u8BE2\u4E0A\u6E38\u5DE5\u4F5C\u6D41\u4EFB\u52A1\u5173\u7CFB
-QUERY_DOWNSTREAM_RELATION_NOTES=\u67E5\u8BE2\u4E0B\u6E38\u5DE5\u4F5C\u6D41\u4EFB\u52A1\u5173\u7CFB
-DELETE_EDGE_NOTES=\u5220\u9664\u5DE5\u4F5C\u6D41\u4EFB\u52A1\u8FDE\u63A5\u7EBF
-
TASK_DEFINITION_JSON=\u4EFB\u52A1\u5B9A\u4E49JSON
UPSTREAM_CODES=\u4E0A\u6E38\u4EE3\u7801\u5217\u8868
UPDATE_TASK_DEFINITION_NOTES=\u66F4\u65B0\u4EFB\u52A1\u5B9A\u4E49
@@ -370,7 +355,6 @@ TASK_INSTANCE_STOP=\u505C\u6B62\u4EFB\u52A1\u5B9E\u4F8B
QUERY_WORKFLOW_LINEAGE_BY_CODE_NOTE=\u901A\u8FC7\u8840\u7F18\u4EE3\u7801\u67E5\u8BE2\u5DE5\u4F5C\u6D41\u8840\u7F18\u5173\u7CFB
QUERY_WORKFLOW_LINEAGE_NOTES=\u67E5\u8BE2\u5DE5\u4F5C\u91CF\u8840\u7F18\u5173\u7CFB
VERIFY_TASK_CAN_DELETE=\u6821\u9A8C\u662F\u5426\u53EF\u4EE5\u5220\u9664\u4EFB\u52A1
-WORKFLOW_TAG_V2=\u5DE5\u4F5C\u91CF\u8840\u7F18\u5173\u7CFB\u76F8\u5173\u64CD\u4F5C (V2)
PROJECT_PARAMETER_TAG=\u9879\u76EE\u53C2\u6570\u76F8\u5173\u64CD\u4F5C
CREATE_PROJECT_PARAMETER_NOTES=\u65B0\u589E\u9879\u76EE\u53C2\u6570
diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/AlertGroupServiceTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/AlertGroupServiceTest.java
index cf1fcb0a62..99acaab580 100644
--- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/AlertGroupServiceTest.java
+++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/AlertGroupServiceTest.java
@@ -67,7 +67,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
public class AlertGroupServiceTest {
private static final Logger baseServiceLogger = LoggerFactory.getLogger(BaseServiceImpl.class);
- private static final Logger logger = LoggerFactory.getLogger(AlertGroupServiceTest.class);
private static final Logger alertGroupServiceLogger = LoggerFactory.getLogger(AlertGroupServiceImpl.class);
private String tooLongDescription =
"this is a toooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo"
diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/AlertPluginInstanceServiceTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/AlertPluginInstanceServiceTest.java
index 98126e1971..c9abca643b 100644
--- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/AlertPluginInstanceServiceTest.java
+++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/AlertPluginInstanceServiceTest.java
@@ -32,7 +32,6 @@ import org.apache.dolphinscheduler.api.service.impl.AlertPluginInstanceServiceIm
import org.apache.dolphinscheduler.api.service.impl.BaseServiceImpl;
import org.apache.dolphinscheduler.common.enums.AuthorizationType;
import org.apache.dolphinscheduler.common.enums.UserType;
-import org.apache.dolphinscheduler.common.enums.WarningType;
import org.apache.dolphinscheduler.common.model.Server;
import org.apache.dolphinscheduler.dao.entity.AlertGroup;
import org.apache.dolphinscheduler.dao.entity.AlertPluginInstance;
@@ -95,10 +94,6 @@ public class AlertPluginInstanceServiceTest {
private User noPermUser;
- private final Integer GLOBAL_ALERT_GROUP_ID = 2;
-
- private static final WarningType warningType = WarningType.ALL;
-
private String uiParams = "[\n"
+ " {\n"
+ " \"field\":\"userParams\",\n"
diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/AuditServiceTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/AuditServiceTest.java
index 86238f0598..e06dfc77db 100644
--- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/AuditServiceTest.java
+++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/AuditServiceTest.java
@@ -38,8 +38,6 @@ import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.junit.jupiter.MockitoExtension;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -50,8 +48,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ExtendWith(MockitoExtension.class)
public class AuditServiceTest {
- private static final Logger logger = LoggerFactory.getLogger(AuditServiceTest.class);
-
@InjectMocks
private AuditServiceImpl auditService;
diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/BaseServiceTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/BaseServiceTest.java
index ea5988f560..162d82a90a 100644
--- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/BaseServiceTest.java
+++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/BaseServiceTest.java
@@ -23,7 +23,6 @@ import org.apache.dolphinscheduler.api.utils.Result;
import org.apache.dolphinscheduler.common.constants.Constants;
import org.apache.dolphinscheduler.common.enums.UserType;
import org.apache.dolphinscheduler.dao.entity.User;
-import org.apache.dolphinscheduler.plugin.storage.hdfs.HdfsStorageOperator;
import java.util.HashMap;
import java.util.Map;
@@ -32,10 +31,7 @@ import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
-import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/**
* base service test
@@ -43,13 +39,8 @@ import org.slf4j.LoggerFactory;
@ExtendWith(MockitoExtension.class)
public class BaseServiceTest {
- private static final Logger logger = LoggerFactory.getLogger(BaseServiceTest.class);
-
private BaseServiceImpl baseService;
- @Mock
- private HdfsStorageOperator hdfsStorageOperator;
-
@BeforeEach
public void setUp() {
baseService = new BaseServiceImpl();
diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/DataSourceServiceTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/DataSourceServiceTest.java
index 1824b50923..6ba50e2f13 100644
--- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/DataSourceServiceTest.java
+++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/DataSourceServiceTest.java
@@ -35,7 +35,6 @@ import org.apache.dolphinscheduler.common.utils.PropertyUtils;
import org.apache.dolphinscheduler.dao.entity.DataSource;
import org.apache.dolphinscheduler.dao.entity.User;
import org.apache.dolphinscheduler.dao.mapper.DataSourceMapper;
-import org.apache.dolphinscheduler.dao.mapper.DataSourceUserMapper;
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseDataSourceParamDTO;
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.DataSourceProcessor;
import org.apache.dolphinscheduler.plugin.datasource.api.plugin.DataSourceClientProvider;
@@ -93,9 +92,6 @@ public class DataSourceServiceTest {
@Mock
private DataSourceMapper dataSourceMapper;
- @Mock
- private DataSourceUserMapper datasourceUserMapper;
-
@Mock
private ResourcePermissionCheckService resourcePermissionCheckService;
diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/K8SNamespaceServiceTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/K8SNamespaceServiceTest.java
index de5e48b589..19241f1912 100644
--- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/K8SNamespaceServiceTest.java
+++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/K8SNamespaceServiceTest.java
@@ -20,7 +20,6 @@ package org.apache.dolphinscheduler.api.service;
import static org.apache.dolphinscheduler.api.AssertionsHelper.assertThrowsServiceException;
import org.apache.dolphinscheduler.api.enums.Status;
-import org.apache.dolphinscheduler.api.k8s.K8sClientService;
import org.apache.dolphinscheduler.api.service.impl.K8SNamespaceServiceImpl;
import org.apache.dolphinscheduler.api.utils.PageInfo;
import org.apache.dolphinscheduler.api.utils.Result;
@@ -31,7 +30,6 @@ import org.apache.dolphinscheduler.dao.entity.K8sNamespace;
import org.apache.dolphinscheduler.dao.entity.User;
import org.apache.dolphinscheduler.dao.mapper.ClusterMapper;
import org.apache.dolphinscheduler.dao.mapper.K8sNamespaceMapper;
-import org.apache.dolphinscheduler.dao.mapper.UserMapper;
import org.apache.commons.collections4.CollectionUtils;
@@ -67,12 +65,6 @@ public class K8SNamespaceServiceTest {
@Mock
private K8sNamespaceMapper k8sNamespaceMapper;
- @Mock
- private K8sClientService k8sClientService;
-
- @Mock
- private UserMapper userMapper;
-
@Mock
private ClusterMapper clusterMapper;
diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ProjectServiceTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ProjectServiceTest.java
index b14d31124e..8a6feab74a 100644
--- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ProjectServiceTest.java
+++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ProjectServiceTest.java
@@ -37,7 +37,6 @@ import org.apache.dolphinscheduler.dao.entity.Project;
import org.apache.dolphinscheduler.dao.entity.User;
import org.apache.dolphinscheduler.dao.entity.WorkflowDefinition;
import org.apache.dolphinscheduler.dao.mapper.ProjectMapper;
-import org.apache.dolphinscheduler.dao.mapper.ProjectUserMapper;
import org.apache.dolphinscheduler.dao.mapper.UserMapper;
import org.apache.dolphinscheduler.dao.mapper.WorkflowDefinitionMapper;
@@ -75,15 +74,13 @@ public class ProjectServiceTest {
private static final Logger logger = LoggerFactory.getLogger(ProjectServiceTest.class);
private static final Logger baseServiceLogger = LoggerFactory.getLogger(BaseServiceImpl.class);
private static final Logger projectLogger = LoggerFactory.getLogger(ProjectServiceImpl.class);
+
@InjectMocks
private ProjectServiceImpl projectService;
@Mock
private ProjectMapper projectMapper;
- @Mock
- private ProjectUserMapper projectUserMapper;
-
@Mock
private WorkflowDefinitionMapper workflowDefinitionMapper;
@@ -93,9 +90,6 @@ public class ProjectServiceTest {
@Mock
private ResourcePermissionCheckService resourcePermissionCheckService;
- @Mock
- private TaskGroupService taskGroupService;
-
private String projectName = "ProjectServiceTest";
private String userName = "ProjectServiceTest";
diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/SchedulerServiceTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/SchedulerServiceTest.java
index 71af536422..33b487340c 100644
--- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/SchedulerServiceTest.java
+++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/SchedulerServiceTest.java
@@ -25,11 +25,9 @@ import org.apache.dolphinscheduler.dao.entity.Project;
import org.apache.dolphinscheduler.dao.entity.Schedule;
import org.apache.dolphinscheduler.dao.entity.User;
import org.apache.dolphinscheduler.dao.entity.WorkflowDefinition;
-import org.apache.dolphinscheduler.dao.mapper.EnvironmentMapper;
import org.apache.dolphinscheduler.dao.mapper.ProjectMapper;
import org.apache.dolphinscheduler.dao.mapper.ScheduleMapper;
import org.apache.dolphinscheduler.dao.mapper.WorkflowDefinitionMapper;
-import org.apache.dolphinscheduler.scheduler.api.SchedulerApi;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
@@ -64,15 +62,6 @@ public class SchedulerServiceTest extends BaseServiceTestTool {
@Mock
private ProjectService projectService;
- @Mock
- private SchedulerApi schedulerApi;
-
- @Mock
- private ExecutorService executorService;
-
- @Mock
- private EnvironmentMapper environmentMapper;
-
protected static User user;
protected Exception exception;
private static final String userName = "userName";
@@ -84,9 +73,6 @@ public class SchedulerServiceTest extends BaseServiceTestTool {
private static final int processDefinitionVersion = 3;
private static final int scheduleId = 3;
private static final long environmentCode = 4L;
- private static final String startTime = "2020-01-01 12:13:14";
- private static final String endTime = "2020-02-01 12:13:14";
- private static final String crontab = "0 0 * * * ? *";
@BeforeEach
public void setUp() {
diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/SessionServiceTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/SessionServiceTest.java
index cb82554f2b..97626ae877 100644
--- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/SessionServiceTest.java
+++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/SessionServiceTest.java
@@ -38,8 +38,6 @@ import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.junit.jupiter.MockitoExtension;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/**
* session service test
@@ -47,8 +45,6 @@ import org.slf4j.LoggerFactory;
@ExtendWith(MockitoExtension.class)
public class SessionServiceTest {
- private static final Logger logger = LoggerFactory.getLogger(SessionServiceTest.class);
-
@InjectMocks
private SessionServiceImpl sessionService;
diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TaskDefinitionLogServiceTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TaskDefinitionLogServiceTest.java
index 0e6263294d..d1bb66918f 100644
--- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TaskDefinitionLogServiceTest.java
+++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TaskDefinitionLogServiceTest.java
@@ -22,8 +22,6 @@ import static org.mockito.Mockito.when;
import org.apache.dolphinscheduler.api.service.impl.TaskDefinitionLogServiceImpl;
import org.apache.dolphinscheduler.dao.entity.WorkflowTaskRelationLog;
-import org.apache.dolphinscheduler.dao.mapper.WorkflowTaskRelationLogMapper;
-import org.apache.dolphinscheduler.dao.repository.TaskDefinitionLogDao;
import org.apache.dolphinscheduler.dao.repository.WorkflowTaskRelationLogDao;
import java.util.Arrays;
@@ -48,11 +46,6 @@ public class TaskDefinitionLogServiceTest {
@Mock
private WorkflowTaskRelationLogDao workflowTaskRelationLogDao;
- @Mock
- private TaskDefinitionLogDao taskDefinitionLogDao;
- @Mock
- private WorkflowTaskRelationLogMapper workflowTaskRelationLogMapper;
-
private List<WorkflowTaskRelationLog> getProcessTaskRelationList() {
WorkflowTaskRelationLog processTaskRelationLog1 = new WorkflowTaskRelationLog();
processTaskRelationLog1.setPreTaskCode(0L);
diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TaskDefinitionServiceImplTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TaskDefinitionServiceImplTest.java
index d3c6cdb541..00dc2650f2 100644
--- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TaskDefinitionServiceImplTest.java
+++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TaskDefinitionServiceImplTest.java
@@ -108,15 +108,9 @@ public class TaskDefinitionServiceImplTest {
@Mock
private WorkflowTaskRelationMapper workflowTaskRelationMapper;
- @Mock
- private WorkflowTaskRelationService workflowTaskRelationService;
-
@Mock
private WorkflowDefinitionMapper workflowDefinitionMapper;
- @Mock
- private WorkflowDefinitionService workflowDefinitionService;
-
@Mock
private WorkflowTaskRelationLogDao workflowTaskRelationLogDao;
diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TaskGroupServiceTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TaskGroupServiceTest.java
index 22de6c675a..91c45e93eb 100644
--- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TaskGroupServiceTest.java
+++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TaskGroupServiceTest.java
@@ -32,9 +32,6 @@ import org.apache.dolphinscheduler.dao.entity.TaskGroup;
import org.apache.dolphinscheduler.dao.entity.User;
import org.apache.dolphinscheduler.dao.mapper.ProjectMapper;
import org.apache.dolphinscheduler.dao.mapper.TaskGroupMapper;
-import org.apache.dolphinscheduler.dao.mapper.TaskGroupQueueMapper;
-import org.apache.dolphinscheduler.dao.mapper.UserMapper;
-import org.apache.dolphinscheduler.service.process.ProcessService;
import java.util.ArrayList;
import java.util.List;
@@ -67,21 +64,9 @@ public class TaskGroupServiceTest {
@InjectMocks
private TaskGroupServiceImpl taskGroupService;
- @Mock
- private TaskGroupQueueService taskGroupQueueService;
-
- @Mock
- private ProcessService processService;
-
@Mock
private TaskGroupMapper taskGroupMapper;
- @Mock
- private TaskGroupQueueMapper taskGroupQueueMapper;
-
- @Mock
- private UserMapper userMapper;
-
@Mock
private ProjectMapper projectMapper;
diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TaskInstanceServiceTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TaskInstanceServiceTest.java
index 5a8dabaaae..9663b065d1 100644
--- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TaskInstanceServiceTest.java
+++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TaskInstanceServiceTest.java
@@ -41,7 +41,6 @@ import org.apache.dolphinscheduler.dao.entity.TaskInstance;
import org.apache.dolphinscheduler.dao.entity.User;
import org.apache.dolphinscheduler.dao.entity.WorkflowInstance;
import org.apache.dolphinscheduler.dao.mapper.ProjectMapper;
-import org.apache.dolphinscheduler.dao.mapper.TaskDefinitionMapper;
import org.apache.dolphinscheduler.dao.mapper.TaskInstanceMapper;
import org.apache.dolphinscheduler.dao.repository.TaskInstanceDao;
import org.apache.dolphinscheduler.dao.repository.WorkflowInstanceDao;
@@ -93,11 +92,9 @@ public class TaskInstanceServiceTest {
@Mock
UsersService usersService;
- @Mock
- TaskDefinitionMapper taskDefinitionMapper;
-
@Mock
TaskInstanceDao taskInstanceDao;
+
@Mock
WorkflowInstanceDao workflowInstanceDao;
diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TenantServiceTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TenantServiceTest.java
index 58a36c6348..57746b3040 100644
--- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TenantServiceTest.java
+++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/TenantServiceTest.java
@@ -42,7 +42,6 @@ import org.apache.dolphinscheduler.dao.mapper.ScheduleMapper;
import org.apache.dolphinscheduler.dao.mapper.TenantMapper;
import org.apache.dolphinscheduler.dao.mapper.UserMapper;
import org.apache.dolphinscheduler.dao.mapper.WorkflowInstanceMapper;
-import org.apache.dolphinscheduler.plugin.storage.api.StorageOperator;
import org.apache.commons.collections4.CollectionUtils;
@@ -95,9 +94,6 @@ public class TenantServiceTest {
@Mock
private ResourcePermissionCheckService resourcePermissionCheckService;
- @Mock
- private StorageOperator storageOperator;
-
private static final String tenantCode = "hayden";
private static final String tenantDesc = "This is the tenant desc";
private static final String queue = "queue";
diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/UsersServiceTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/UsersServiceTest.java
index 12882e6893..26b66a670a 100644
--- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/UsersServiceTest.java
+++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/UsersServiceTest.java
@@ -38,15 +38,12 @@ import org.apache.dolphinscheduler.dao.entity.AlertGroup;
import org.apache.dolphinscheduler.dao.entity.Project;
import org.apache.dolphinscheduler.dao.entity.Tenant;
import org.apache.dolphinscheduler.dao.entity.User;
-import org.apache.dolphinscheduler.dao.mapper.AccessTokenMapper;
import org.apache.dolphinscheduler.dao.mapper.AlertGroupMapper;
import org.apache.dolphinscheduler.dao.mapper.DataSourceUserMapper;
import org.apache.dolphinscheduler.dao.mapper.K8sNamespaceUserMapper;
import org.apache.dolphinscheduler.dao.mapper.ProjectMapper;
-import org.apache.dolphinscheduler.dao.mapper.ProjectUserMapper;
import org.apache.dolphinscheduler.dao.mapper.TenantMapper;
import org.apache.dolphinscheduler.dao.mapper.UserMapper;
-import org.apache.dolphinscheduler.plugin.storage.api.StorageOperator;
import org.apache.commons.collections4.CollectionUtils;
@@ -85,9 +82,6 @@ public class UsersServiceTest {
@Mock
private UserMapper userMapper;
- @Mock
- private AccessTokenMapper accessTokenMapper;
-
@Mock
private TenantMapper tenantMapper;
@@ -97,24 +91,15 @@ public class UsersServiceTest {
@Mock
private DataSourceUserMapper datasourceUserMapper;
- @Mock
- private ProjectUserMapper projectUserMapper;
-
@Mock
private K8sNamespaceUserMapper k8sNamespaceUserMapper;
@Mock
private ProjectMapper projectMapper;
- @Mock
- private StorageOperator storageOperator;
-
@Mock
private ResourcePermissionCheckService resourcePermissionCheckService;
- @Mock
- private SessionService sessionService;
-
private String queueName = "UsersServiceTestQueue";
private static final Logger serviceLogger = LoggerFactory.getLogger(BaseServiceImpl.class);
diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/WorkflowDefinitionServiceTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/WorkflowDefinitionServiceTest.java
index f8c59bf7b3..e29860855d 100644
--- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/WorkflowDefinitionServiceTest.java
+++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/WorkflowDefinitionServiceTest.java
@@ -40,7 +40,6 @@ import org.apache.dolphinscheduler.api.exceptions.ServiceException;
import org.apache.dolphinscheduler.api.service.impl.ProjectServiceImpl;
import org.apache.dolphinscheduler.api.service.impl.WorkflowDefinitionServiceImpl;
import org.apache.dolphinscheduler.api.utils.PageInfo;
-import org.apache.dolphinscheduler.api.validator.GlobalParamsValidator;
import org.apache.dolphinscheduler.common.constants.Constants;
import org.apache.dolphinscheduler.common.enums.FailureStrategy;
import org.apache.dolphinscheduler.common.enums.Priority;
@@ -60,19 +59,14 @@ import org.apache.dolphinscheduler.dao.entity.User;
import org.apache.dolphinscheduler.dao.entity.UserWithWorkflowDefinitionCode;
import org.apache.dolphinscheduler.dao.entity.WorkflowDefinition;
import org.apache.dolphinscheduler.dao.entity.WorkflowTaskRelation;
-import org.apache.dolphinscheduler.dao.mapper.DataSourceMapper;
import org.apache.dolphinscheduler.dao.mapper.ProjectMapper;
import org.apache.dolphinscheduler.dao.mapper.ScheduleMapper;
-import org.apache.dolphinscheduler.dao.mapper.TaskDefinitionLogMapper;
-import org.apache.dolphinscheduler.dao.mapper.TaskDefinitionMapper;
import org.apache.dolphinscheduler.dao.mapper.UserMapper;
-import org.apache.dolphinscheduler.dao.mapper.WorkflowDefinitionLogMapper;
import org.apache.dolphinscheduler.dao.mapper.WorkflowDefinitionMapper;
import org.apache.dolphinscheduler.dao.mapper.WorkflowTaskRelationMapper;
import org.apache.dolphinscheduler.dao.model.PageListingResult;
import org.apache.dolphinscheduler.dao.repository.TaskDefinitionLogDao;
import org.apache.dolphinscheduler.dao.repository.WorkflowDefinitionDao;
-import org.apache.dolphinscheduler.dao.repository.WorkflowDefinitionLogDao;
import org.apache.dolphinscheduler.dao.utils.WorkerGroupUtils;
import org.apache.dolphinscheduler.plugin.task.api.model.ConditionDependentItem;
import org.apache.dolphinscheduler.plugin.task.api.model.ConditionDependentTaskModel;
@@ -143,12 +137,6 @@ public class WorkflowDefinitionServiceTest extends BaseServiceTestTool {
@Mock
private WorkflowDefinitionMapper workflowDefinitionMapper;
- @Mock
- private TaskDefinitionMapper taskDefinitionMapper;
-
- @Mock
- private WorkflowDefinitionLogMapper workflowDefinitionLogMapper;
-
@Mock
private WorkflowDefinitionDao workflowDefinitionDao;
@@ -173,33 +161,12 @@ public class WorkflowDefinitionServiceTest extends BaseServiceTestTool {
@Mock
private TaskDefinitionLogDao taskDefinitionLogDao;
- @Mock
- private WorkflowInstanceService workflowInstanceService;
-
- @Mock
- private DataSourceMapper dataSourceMapper;
-
@Mock
private WorkflowLineageService workflowLineageService;
- @Mock
- private TaskDefinitionService taskDefinitionService;
-
- @Mock
- private TaskDefinitionLogService taskDefinitionLogService;
-
- @Mock
- private WorkflowDefinitionLogDao workflowDefinitionLogDao;
-
- @Mock
- private TaskDefinitionLogMapper taskDefinitionLogMapper;
-
@Mock
private UserMapper userMapper;
- @Mock
- private GlobalParamsValidator globalParamsValidator;
-
protected User user;
protected Exception exception;
protected final static long projectCode = 1L;
@@ -207,10 +174,7 @@ public class WorkflowDefinitionServiceTest extends BaseServiceTestTool {
protected final static long processDefinitionCode = 11L;
protected final static String name = "testProcessDefinitionName";
protected final static String description = "this is a description";
- protected final static String releaseState = "ONLINE";
- protected final static int warningGroupId = 1;
protected final static int timeout = 60;
- protected final static String executionType = "PARALLEL";
@BeforeEach
public void before() {
diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/WorkflowInstanceServiceTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/WorkflowInstanceServiceTest.java
index 592231fffc..790a23955b 100644
--- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/WorkflowInstanceServiceTest.java
+++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/WorkflowInstanceServiceTest.java
@@ -42,7 +42,6 @@ import org.apache.dolphinscheduler.common.graph.DAG;
import org.apache.dolphinscheduler.common.model.TaskNodeRelation;
import org.apache.dolphinscheduler.common.utils.DateUtils;
import org.apache.dolphinscheduler.common.utils.JSONUtils;
-import org.apache.dolphinscheduler.dao.AlertDao;
import org.apache.dolphinscheduler.dao.entity.DependentResultTaskInstanceContext;
import org.apache.dolphinscheduler.dao.entity.Project;
import org.apache.dolphinscheduler.dao.entity.TaskDefinition;
@@ -56,9 +55,7 @@ import org.apache.dolphinscheduler.dao.entity.WorkflowDefinition;
import org.apache.dolphinscheduler.dao.entity.WorkflowDefinitionLog;
import org.apache.dolphinscheduler.dao.entity.WorkflowInstance;
import org.apache.dolphinscheduler.dao.mapper.ProjectMapper;
-import org.apache.dolphinscheduler.dao.mapper.ScheduleMapper;
import org.apache.dolphinscheduler.dao.mapper.TaskDefinitionMapper;
-import org.apache.dolphinscheduler.dao.mapper.TaskInstanceMapper;
import org.apache.dolphinscheduler.dao.mapper.TenantMapper;
import org.apache.dolphinscheduler.dao.mapper.WorkflowDefinitionLogMapper;
import org.apache.dolphinscheduler.dao.mapper.WorkflowDefinitionMapper;
@@ -66,7 +63,6 @@ import org.apache.dolphinscheduler.dao.mapper.WorkflowInstanceMapper;
import org.apache.dolphinscheduler.dao.repository.TaskInstanceContextDao;
import org.apache.dolphinscheduler.dao.repository.TaskInstanceDao;
import org.apache.dolphinscheduler.dao.repository.WorkflowInstanceDao;
-import org.apache.dolphinscheduler.dao.repository.WorkflowInstanceMapDao;
import org.apache.dolphinscheduler.extract.master.command.RunWorkflowCommandParam;
import org.apache.dolphinscheduler.plugin.task.api.TaskPluginManager;
import org.apache.dolphinscheduler.plugin.task.api.enums.DataType;
@@ -74,7 +70,6 @@ import org.apache.dolphinscheduler.plugin.task.api.enums.DependResult;
import org.apache.dolphinscheduler.plugin.task.api.enums.Direct;
import org.apache.dolphinscheduler.plugin.task.api.enums.TaskExecutionStatus;
import org.apache.dolphinscheduler.plugin.task.api.model.Property;
-import org.apache.dolphinscheduler.service.expand.CuringParamsService;
import org.apache.dolphinscheduler.service.model.TaskNode;
import org.apache.dolphinscheduler.service.process.ProcessService;
@@ -135,9 +130,6 @@ public class WorkflowInstanceServiceTest {
@Mock
WorkflowDefinitionService workflowDefinitionService;
- @Mock
- TaskInstanceMapper taskInstanceMapper;
-
@Mock
LoggerServiceImpl loggerService;
@@ -146,23 +138,9 @@ public class WorkflowInstanceServiceTest {
@Mock
TenantMapper tenantMapper;
- @Mock
- TaskDefinitionMapper taskDefinitionMapper;
@Mock
- ScheduleMapper scheduleMapper;
-
- @Mock
- CuringParamsService curingGlobalParamsService;
-
- @Mock
- AlertDao alertDao;
-
- @Mock
- private TaskInstanceService taskInstanceService;
-
- @Mock
- private WorkflowInstanceMapDao workflowInstanceMapDao;
+ TaskDefinitionMapper taskDefinitionMapper;
@Mock
private TaskInstanceContextDao taskInstanceContextDao;
diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/WorkflowTaskLineageServiceTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/WorkflowTaskLineageServiceTest.java
index c8be7bba69..78a18d94bc 100644
--- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/WorkflowTaskLineageServiceTest.java
+++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/WorkflowTaskLineageServiceTest.java
@@ -33,7 +33,6 @@ import org.apache.dolphinscheduler.dao.entity.WorkFlowRelationDetail;
import org.apache.dolphinscheduler.dao.entity.WorkflowDefinition;
import org.apache.dolphinscheduler.dao.entity.WorkflowTaskLineage;
import org.apache.dolphinscheduler.dao.mapper.ProjectMapper;
-import org.apache.dolphinscheduler.dao.mapper.TaskDefinitionLogMapper;
import org.apache.dolphinscheduler.dao.mapper.TaskDefinitionMapper;
import org.apache.dolphinscheduler.dao.mapper.WorkflowDefinitionMapper;
import org.apache.dolphinscheduler.dao.repository.WorkflowTaskLineageDao;
@@ -64,9 +63,6 @@ public class WorkflowTaskLineageServiceTest {
@Mock
private ProjectMapper projectMapper;
- @Mock
- private TaskDefinitionLogMapper taskDefinitionLogMapper;
-
@Mock
private TaskDefinitionMapper taskDefinitionMapper;
diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/WorkflowTaskRelationServiceTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/WorkflowTaskRelationServiceTest.java
deleted file mode 100644
index fc6ed64aa1..0000000000
--- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/WorkflowTaskRelationServiceTest.java
+++ /dev/null
@@ -1,622 +0,0 @@
-/*
- * 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.dolphinscheduler.api.service;
-
-import static org.mockito.ArgumentMatchers.isA;
-
-import org.apache.dolphinscheduler.api.dto.taskRelation.TaskRelationCreateRequest;
-import org.apache.dolphinscheduler.api.enums.Status;
-import org.apache.dolphinscheduler.api.exceptions.ServiceException;
-import org.apache.dolphinscheduler.api.service.impl.ProjectServiceImpl;
-import org.apache.dolphinscheduler.api.service.impl.WorkflowTaskRelationServiceImpl;
-import org.apache.dolphinscheduler.common.constants.Constants;
-import org.apache.dolphinscheduler.common.enums.UserType;
-import org.apache.dolphinscheduler.dao.entity.Project;
-import org.apache.dolphinscheduler.dao.entity.TaskDefinition;
-import org.apache.dolphinscheduler.dao.entity.TaskDefinitionLog;
-import org.apache.dolphinscheduler.dao.entity.User;
-import org.apache.dolphinscheduler.dao.entity.WorkflowDefinition;
-import org.apache.dolphinscheduler.dao.entity.WorkflowTaskRelation;
-import org.apache.dolphinscheduler.dao.entity.WorkflowTaskRelationLog;
-import org.apache.dolphinscheduler.dao.mapper.ProjectMapper;
-import org.apache.dolphinscheduler.dao.mapper.TaskDefinitionLogMapper;
-import org.apache.dolphinscheduler.dao.mapper.TaskDefinitionMapper;
-import org.apache.dolphinscheduler.dao.mapper.WorkflowDefinitionMapper;
-import org.apache.dolphinscheduler.dao.mapper.WorkflowTaskRelationLogMapper;
-import org.apache.dolphinscheduler.dao.mapper.WorkflowTaskRelationMapper;
-import org.apache.dolphinscheduler.service.process.ProcessService;
-
-import org.apache.commons.collections4.CollectionUtils;
-
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Set;
-import java.util.stream.Collectors;
-
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
-import org.mockito.InjectMocks;
-import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.mockito.junit.jupiter.MockitoExtension;
-import org.mockito.junit.jupiter.MockitoSettings;
-import org.mockito.quality.Strictness;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.google.common.collect.Lists;
-
-@ExtendWith(MockitoExtension.class)
-@MockitoSettings(strictness = Strictness.LENIENT)
-public class WorkflowTaskRelationServiceTest {
-
- @InjectMocks
- WorkflowTaskRelationServiceImpl workflowTaskRelationService;
-
- @Mock
- private ProjectMapper projectMapper;
-
- @Mock
- private ProjectServiceImpl projectService;
-
- @Mock
- private WorkflowTaskRelationMapper workflowTaskRelationMapper;
-
- @Mock
- private TaskDefinitionLogMapper taskDefinitionLogMapper;
-
- @Mock
- private WorkflowDefinitionMapper workflowDefinitionMapper;
-
- @Mock
- private TaskDefinitionMapper taskDefinitionMapper;
-
- @Mock
- private WorkflowTaskRelationLogMapper workflowTaskRelationLogMapper;
-
- @Mock
- private ProcessService processService;
-
- private static final long PROJECT_CODE = 1L;
- private static final long WORKFLOW_DEFINITION_CODE = 2L;
- private static final long UPSTREAM_TASK_CODE = 3L;
- private static final long DOWNSTREAM_TASK_CODE = 4L;
- protected User user;
- protected Exception exception;
-
- @BeforeEach
- public void before() {
- User loginUser = new User();
- loginUser.setId(1);
- loginUser.setTenantId(2);
- loginUser.setUserType(UserType.GENERAL_USER);
- loginUser.setUserName("admin");
- user = loginUser;
- }
-
- /**
- * get mock Project
- *
- * @param projectCode projectCode
- * @return Project
- */
- private Project getProject(long projectCode) {
- Project project = new Project();
- project.setCode(projectCode);
- project.setId(1);
- project.setName("project_test1");
- project.setUserId(1);
- return project;
- }
-
- private void putMsg(Map<String, Object> result, Status status, Object... statusParams) {
- result.put(Constants.STATUS, status);
- if (statusParams != null && statusParams.length > 0) {
- result.put(Constants.MSG, MessageFormat.format(status.getMsg(), statusParams));
- } else {
- result.put(Constants.MSG, status.getMsg());
- }
- }
-
- private TaskDefinitionLog buildTaskDefinitionLog(long projectCode, long code, int version) {
-
- TaskDefinitionLog taskDefinitionLog = new TaskDefinitionLog() {
-
- @Override
- public boolean equals(Object o) {
- if (this == o) {
- return true;
- }
- if (!(o instanceof TaskDefinitionLog)) {
- return false;
- }
- TaskDefinitionLog that = (TaskDefinitionLog) o;
- return getCode() == that.getCode()
- && getVersion() == that.getVersion()
- && getProjectCode() == that.getProjectCode();
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(getCode(), getVersion(), getProjectCode());
- }
- };
- taskDefinitionLog.setProjectCode(projectCode);
- taskDefinitionLog.setCode(code);
- taskDefinitionLog.setVersion(version);
- return taskDefinitionLog;
- }
-
- private TaskDefinition buildTaskDefinition(long projectCode, long code, int version) {
-
- TaskDefinition taskDefinition = new TaskDefinition() {
-
- @Override
- public boolean equals(Object o) {
- if (this == o) {
- return true;
- }
- if (!(o instanceof TaskDefinition)) {
- return false;
- }
- TaskDefinition that = (TaskDefinition) o;
- return getCode() == that.getCode()
- && getVersion() == that.getVersion()
- && getProjectCode() == that.getProjectCode();
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(getCode(), getVersion(), getProjectCode());
- }
- };
- taskDefinition.setProjectCode(projectCode);
- taskDefinition.setCode(code);
- taskDefinition.setVersion(version);
- return taskDefinition;
- }
-
- private List<WorkflowTaskRelation> getWorkflowTaskUpstreamRelationList(long projectCode, long taskCode) {
- WorkflowTaskRelation workflowTaskRelationUpstream0 = new WorkflowTaskRelation();
- workflowTaskRelationUpstream0.setPostTaskCode(taskCode);
- workflowTaskRelationUpstream0.setPreTaskVersion(1);
- workflowTaskRelationUpstream0.setProjectCode(projectCode);
- workflowTaskRelationUpstream0.setPreTaskCode(123);
- workflowTaskRelationUpstream0.setWorkflowDefinitionCode(123);
- WorkflowTaskRelation workflowTaskRelationUpstream1 = new WorkflowTaskRelation();
- workflowTaskRelationUpstream1.setPostTaskCode(taskCode);
- workflowTaskRelationUpstream1.setPreTaskVersion(1);
- workflowTaskRelationUpstream1.setPreTaskCode(123);
- workflowTaskRelationUpstream1.setWorkflowDefinitionCode(124);
- workflowTaskRelationUpstream1.setProjectCode(projectCode);
- WorkflowTaskRelation workflowTaskRelationUpstream2 = new WorkflowTaskRelation();
- workflowTaskRelationUpstream2.setPostTaskCode(taskCode);
- workflowTaskRelationUpstream2.setPreTaskVersion(2);
- workflowTaskRelationUpstream2.setPreTaskCode(123);
- workflowTaskRelationUpstream2.setWorkflowDefinitionCode(125);
- workflowTaskRelationUpstream2.setProjectCode(projectCode);
- List<WorkflowTaskRelation> workflowTaskRelationList = new ArrayList<>();
- workflowTaskRelationList.add(workflowTaskRelationUpstream0);
- workflowTaskRelationList.add(workflowTaskRelationUpstream1);
- workflowTaskRelationList.add(workflowTaskRelationUpstream2);
- return workflowTaskRelationList;
- }
-
- private List<WorkflowTaskRelation> getWorkflowTaskDownstreamRelationList(long projectCode, long taskCode) {
- WorkflowTaskRelation workflowTaskRelationDownstream0 = new WorkflowTaskRelation();
- workflowTaskRelationDownstream0.setPreTaskCode(taskCode);
- workflowTaskRelationDownstream0.setPostTaskCode(456);
- workflowTaskRelationDownstream0.setPostTaskVersion(1);
- workflowTaskRelationDownstream0.setProjectCode(projectCode);
- WorkflowTaskRelation workflowTaskRelationDownstream1 = new WorkflowTaskRelation();
- workflowTaskRelationDownstream1.setPreTaskCode(taskCode);
- workflowTaskRelationDownstream1.setPostTaskCode(456);
- workflowTaskRelationDownstream1.setPostTaskVersion(1);
- workflowTaskRelationDownstream1.setProjectCode(projectCode);
- WorkflowTaskRelation workflowTaskRelationDownstream2 = new WorkflowTaskRelation();
- workflowTaskRelationDownstream2.setPreTaskCode(taskCode);
- workflowTaskRelationDownstream2.setPostTaskCode(4567);
- workflowTaskRelationDownstream2.setPostTaskVersion(1);
- workflowTaskRelationDownstream2.setProjectCode(projectCode);
- List<WorkflowTaskRelation> workflowTaskRelationList = new ArrayList<>();
- workflowTaskRelationList.add(workflowTaskRelationDownstream0);
- workflowTaskRelationList.add(workflowTaskRelationDownstream1);
- workflowTaskRelationList.add(workflowTaskRelationDownstream2);
- return workflowTaskRelationList;
- }
-
- private WorkflowDefinition getWorkflowDefinition() {
- WorkflowDefinition workflowDefinition = new WorkflowDefinition();
- workflowDefinition.setId(1);
- workflowDefinition.setProjectCode(1L);
- workflowDefinition.setName("test_pdf");
- workflowDefinition.setDescription("");
- workflowDefinition.setCode(1L);
- workflowDefinition.setVersion(1);
- return workflowDefinition;
- }
-
- private TaskDefinition getTaskDefinition() {
- TaskDefinition taskDefinition = new TaskDefinition();
- taskDefinition.setProjectCode(1L);
- taskDefinition.setCode(1L);
- taskDefinition.setVersion(1);
- taskDefinition.setTaskType("SHELL");
- return taskDefinition;
- }
-
- @Test
- public void testCreateWorkflowTaskRelation() {
- long projectCode = 1L;
- long workflowDefinitionCode = 1L;
- long preTaskCode = 0L;
- long postTaskCode = 1L;
-
- Project project = getProject(projectCode);
- Mockito.when(projectMapper.queryByCode(projectCode)).thenReturn(project);
-
- Map<String, Object> result = new HashMap<>();
- putMsg(result, Status.SUCCESS, projectCode);
- Mockito.when(projectService.checkProjectAndAuth(user, project, projectCode, null)).thenReturn(result);
- Mockito.when(workflowDefinitionMapper.queryByCode(workflowDefinitionCode)).thenReturn(getWorkflowDefinition());
- Mockito.when(
- workflowTaskRelationMapper.queryByCode(projectCode, workflowDefinitionCode, preTaskCode, postTaskCode))
- .thenReturn(Lists.newArrayList());
- Mockito.when(taskDefinitionMapper.queryByCode(postTaskCode)).thenReturn(getTaskDefinition());
-
- List<WorkflowTaskRelation> workflowTaskRelationList = Lists.newArrayList();
- List<WorkflowTaskRelationLog> workflowTaskRelationLogList = Lists.newArrayList();
- WorkflowTaskRelation workflowTaskRelation = new WorkflowTaskRelation();
- workflowTaskRelation.setProjectCode(projectCode);
- workflowTaskRelation.setWorkflowDefinitionCode(workflowDefinitionCode);
- workflowTaskRelation.setPreTaskCode(0L);
- workflowTaskRelation.setPreTaskVersion(0);
- workflowTaskRelation.setPostTaskCode(postTaskCode);
- workflowTaskRelation.setPostTaskVersion(1);
- workflowTaskRelationList.add(workflowTaskRelation);
- workflowTaskRelationLogList.add(new WorkflowTaskRelationLog(workflowTaskRelation));
-
- Mockito.when(workflowTaskRelationMapper.batchInsert(workflowTaskRelationList)).thenReturn(1);
- Mockito.when(workflowTaskRelationLogMapper.batchInsert(workflowTaskRelationLogList)).thenReturn(1);
- Assertions.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
- }
-
- @Test
- public void testQueryDownstreamRelation() {
- long projectCode = 1L;
- long taskCode = 2L;
-
- Project project = getProject(projectCode);
- Mockito.when(projectMapper.queryByCode(projectCode)).thenReturn(project);
-
- Map<String, Object> result = new HashMap<>();
- putMsg(result, Status.SUCCESS, projectCode);
- Mockito.when(projectService.checkProjectAndAuth(user, project, projectCode, null)).thenReturn(result);
-
- List<WorkflowTaskRelation> workflowTaskRelationList =
- getWorkflowTaskDownstreamRelationList(projectCode, taskCode);
-
- Mockito.when(workflowTaskRelationMapper.queryDownstreamByCode(projectCode, taskCode))
- .thenReturn(workflowTaskRelationList);
-
- if (CollectionUtils.isNotEmpty(workflowTaskRelationList)) {
- Set<TaskDefinition> taskDefinitions = workflowTaskRelationList
- .stream()
- .map(workflowTaskRelation -> buildTaskDefinition(
- workflowTaskRelation.getProjectCode(),
- workflowTaskRelation.getPostTaskCode(),
- workflowTaskRelation.getPostTaskVersion()))
- .collect(Collectors.toSet());
-
- Set<TaskDefinitionLog> taskDefinitionLogSet = workflowTaskRelationList
- .stream()
- .map(workflowTaskRelation -> buildTaskDefinitionLog(
- workflowTaskRelation.getProjectCode(),
- workflowTaskRelation.getPostTaskCode(),
- workflowTaskRelation.getPostTaskVersion()))
- .collect(Collectors.toSet());
- List<TaskDefinitionLog> taskDefinitionLogList = taskDefinitionLogSet.stream().collect(Collectors.toList());
- Mockito.when(taskDefinitionLogMapper.queryByTaskDefinitions(taskDefinitions))
- .thenReturn(taskDefinitionLogList);
- }
- Map<String, Object> relation = workflowTaskRelationService
- .queryDownstreamRelation(user, projectCode, taskCode);
- Assertions.assertEquals(Status.SUCCESS, relation.get(Constants.STATUS));
- Assertions.assertEquals(2, ((List) relation.get("data")).size());
- }
-
- @Test
- public void testQueryUpstreamRelation() {
- long projectCode = 1L;
- long taskCode = 2L;
-
- Project project = getProject(projectCode);
- Mockito.when(projectMapper.queryByCode(projectCode)).thenReturn(project);
-
- Map<String, Object> result = new HashMap<>();
- putMsg(result, Status.SUCCESS, projectCode);
- Mockito.when(projectService.checkProjectAndAuth(user, project, projectCode, null)).thenReturn(result);
- List<WorkflowTaskRelation> workflowTaskRelationList =
- getWorkflowTaskUpstreamRelationList(projectCode, taskCode);
-
- Mockito.when(workflowTaskRelationMapper.queryUpstreamByCode(projectCode, taskCode))
- .thenReturn(workflowTaskRelationList);
-
- if (CollectionUtils.isNotEmpty(workflowTaskRelationList)) {
- Set<TaskDefinition> taskDefinitions = workflowTaskRelationList
- .stream()
- .map(workflowTaskRelation -> buildTaskDefinition(
- workflowTaskRelation.getProjectCode(),
- workflowTaskRelation.getPreTaskCode(),
- workflowTaskRelation.getPreTaskVersion()))
- .collect(Collectors.toSet());
-
- Set<TaskDefinitionLog> taskDefinitionLogSet = workflowTaskRelationList
- .stream()
- .map(workflowTaskRelation -> buildTaskDefinitionLog(
- workflowTaskRelation.getProjectCode(),
- workflowTaskRelation.getPreTaskCode(),
- workflowTaskRelation.getPreTaskVersion()))
- .collect(Collectors.toSet());
- List<TaskDefinitionLog> taskDefinitionLogList = taskDefinitionLogSet.stream().collect(Collectors.toList());
- Mockito.when(taskDefinitionLogMapper.queryByTaskDefinitions(taskDefinitions))
- .thenReturn(taskDefinitionLogList);
- }
- Map<String, Object> relation = workflowTaskRelationService
- .queryUpstreamRelation(user, projectCode, taskCode);
- Assertions.assertEquals(Status.SUCCESS, relation.get(Constants.STATUS));
- Assertions.assertEquals(2, ((List) relation.get("data")).size());
- }
-
- @Test
- public void testDeleteDownstreamRelation() {
- long projectCode = 1L;
- long taskCode = 2L;
- Project project = getProject(projectCode);
- Mockito.when(projectMapper.queryByCode(projectCode)).thenReturn(project);
-
- Map<String, Object> result = new HashMap<>();
- putMsg(result, Status.SUCCESS, projectCode);
- Mockito.when(projectService.checkProjectAndAuth(user, project, projectCode, null)).thenReturn(result);
- List<WorkflowTaskRelation> workflowTaskRelationList = new ArrayList<>();
- WorkflowTaskRelation workflowTaskRelation = new WorkflowTaskRelation();
- workflowTaskRelation.setProjectCode(projectCode);
- workflowTaskRelation.setWorkflowDefinitionCode(1L);
- workflowTaskRelation.setPreTaskCode(taskCode);
- workflowTaskRelation.setPostTaskCode(123L);
- workflowTaskRelationList.add(workflowTaskRelation);
- Mockito.when(workflowTaskRelationMapper.queryDownstreamByCode(projectCode, taskCode))
- .thenReturn(workflowTaskRelationList);
- WorkflowTaskRelationLog workflowTaskRelationLog = new WorkflowTaskRelationLog(workflowTaskRelation);
- Mockito.when(workflowTaskRelationMapper.deleteRelation(workflowTaskRelationLog)).thenReturn(1);
- Mockito.when(workflowTaskRelationLogMapper.deleteRelation(workflowTaskRelationLog)).thenReturn(1);
- WorkflowDefinition workflowDefinition = getWorkflowDefinition();
- Mockito.when(workflowDefinitionMapper.queryByCode(1L)).thenReturn(workflowDefinition);
- Mockito.when(processService.saveWorkflowDefine(user, workflowDefinition, Boolean.TRUE, Boolean.TRUE))
- .thenReturn(1);
- Map<String, Object> result1 =
- workflowTaskRelationService.deleteDownstreamRelation(user, projectCode, "123", taskCode);
- Assertions.assertEquals(Status.SUCCESS, result1.get(Constants.STATUS));
- }
-
- @Test
- public void testDeleteUpstreamRelation() {
- long projectCode = 1L;
- long taskCode = 2L;
- Project project = getProject(projectCode);
- Mockito.when(projectMapper.queryByCode(projectCode)).thenReturn(project);
-
- Map<String, Object> result = new HashMap<>();
- putMsg(result, Status.SUCCESS, projectCode);
- List<WorkflowTaskRelation> workflowTaskRelationList = Lists.newArrayList();
- WorkflowTaskRelation workflowTaskRelation = new WorkflowTaskRelation();
- workflowTaskRelation.setProjectCode(projectCode);
- workflowTaskRelation.setWorkflowDefinitionCode(1L);
- workflowTaskRelation.setPreTaskCode(0L);
- workflowTaskRelation.setPreTaskVersion(0);
- workflowTaskRelation.setPostTaskCode(taskCode);
- workflowTaskRelation.setPostTaskVersion(1);
- workflowTaskRelationList.add(workflowTaskRelation);
- Mockito.when(projectService.checkProjectAndAuth(user, project, projectCode, null)).thenReturn(result);
- Mockito.when(workflowTaskRelationMapper.queryUpstreamByCode(projectCode, taskCode))
- .thenReturn(workflowTaskRelationList);
- Mockito.when(workflowDefinitionMapper.queryByCode(1L)).thenReturn(getWorkflowDefinition());
- Mockito.when(workflowTaskRelationMapper.queryByWorkflowDefinitionCode(1L)).thenReturn(workflowTaskRelationList);
- List<WorkflowTaskRelationLog> relationLogs =
- workflowTaskRelationList.stream().map(WorkflowTaskRelationLog::new).collect(Collectors.toList());
- Mockito.when(processService.saveTaskRelation(user, 1L, 1L,
- 1, relationLogs, Lists.newArrayList(), Boolean.TRUE)).thenReturn(0);
- Assertions.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
- }
-
- @Test
- public void testDeleteTaskWorkflowRelation() {
- long projectCode = 1L;
- long taskCode = 1L;
- long workflowDefinitionCode = 1L;
- long preTaskCode = 4L;
- long postTaskCode = 5L;
- Project project = getProject(projectCode);
- Mockito.when(projectMapper.queryByCode(projectCode)).thenReturn(project);
-
- Map<String, Object> result = new HashMap<>();
- putMsg(result, Status.SUCCESS, projectCode);
- Mockito.when(projectService.checkProjectAndAuth(user, project, projectCode, null)).thenReturn(result);
- Mockito.when(
- workflowTaskRelationMapper.queryByCode(projectCode, workflowDefinitionCode, preTaskCode, postTaskCode))
- .thenReturn(Lists.newArrayList());
- Mockito.when(workflowDefinitionMapper.queryByCode(workflowDefinitionCode)).thenReturn(getWorkflowDefinition());
- Mockito.when(taskDefinitionMapper.queryByCode(taskCode)).thenReturn(getTaskDefinition());
- TaskDefinition taskDefinition = new TaskDefinition();
- taskDefinition.setTaskType("CONDITIONS");
- Mockito.when(taskDefinitionMapper.queryByCode(taskCode)).thenReturn(taskDefinition);
- List<WorkflowTaskRelation> workflowTaskRelationList = Lists.newArrayList();
- WorkflowTaskRelation workflowTaskRelation = new WorkflowTaskRelation();
- workflowTaskRelation.setProjectCode(projectCode);
- workflowTaskRelation.setWorkflowDefinitionCode(1L);
- workflowTaskRelation.setPreTaskCode(0L);
- workflowTaskRelation.setPreTaskVersion(0);
- workflowTaskRelation.setPostTaskCode(taskCode);
- workflowTaskRelation.setPostTaskVersion(1);
- workflowTaskRelationList.add(workflowTaskRelation);
- Mockito.when(workflowTaskRelationMapper.queryByWorkflowDefinitionCode(workflowDefinitionCode))
- .thenReturn(workflowTaskRelationList);
- List<WorkflowTaskRelationLog> relationLogs =
- workflowTaskRelationList.stream().map(WorkflowTaskRelationLog::new).collect(Collectors.toList());
-
- Mockito.when(processService.saveTaskRelation(user, 1L, 1L,
- 1, relationLogs, Lists.newArrayList(), Boolean.TRUE)).thenReturn(0);
- Assertions.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
- }
-
- @Test
- public void testDeleteEdge() {
- long projectCode = 1L;
- long workflowDefinitionCode = 3L;
- long preTaskCode = 0L;
- long postTaskCode = 5L;
- Project project = getProject(projectCode);
- Mockito.when(projectMapper.queryByCode(projectCode)).thenReturn(project);
-
- Map<String, Object> result = new HashMap<>();
- putMsg(result, Status.SUCCESS, projectCode);
- Mockito.when(projectService.checkProjectAndAuth(user, project, projectCode, null)).thenReturn(result);
- WorkflowTaskRelation workflowTaskRelation = new WorkflowTaskRelation();
- workflowTaskRelation.setProjectCode(projectCode);
- workflowTaskRelation.setWorkflowDefinitionCode(workflowDefinitionCode);
- workflowTaskRelation.setWorkflowDefinitionVersion(1);
- workflowTaskRelation.setPreTaskCode(preTaskCode);
- workflowTaskRelation.setPostTaskCode(postTaskCode);
- WorkflowTaskRelationLog processTaskRelationLog = new WorkflowTaskRelationLog(workflowTaskRelation);
- processTaskRelationLog.setOperator(user.getId());
- List<WorkflowTaskRelation> workflowTaskRelationList = new ArrayList<>();
- workflowTaskRelationList.add(workflowTaskRelation);
- Mockito.when(projectService.checkProjectAndAuth(user, project, projectCode, null)).thenReturn(result);
- Mockito.when(workflowTaskRelationMapper.queryByWorkflowDefinitionCode(1L)).thenReturn(workflowTaskRelationList);
- List<WorkflowTaskRelationLog> relationLogs =
- workflowTaskRelationList.stream().map(WorkflowTaskRelationLog::new).collect(Collectors.toList());
- Mockito.when(processService.saveTaskRelation(user, 1L, 1L,
- 1, relationLogs, Lists.newArrayList(), Boolean.TRUE)).thenReturn(0);
- Assertions.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
- }
-
- @Test
- public void testCreateWorkflowTaskRelationV2() {
- TaskRelationCreateRequest taskRelationCreateRequest = new TaskRelationCreateRequest();
- taskRelationCreateRequest.setWorkflowCode(WORKFLOW_DEFINITION_CODE);
-
- // error workflow definition not exists
- exception = Assertions.assertThrows(ServiceException.class,
- () -> workflowTaskRelationService.createWorkflowTaskRelationV2(user, taskRelationCreateRequest));
- Assertions.assertEquals(Status.WORKFLOW_DEFINITION_NOT_EXIST.getCode(),
- ((ServiceException) exception).getCode());
-
- // error project without permissions
- Mockito.when(workflowDefinitionMapper.queryByCode(WORKFLOW_DEFINITION_CODE))
- .thenReturn(getWorkflowDefinition());
- Mockito.when(projectMapper.queryByCode(PROJECT_CODE)).thenReturn(getProject(PROJECT_CODE));
- Mockito.doThrow(new ServiceException(Status.USER_NO_OPERATION_PROJECT_PERM)).when(projectService)
- .checkProjectAndAuthThrowException(user, getProject(PROJECT_CODE), null);
- exception = Assertions.assertThrows(ServiceException.class,
- () -> workflowTaskRelationService.createWorkflowTaskRelationV2(user, taskRelationCreateRequest));
- Assertions.assertEquals(Status.USER_NO_OPERATION_PROJECT_PERM.getCode(),
- ((ServiceException) exception).getCode());
-
- // error insert workflow task relation
- Mockito.doNothing().when(projectService).checkProjectAndAuthThrowException(user, getProject(PROJECT_CODE),
- null);
- Mockito.when(workflowTaskRelationMapper.insert(isA(WorkflowTaskRelation.class))).thenReturn(0);
- Mockito.when(taskDefinitionMapper.queryByCode(isA(Long.class))).thenReturn(getTaskDefinition());
- exception = Assertions.assertThrows(ServiceException.class,
- () -> workflowTaskRelationService.createWorkflowTaskRelationV2(user, taskRelationCreateRequest));
- Assertions.assertEquals(Status.CREATE_WORKFLOW_TASK_RELATION_ERROR.getCode(),
- ((ServiceException) exception).getCode());
-
- // error insert workflow task relation log
- Mockito.when(workflowTaskRelationMapper.insert(isA(WorkflowTaskRelation.class))).thenReturn(1);
- Mockito.when(workflowTaskRelationLogMapper.insert(isA(WorkflowTaskRelationLog.class))).thenReturn(0);
- exception = Assertions.assertThrows(ServiceException.class,
- () -> workflowTaskRelationService.createWorkflowTaskRelationV2(user, taskRelationCreateRequest));
- Assertions.assertEquals(Status.CREATE_WORKFLOW_TASK_RELATION_LOG_ERROR.getCode(),
- ((ServiceException) exception).getCode());
-
- // success
- Mockito.when(workflowTaskRelationLogMapper.insert(isA(WorkflowTaskRelationLog.class))).thenReturn(1);
- Assertions.assertDoesNotThrow(
- () -> workflowTaskRelationService.createWorkflowTaskRelationV2(user, taskRelationCreateRequest));
- }
-
- @Test
- public void testDeleteTaskWorkflowRelationV2() {
- TaskRelationCreateRequest taskRelationCreateRequest = new TaskRelationCreateRequest();
- taskRelationCreateRequest.setWorkflowCode(WORKFLOW_DEFINITION_CODE);
-
- // error task relation size
- Mockito.when(
- workflowTaskRelationMapper.filterWorkflowTaskRelation(isA(Page.class), isA(WorkflowTaskRelation.class)))
- .thenReturn(getMultiWorkflowTaskRelations());
- exception = Assertions.assertThrows(ServiceException.class, () -> workflowTaskRelationService
- .deleteTaskWorkflowRelationV2(user, UPSTREAM_TASK_CODE, DOWNSTREAM_TASK_CODE));
- Assertions.assertEquals(Status.WORKFLOW_TASK_RELATION_NOT_EXPECT.getCode(),
- ((ServiceException) exception).getCode());
-
- // success
- Mockito.when(
- workflowTaskRelationMapper.filterWorkflowTaskRelation(isA(Page.class), isA(WorkflowTaskRelation.class)))
- .thenReturn(getOneWorkflowTaskRelation());
- Assertions.assertDoesNotThrow(() -> workflowTaskRelationService.deleteTaskWorkflowRelationV2(user,
- UPSTREAM_TASK_CODE, DOWNSTREAM_TASK_CODE));
- }
-
- private IPage<WorkflowTaskRelation> getOneWorkflowTaskRelation() {
- IPage<WorkflowTaskRelation> workflowTaskRelationIPage = new Page<>();
- WorkflowTaskRelation workflowTaskRelation = new WorkflowTaskRelation();
- workflowTaskRelation.setWorkflowDefinitionCode(WORKFLOW_DEFINITION_CODE);
- workflowTaskRelation.setPreTaskCode(UPSTREAM_TASK_CODE);
- workflowTaskRelation.setPostTaskCode(DOWNSTREAM_TASK_CODE);
- workflowTaskRelationIPage.setRecords(Collections.singletonList(workflowTaskRelation));
- return workflowTaskRelationIPage;
- }
-
- private IPage<WorkflowTaskRelation> getMultiWorkflowTaskRelations() {
- IPage<WorkflowTaskRelation> workflowTaskRelationIPage = new Page<>();
- List<WorkflowTaskRelation> workflowTaskRelations = new ArrayList<>();
-
- WorkflowTaskRelation workflowTaskRelation0 = new WorkflowTaskRelation();
- workflowTaskRelation0.setWorkflowDefinitionCode(WORKFLOW_DEFINITION_CODE);
- workflowTaskRelation0.setPreTaskCode(UPSTREAM_TASK_CODE);
- workflowTaskRelation0.setPostTaskCode(DOWNSTREAM_TASK_CODE);
- workflowTaskRelations.add(workflowTaskRelation0);
-
- WorkflowTaskRelation workflowTaskRelation1 = new WorkflowTaskRelation();
- workflowTaskRelation1.setWorkflowDefinitionCode(WORKFLOW_DEFINITION_CODE);
- workflowTaskRelation1.setPreTaskCode(UPSTREAM_TASK_CODE);
- workflowTaskRelation1.setPostTaskCode(DOWNSTREAM_TASK_CODE);
- workflowTaskRelations.add(workflowTaskRelation1);
-
- workflowTaskRelationIPage.setRecords(workflowTaskRelations);
- return workflowTaskRelationIPage;
- }
-}
diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/impl/ClusterServiceTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/impl/ClusterServiceTest.java
index addc8626a7..e445869bf7 100644
--- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/impl/ClusterServiceTest.java
+++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/impl/ClusterServiceTest.java
@@ -24,7 +24,6 @@ import static org.mockito.Mockito.when;
import org.apache.dolphinscheduler.api.dto.ClusterDto;
import org.apache.dolphinscheduler.api.enums.Status;
-import org.apache.dolphinscheduler.api.k8s.K8sManager;
import org.apache.dolphinscheduler.api.utils.PageInfo;
import org.apache.dolphinscheduler.common.enums.UserType;
import org.apache.dolphinscheduler.dao.entity.Cluster;
@@ -70,9 +69,6 @@ public class ClusterServiceTest {
@Mock
private K8sNamespaceMapper k8sNamespaceMapper;
- @Mock
- private K8sManager k8sManager;
-
public static final String testUserName = "clusterServerTest";
public static final String clusterName = "Env1";
diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/utils/FileUtilsTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/utils/FileUtilsTest.java
deleted file mode 100644
index 59b88625c4..0000000000
--- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/utils/FileUtilsTest.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * 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.dolphinscheduler.api.utils;
-
-import org.apache.http.entity.ContentType;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.nio.charset.Charset;
-import java.nio.file.Path;
-
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.io.TempDir;
-import org.mockito.Mockito;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.core.io.Resource;
-import org.springframework.mock.web.MockMultipartFile;
-import org.springframework.web.multipart.MultipartFile;
-
-public class FileUtilsTest {
-
- private static final Logger logger = LoggerFactory.getLogger(FileUtilsTest.class);
-
- @TempDir
- public Path folder;
-
- private String rootPath;
-
- @BeforeEach
- public void setUp() throws Exception {
- rootPath = folder.toString();
- }
-
- /**
- * Use mock to test copyFile
- * @throws IOException
- */
- @Test
- public void testCopyFile() throws IOException {
-
- // Define dest file path
- String src = rootPath + System.getProperty("file.separator") + "src.txt";
- String destFilename = rootPath + System.getProperty("file.separator") + "data.txt";
- logger.info("destFilename: " + destFilename);
-
- // Define InputStream for MultipartFile
- String data = "data text";
- org.apache.commons.io.FileUtils.writeStringToFile(new File(src), data);
-
- // Use Mockito to mock MultipartFile
- MultipartFile file = Mockito.mock(MultipartFile.class, Mockito.RETURNS_DEEP_STUBS);
- Mockito.when(file.getInputStream()).thenReturn(new FileInputStream(src));
-
- // Invoke copyFile
- FileUtils.copyInputStreamToFile(file, destFilename);
-
- // Test file exists
- File destFile = new File(destFilename);
- Assertions.assertTrue(destFile.exists());
-
- }
-
- @Test
- public void testFile2Resource() throws IOException {
-
- // Define dest file path
- String destFilename = rootPath + System.getProperty("file.separator") + "resource.txt";
- logger.info("destFilename: " + destFilename);
-
- // Define test resource
- File file = new File(destFilename);
- org.apache.commons.io.FileUtils.writeStringToFile(file, "test data", Charset.defaultCharset());
-
- // Invoke file2Resource and test not null
- Resource resource = FileUtils.file2Resource(file.toString());
- Assertions.assertNotNull(resource);
-
- // Invoke file2Resource and test null
- Resource resource1 = FileUtils.file2Resource(file + "abc");
- Assertions.assertNull(resource1);
-
- }
-
- @Test
- public void testFile2String() throws IOException {
- String content = "123";
- org.apache.commons.io.FileUtils.writeStringToFile(new File("/tmp/task.json"), content,
- Charset.defaultCharset());
-
- File file = new File("/tmp/task.json");
- FileInputStream fileInputStream = new FileInputStream("/tmp/task.json");
- MultipartFile multipartFile = new MockMultipartFile(file.getName(), file.getName(),
- ContentType.APPLICATION_OCTET_STREAM.toString(), fileInputStream);
-
- String resultStr = FileUtils.file2String(multipartFile);
-
- Assertions.assertEquals(content, resultStr);
-
- boolean delete = file.delete();
-
- Assertions.assertTrue(delete);
- }
-}