This is an automated email from the ASF dual-hosted git repository.

wenhemin pushed a commit to branch json_split_two
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git


The following commit(s) were added to refs/heads/json_split_two by this push:
     new c5bc4fc  [Fix-5519] The executor api, projectName change to 
projectCode (#5863)
c5bc4fc is described below

commit c5bc4fc48e67d3e8e1b40157403c8c4017ffae57
Author: wen-hemin <[email protected]>
AuthorDate: Tue Jul 20 17:22:10 2021 +0800

    [Fix-5519] The executor api, projectName change to projectCode (#5863)
    
    * fix: the executor api, projectName change to projectCode
    
    * fix checkstyle
    
    * fix: when process definition is null, return error message
    
    Co-authored-by: wen-hemin <[email protected]>
---
 .../api/controller/ExecutorController.java         |  57 ++--
 .../api/service/ExecutorService.java               |  16 +-
 .../api/service/impl/ExecutorServiceImpl.java      |  50 ++--
 .../api/controller/ExecutorControllerTest.java     |  42 ++-
 .../api/service/ExecutorService2Test.java          | 309 --------------------
 .../api/service/ExecutorServiceTest.java           | 315 +++++++++++++++++++--
 .../pages/definition/pages/list/_source/list.vue   |   2 +-
 .../src/js/conf/home/store/dag/actions.js          |   6 +-
 8 files changed, 385 insertions(+), 412 deletions(-)

diff --git 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/ExecutorController.java
 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/ExecutorController.java
index 24e9242..0a5c8a1 100644
--- 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/ExecutorController.java
+++ 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/ExecutorController.java
@@ -60,7 +60,7 @@ import springfox.documentation.annotations.ApiIgnore;
  */
 @Api(tags = "EXECUTOR_TAG")
 @RestController
-@RequestMapping("projects/{projectName}/executors")
+@RequestMapping("projects/{projectCode}/executors")
 public class ExecutorController extends BaseController {
 
     @Autowired
@@ -70,8 +70,8 @@ public class ExecutorController extends BaseController {
      * execute process instance
      *
      * @param loginUser login user
-     * @param projectName project name
-     * @param processDefinitionId process definition id
+     * @param projectCode project code
+     * @param processDefinitionCode process definition code
      * @param scheduleTime schedule time
      * @param failureStrategy failure strategy
      * @param startNodeList start nodes list
@@ -87,26 +87,26 @@ public class ExecutorController extends BaseController {
      */
     @ApiOperation(value = "startProcessInstance", notes = 
"RUN_PROCESS_INSTANCE_NOTES")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "processDefinitionId", value = 
"PROCESS_DEFINITION_ID", required = true, dataType = "Int", example = "100"),
-            @ApiImplicitParam(name = "scheduleTime", value = "SCHEDULE_TIME", 
required = true, dataType = "String"),
-            @ApiImplicitParam(name = "failureStrategy", value = 
"FAILURE_STRATEGY", required = true, dataType = "FailureStrategy"),
-            @ApiImplicitParam(name = "startNodeList", value = 
"START_NODE_LIST", dataType = "String"),
-            @ApiImplicitParam(name = "taskDependType", value = 
"TASK_DEPEND_TYPE", dataType = "TaskDependType"),
-            @ApiImplicitParam(name = "execType", value = "COMMAND_TYPE", 
dataType = "CommandType"),
-            @ApiImplicitParam(name = "warningType", value = "WARNING_TYPE", 
required = true, dataType = "WarningType"),
-            @ApiImplicitParam(name = "warningGroupId", value = 
"WARNING_GROUP_ID", required = true, dataType = "Int", example = "100"),
-            @ApiImplicitParam(name = "runMode", value = "RUN_MODE", dataType = 
"RunMode"),
-            @ApiImplicitParam(name = "processInstancePriority", value = 
"PROCESS_INSTANCE_PRIORITY", required = true, dataType = "Priority"),
-            @ApiImplicitParam(name = "workerGroup", value = "WORKER_GROUP", 
dataType = "String", example = "default"),
-            @ApiImplicitParam(name = "timeout", value = "TIMEOUT", dataType = 
"Int", example = "100"),
+        @ApiImplicitParam(name = "processDefinitionCode", value = 
"PROCESS_DEFINITION_CODE", required = true, dataType = "Long", example = "100"),
+        @ApiImplicitParam(name = "scheduleTime", value = "SCHEDULE_TIME", 
required = true, dataType = "String"),
+        @ApiImplicitParam(name = "failureStrategy", value = 
"FAILURE_STRATEGY", required = true, dataType = "FailureStrategy"),
+        @ApiImplicitParam(name = "startNodeList", value = "START_NODE_LIST", 
dataType = "String"),
+        @ApiImplicitParam(name = "taskDependType", value = "TASK_DEPEND_TYPE", 
dataType = "TaskDependType"),
+        @ApiImplicitParam(name = "execType", value = "COMMAND_TYPE", dataType 
= "CommandType"),
+        @ApiImplicitParam(name = "warningType", value = "WARNING_TYPE", 
required = true, dataType = "WarningType"),
+        @ApiImplicitParam(name = "warningGroupId", value = "WARNING_GROUP_ID", 
required = true, dataType = "Int", example = "100"),
+        @ApiImplicitParam(name = "runMode", value = "RUN_MODE", dataType = 
"RunMode"),
+        @ApiImplicitParam(name = "processInstancePriority", value = 
"PROCESS_INSTANCE_PRIORITY", required = true, dataType = "Priority"),
+        @ApiImplicitParam(name = "workerGroup", value = "WORKER_GROUP", 
dataType = "String", example = "default"),
+        @ApiImplicitParam(name = "timeout", value = "TIMEOUT", dataType = 
"Int", example = "100"),
     })
     @PostMapping(value = "start-process-instance")
     @ResponseStatus(HttpStatus.OK)
     @ApiException(START_PROCESS_INSTANCE_ERROR)
     @AccessLogAnnotation(ignoreRequestArgs = "loginUser")
     public Result startProcessInstance(@ApiIgnore @RequestAttribute(value = 
Constants.SESSION_USER) User loginUser,
-                                       @ApiParam(name = "projectName", value = 
"PROJECT_NAME", required = true) @PathVariable String projectName,
-                                       @RequestParam(value = 
"processDefinitionId") int processDefinitionId,
+                                       @ApiParam(name = "projectCode", value = 
"PROJECT_CODE", required = true) @PathVariable long projectCode,
+                                       @RequestParam(value = 
"processDefinitionCode") int processDefinitionCode,
                                        @RequestParam(value = "scheduleTime", 
required = false) String scheduleTime,
                                        @RequestParam(value = 
"failureStrategy", required = true) FailureStrategy failureStrategy,
                                        @RequestParam(value = "startNodeList", 
required = false) String startNodeList,
@@ -127,58 +127,55 @@ public class ExecutorController extends BaseController {
         if (startParams != null) {
             startParamMap = JSONUtils.toMap(startParams);
         }
-        Map<String, Object> result = 
execService.execProcessInstance(loginUser, projectName, processDefinitionId, 
scheduleTime, execType, failureStrategy,
+        Map<String, Object> result = 
execService.execProcessInstance(loginUser, projectCode, processDefinitionCode, 
scheduleTime, execType, failureStrategy,
                 startNodeList, taskDependType, warningType,
                 warningGroupId, runMode, processInstancePriority, workerGroup, 
timeout, startParamMap);
         return returnDataList(result);
     }
 
-
     /**
      * do action to process instance:pause, stop, repeat, recover from pause, 
recover from stop
      *
      * @param loginUser login user
-     * @param projectName project name
+     * @param projectCode project code
      * @param processInstanceId process instance id
      * @param executeType execute type
      * @return execute result code
      */
     @ApiOperation(value = "execute", notes = 
"EXECUTE_ACTION_TO_PROCESS_INSTANCE_NOTES")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "processInstanceId", value = 
"PROCESS_INSTANCE_ID", required = true, dataType = "Int", example = "100"),
-            @ApiImplicitParam(name = "executeType", value = "EXECUTE_TYPE", 
required = true, dataType = "ExecuteType")
+        @ApiImplicitParam(name = "processInstanceId", value = 
"PROCESS_INSTANCE_ID", required = true, dataType = "Int", example = "100"),
+        @ApiImplicitParam(name = "executeType", value = "EXECUTE_TYPE", 
required = true, dataType = "ExecuteType")
     })
     @PostMapping(value = "/execute")
     @ResponseStatus(HttpStatus.OK)
     @ApiException(EXECUTE_PROCESS_INSTANCE_ERROR)
     @AccessLogAnnotation(ignoreRequestArgs = "loginUser")
     public Result execute(@ApiIgnore @RequestAttribute(value = 
Constants.SESSION_USER) User loginUser,
-                          @ApiParam(name = "projectName", value = 
"PROJECT_NAME", required = true) @PathVariable String projectName,
+                          @ApiParam(name = "projectCode", value = 
"PROJECT_CODE", required = true) @PathVariable long projectCode,
                           @RequestParam("processInstanceId") Integer 
processInstanceId,
                           @RequestParam("executeType") ExecuteType executeType
     ) {
-        Map<String, Object> result = execService.execute(loginUser, 
projectName, processInstanceId, executeType);
+        Map<String, Object> result = execService.execute(loginUser, 
projectCode, processInstanceId, executeType);
         return returnDataList(result);
     }
 
     /**
      * check process definition and all of the son process definitions is on 
line.
      *
-     * @param loginUser login user
-     * @param processDefinitionId process definition id
+     * @param processDefinitionCode process definition code
      * @return check result code
      */
     @ApiOperation(value = "startCheckProcessDefinition", notes = 
"START_CHECK_PROCESS_DEFINITION_NOTES")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "processDefinitionId", value = 
"PROCESS_DEFINITION_ID", required = true, dataType = "Int", example = "100")
+        @ApiImplicitParam(name = "processDefinitionCode", value = 
"PROCESS_DEFINITION_CODE", required = true, dataType = "Long", example = "100")
     })
     @PostMapping(value = "/start-check")
     @ResponseStatus(HttpStatus.OK)
     @ApiException(CHECK_PROCESS_DEFINITION_ERROR)
     @AccessLogAnnotation(ignoreRequestArgs = "loginUser")
-    public Result startCheckProcessDefinition(@ApiIgnore 
@RequestAttribute(value = Constants.SESSION_USER) User loginUser,
-                                              @RequestParam(value = 
"processDefinitionId") int processDefinitionId) {
-        Map<String, Object> result = 
execService.startCheckByProcessDefinedId(processDefinitionId);
+    public Result startCheckProcessDefinition(@RequestParam(value = 
"processDefinitionCode") int processDefinitionCode) {
+        Map<String, Object> result = 
execService.startCheckByProcessDefinedCode(processDefinitionCode);
         return returnDataList(result);
     }
 }
diff --git 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/ExecutorService.java
 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/ExecutorService.java
index 72a0089..ac850ff 100644
--- 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/ExecutorService.java
+++ 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/ExecutorService.java
@@ -38,8 +38,8 @@ public interface ExecutorService {
      * execute process instance
      *
      * @param loginUser login user
-     * @param projectName project name
-     * @param processDefinitionId process Definition Id
+     * @param projectCode project code
+     * @param processDefinitionCode process definition code
      * @param cronTime cron time
      * @param commandType command type
      * @param failureStrategy failuer strategy
@@ -54,8 +54,8 @@ public interface ExecutorService {
      * @param startParams the global param values which pass to new process 
instance
      * @return execute process instance code
      */
-    Map<String, Object> execProcessInstance(User loginUser, String projectName,
-                                            int processDefinitionId, String 
cronTime, CommandType commandType,
+    Map<String, Object> execProcessInstance(User loginUser, long projectCode,
+                                            long processDefinitionCode, String 
cronTime, CommandType commandType,
                                             FailureStrategy failureStrategy, 
String startNodeList,
                                             TaskDependType taskDependType, 
WarningType warningType, int warningGroupId,
                                             RunMode runMode,
@@ -75,18 +75,18 @@ public interface ExecutorService {
      * do action to process instance:pause, stop, repeat, recover from pause, 
recover from stop
      *
      * @param loginUser login user
-     * @param projectName project name
+     * @param projectCode project code
      * @param processInstanceId process instance id
      * @param executeType execute type
      * @return execute result code
      */
-    Map<String, Object> execute(User loginUser, String projectName, Integer 
processInstanceId, ExecuteType executeType);
+    Map<String, Object> execute(User loginUser, long projectCode, Integer 
processInstanceId, ExecuteType executeType);
 
     /**
      * check if sub processes are offline before starting process definition
      *
-     * @param processDefineId process definition id
+     * @param processDefinitionCode process definition code
      * @return check result code
      */
-    Map<String, Object> startCheckByProcessDefinedId(int processDefineId);
+    Map<String, Object> startCheckByProcessDefinedCode(long 
processDefinitionCode);
 }
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 16213be..1d944d0 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
@@ -102,8 +102,8 @@ public class ExecutorServiceImpl extends BaseServiceImpl 
implements ExecutorServ
      * execute process instance
      *
      * @param loginUser login user
-     * @param projectName project name
-     * @param processDefinitionId process Definition Id
+     * @param projectCode project code
+     * @param processDefinitionCode process definition code
      * @param cronTime cron time
      * @param commandType command type
      * @param failureStrategy failuer strategy
@@ -119,8 +119,8 @@ public class ExecutorServiceImpl extends BaseServiceImpl 
implements ExecutorServ
      * @return execute process instance code
      */
     @Override
-    public Map<String, Object> execProcessInstance(User loginUser, String 
projectName,
-                                                   int processDefinitionId, 
String cronTime, CommandType commandType,
+    public Map<String, Object> execProcessInstance(User loginUser, long 
projectCode,
+                                                   long processDefinitionCode, 
String cronTime, CommandType commandType,
                                                    FailureStrategy 
failureStrategy, String startNodeList,
                                                    TaskDependType 
taskDependType, WarningType warningType, int warningGroupId,
                                                    RunMode runMode,
@@ -132,15 +132,15 @@ public class ExecutorServiceImpl extends BaseServiceImpl 
implements ExecutorServ
             putMsg(result, Status.TASK_TIMEOUT_PARAMS_ERROR);
             return result;
         }
-        Project project = projectMapper.queryByName(projectName);
-        Map<String, Object> checkResultAndAuth = checkResultAndAuth(loginUser, 
projectName, project);
+        Project project = projectMapper.queryByCode(projectCode);
+        Map<String, Object> checkResultAndAuth = checkResultAndAuth(loginUser, 
project.getName(), project);
         if (checkResultAndAuth != null) {
             return checkResultAndAuth;
         }
 
         // check process define release state
-        ProcessDefinition processDefinition = 
processDefinitionMapper.selectById(processDefinitionId);
-        result = checkProcessDefinitionValid(processDefinition, 
processDefinitionId);
+        ProcessDefinition processDefinition = 
processDefinitionMapper.queryByCode(processDefinitionCode);
+        result = checkProcessDefinitionValid(processDefinition, 
processDefinitionCode);
         if (result.get(Constants.STATUS) != Status.SUCCESS) {
             return result;
         }
@@ -160,7 +160,7 @@ public class ExecutorServiceImpl extends BaseServiceImpl 
implements ExecutorServ
         /**
          * create command
          */
-        int create = this.createCommand(commandType, processDefinitionId,
+        int create = this.createCommand(commandType, processDefinition.getId(),
                 taskDependType, failureStrategy, startNodeList, cronTime, 
warningType, loginUser.getId(),
                 warningGroupId, runMode, processInstancePriority, workerGroup, 
startParams);
 
@@ -218,17 +218,17 @@ public class ExecutorServiceImpl extends BaseServiceImpl 
implements ExecutorServ
      * do action to process instance:pause, stop, repeat, recover from pause, 
recover from stop
      *
      * @param loginUser login user
-     * @param projectName project name
+     * @param projectCode project code
      * @param processInstanceId process instance id
      * @param executeType execute type
      * @return execute result code
      */
     @Override
-    public Map<String, Object> execute(User loginUser, String projectName, 
Integer processInstanceId, ExecuteType executeType) {
+    public Map<String, Object> execute(User loginUser, long projectCode, 
Integer processInstanceId, ExecuteType executeType) {
         Map<String, Object> result = new HashMap<>();
-        Project project = projectMapper.queryByName(projectName);
+        Project project = projectMapper.queryByCode(projectCode);
 
-        Map<String, Object> checkResult = checkResultAndAuth(loginUser, 
projectName, project);
+        Map<String, Object> checkResult = checkResultAndAuth(loginUser, 
project.getName(), project);
         if (checkResult != null) {
             return checkResult;
         }
@@ -433,31 +433,35 @@ public class ExecutorServiceImpl extends BaseServiceImpl 
implements ExecutorServ
     /**
      * check if sub processes are offline before starting process definition
      *
-     * @param processDefineId process definition id
+     * @param processDefinitionCode process definition code
      * @return check result code
      */
     @Override
-    public Map<String, Object> startCheckByProcessDefinedId(int 
processDefineId) {
+    public Map<String, Object> startCheckByProcessDefinedCode(long 
processDefinitionCode) {
         Map<String, Object> result = new HashMap<>();
 
-        if (processDefineId == 0) {
-            logger.error("process definition id is null");
-            putMsg(result, Status.REQUEST_PARAMS_NOT_VALID_ERROR, "process 
definition id");
+        ProcessDefinition processDefinition = 
processDefinitionMapper.queryByCode(processDefinitionCode);
+
+        if (processDefinition == null) {
+            logger.error("process definition is not found");
+            putMsg(result, Status.REQUEST_PARAMS_NOT_VALID_ERROR, 
"processDefinitionCode");
+            return result;
         }
+
         List<Integer> ids = new ArrayList<>();
-        processService.recurseFindSubProcessId(processDefineId, ids);
+        processService.recurseFindSubProcessId(processDefinition.getId(), ids);
         Integer[] idArray = ids.toArray(new Integer[ids.size()]);
         if (!ids.isEmpty()) {
             List<ProcessDefinition> processDefinitionList = 
processDefinitionMapper.queryDefinitionListByIdList(idArray);
             if (processDefinitionList != null) {
-                for (ProcessDefinition processDefinition : 
processDefinitionList) {
+                for (ProcessDefinition processDefinitionTmp : 
processDefinitionList) {
                     /**
                      * if there is no online process, exit directly
                      */
-                    if (processDefinition.getReleaseState() != 
ReleaseState.ONLINE) {
-                        putMsg(result, Status.PROCESS_DEFINE_NOT_RELEASE, 
processDefinition.getName());
+                    if (processDefinitionTmp.getReleaseState() != 
ReleaseState.ONLINE) {
+                        putMsg(result, Status.PROCESS_DEFINE_NOT_RELEASE, 
processDefinitionTmp.getName());
                         logger.info("not release process definition id: {} , 
name : {}",
-                                processDefinition.getId(), 
processDefinition.getName());
+                                processDefinitionTmp.getId(), 
processDefinitionTmp.getName());
                         return result;
                     }
                 }
diff --git 
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/ExecutorControllerTest.java
 
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/ExecutorControllerTest.java
index b3e093a..1bf10ae 100644
--- 
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/ExecutorControllerTest.java
+++ 
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/ExecutorControllerTest.java
@@ -23,16 +23,22 @@ import static 
org.springframework.test.web.servlet.result.MockMvcResultMatchers.
 
 import org.apache.dolphinscheduler.api.enums.ExecuteType;
 import org.apache.dolphinscheduler.api.enums.Status;
+import org.apache.dolphinscheduler.api.service.ExecutorService;
 import org.apache.dolphinscheduler.api.utils.Result;
+import org.apache.dolphinscheduler.common.Constants;
 import org.apache.dolphinscheduler.common.enums.FailureStrategy;
 import org.apache.dolphinscheduler.common.enums.WarningType;
 import org.apache.dolphinscheduler.common.utils.JSONUtils;
 
+import java.util.HashMap;
+import java.util.Map;
+
 import org.junit.Assert;
-import org.junit.Ignore;
 import org.junit.Test;
+import org.mockito.Mockito;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.boot.test.mock.mockito.MockBean;
 import org.springframework.http.MediaType;
 import org.springframework.test.web.servlet.MvcResult;
 import org.springframework.util.LinkedMultiValueMap;
@@ -45,26 +51,34 @@ public class ExecutorControllerTest extends 
AbstractControllerTest {
 
     private static Logger logger = 
LoggerFactory.getLogger(ExecutorControllerTest.class);
 
-    @Ignore
+    @MockBean
+    private ExecutorService executorService;
+
     @Test
     public void testStartProcessInstance() throws Exception {
+        Map<String, Object> resultData = new HashMap<>();
+        resultData.put(Constants.STATUS, Status.SUCCESS);
+        Mockito.when(executorService.execProcessInstance(Mockito.any(), 
Mockito.anyLong(), Mockito.anyLong(), Mockito.any(),
+                Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any(), 
Mockito.any(), Mockito.anyInt(),
+                Mockito.any(), Mockito.any(), Mockito.any(), Mockito.anyInt(), 
Mockito.any())).thenReturn(resultData);
+
         MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
-        paramsMap.add("processDefinitionId", "40");
+        paramsMap.add("processDefinitionCode", "1");
         paramsMap.add("scheduleTime", "");
         paramsMap.add("failureStrategy", 
String.valueOf(FailureStrategy.CONTINUE));
         paramsMap.add("startNodeList", "");
         paramsMap.add("taskDependType", "");
         paramsMap.add("execType", "");
         paramsMap.add("warningType", String.valueOf(WarningType.NONE));
-        paramsMap.add("warningGroupId", "");
+        paramsMap.add("warningGroupId", "1");
         paramsMap.add("receivers", "");
         paramsMap.add("receiversCc", "");
         paramsMap.add("runMode", "");
         paramsMap.add("processInstancePriority", "");
-        paramsMap.add("workerGroupId", "");
+        paramsMap.add("workerGroupId", "1");
         paramsMap.add("timeout", "");
 
-        MvcResult mvcResult = 
mockMvc.perform(post("/projects/{projectName}/executors/start-process-instance",
 "cxc_1113")
+        MvcResult mvcResult = 
mockMvc.perform(post("/projects/{projectCode}/executors/start-process-instance",
 1L)
             .header("sessionId", sessionId)
             .params(paramsMap))
             .andExpect(status().isOk())
@@ -75,14 +89,17 @@ public class ExecutorControllerTest extends 
AbstractControllerTest {
         logger.info(mvcResult.getResponse().getContentAsString());
     }
 
-    @Ignore
     @Test
     public void testExecute() throws Exception {
+        Map<String, Object> resultData = new HashMap<>();
+        resultData.put(Constants.STATUS, Status.SUCCESS);
+        Mockito.when(executorService.execute(Mockito.any(), Mockito.anyLong(), 
Mockito.anyInt(), Mockito.any())).thenReturn(resultData);
+
         MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
         paramsMap.add("processInstanceId", "40");
         paramsMap.add("executeType", String.valueOf(ExecuteType.NONE));
 
-        MvcResult mvcResult = 
mockMvc.perform(post("/projects/{projectName}/executors/execute", "cxc_1113")
+        MvcResult mvcResult = 
mockMvc.perform(post("/projects/{projectCode}/executors/execute", 1L)
             .header("sessionId", sessionId)
             .params(paramsMap))
             .andExpect(status().isOk())
@@ -94,11 +111,14 @@ public class ExecutorControllerTest extends 
AbstractControllerTest {
     }
 
     @Test
-    public void testStartCheckProcessDefinition() throws Exception {
+    public void testStartCheck() throws Exception {
+        Map<String, Object> resultData = new HashMap<>();
+        resultData.put(Constants.STATUS, Status.SUCCESS);
+        
Mockito.when(executorService.startCheckByProcessDefinedCode(Mockito.anyLong())).thenReturn(resultData);
 
-        MvcResult mvcResult = 
mockMvc.perform(post("/projects/{projectName}/executors/start-check", 
"cxc_1113")
+        MvcResult mvcResult = 
mockMvc.perform(post("/projects/{projectCode}/executors/start-check", 1L)
             .header(SESSION_ID, sessionId)
-            .param("processDefinitionId", "40"))
+            .param("processDefinitionCode", "1"))
             .andExpect(status().isOk())
             .andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
             .andReturn();
diff --git 
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ExecutorService2Test.java
 
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ExecutorService2Test.java
deleted file mode 100644
index e389d0b..0000000
--- 
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ExecutorService2Test.java
+++ /dev/null
@@ -1,309 +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.any;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-
-import org.apache.dolphinscheduler.api.enums.ExecuteType;
-import org.apache.dolphinscheduler.api.enums.Status;
-import org.apache.dolphinscheduler.api.service.impl.ExecutorServiceImpl;
-import org.apache.dolphinscheduler.api.service.impl.ProjectServiceImpl;
-import org.apache.dolphinscheduler.common.Constants;
-import org.apache.dolphinscheduler.common.enums.CommandType;
-import org.apache.dolphinscheduler.common.enums.ExecutionStatus;
-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.model.Server;
-import org.apache.dolphinscheduler.dao.entity.Command;
-import org.apache.dolphinscheduler.dao.entity.ProcessDefinition;
-import org.apache.dolphinscheduler.dao.entity.ProcessInstance;
-import org.apache.dolphinscheduler.dao.entity.Project;
-import org.apache.dolphinscheduler.dao.entity.Schedule;
-import org.apache.dolphinscheduler.dao.entity.Tenant;
-import org.apache.dolphinscheduler.dao.entity.User;
-import org.apache.dolphinscheduler.dao.mapper.ProcessDefinitionMapper;
-import org.apache.dolphinscheduler.dao.mapper.ProjectMapper;
-import org.apache.dolphinscheduler.service.process.ProcessService;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.InjectMocks;
-import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.mockito.junit.MockitoJUnitRunner;
-
-/**
- * executor service 2 test
- */
-@RunWith(MockitoJUnitRunner.Silent.class)
-public class ExecutorService2Test {
-
-    @InjectMocks
-    private ExecutorServiceImpl executorService;
-
-    @Mock
-    private ProcessService processService;
-
-    @Mock
-    private ProcessDefinitionMapper processDefinitionMapper;
-
-    @Mock
-    private ProjectMapper projectMapper;
-
-    @Mock
-    private ProjectServiceImpl projectService;
-
-    @Mock
-    private MonitorService monitorService;
-
-    private int processDefinitionId = 1;
-
-    private int processInstanceId = 1;
-
-    private int tenantId = 1;
-
-    private int userId = 1;
-
-    private ProcessDefinition processDefinition = new ProcessDefinition();
-
-    private ProcessInstance processInstance = new ProcessInstance();
-
-    private User loginUser = new User();
-
-    private String projectName = "projectName";
-
-    private Project project = new Project();
-
-    private String cronTime;
-
-    @Before
-    public void init() {
-        // user
-        loginUser.setId(userId);
-
-        // processDefinition
-        processDefinition.setId(processDefinitionId);
-        processDefinition.setReleaseState(ReleaseState.ONLINE);
-        processDefinition.setTenantId(tenantId);
-        processDefinition.setUserId(userId);
-        processDefinition.setVersion(1);
-        processDefinition.setCode(1L);
-
-        // processInstance
-        processInstance.setId(processInstanceId);
-        processInstance.setState(ExecutionStatus.FAILURE);
-        processInstance.setExecutorId(userId);
-        processInstance.setTenantId(tenantId);
-        processInstance.setProcessDefinitionVersion(1);
-        processInstance.setProcessDefinitionCode(1L);
-
-        // project
-        project.setName(projectName);
-
-        // cronRangeTime
-        cronTime = "2020-01-01 00:00:00,2020-01-31 23:00:00";
-
-        // mock
-        
Mockito.when(projectMapper.queryByName(projectName)).thenReturn(project);
-        Mockito.when(projectService.checkProjectAndAuth(loginUser, project, 
projectName)).thenReturn(checkProjectAndAuth());
-        
Mockito.when(processDefinitionMapper.selectById(processDefinitionId)).thenReturn(processDefinition);
-        Mockito.when(processService.getTenantForProcess(tenantId, 
userId)).thenReturn(new Tenant());
-        
Mockito.when(processService.createCommand(any(Command.class))).thenReturn(1);
-        
Mockito.when(monitorService.getServerListFromRegistry(true)).thenReturn(getMasterServersList());
-        
Mockito.when(processService.findProcessInstanceDetailById(processInstanceId)).thenReturn(processInstance);
-        Mockito.when(processService.findProcessDefinition(1L, 
1)).thenReturn(processDefinition);
-    }
-
-    /**
-     * not complement
-     */
-    @Test
-    public void testNoComplement() {
-
-        
Mockito.when(processService.queryReleaseSchedulerListByProcessDefinitionId(processDefinitionId)).thenReturn(zeroSchedulerList());
-        Map<String, Object> result = 
executorService.execProcessInstance(loginUser, projectName,
-                processDefinitionId, cronTime, CommandType.START_PROCESS,
-                null, null,
-                null, null, 0,
-                RunMode.RUN_MODE_SERIAL,
-                Priority.LOW, Constants.DEFAULT_WORKER_GROUP, 110, null);
-        Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
-        verify(processService, times(1)).createCommand(any(Command.class));
-
-    }
-
-    /**
-     * not complement
-     */
-    @Test
-    public void testComplementWithStartNodeList() {
-
-        
Mockito.when(processService.queryReleaseSchedulerListByProcessDefinitionId(processDefinitionId)).thenReturn(zeroSchedulerList());
-        Map<String, Object> result = 
executorService.execProcessInstance(loginUser, projectName,
-                processDefinitionId, cronTime, CommandType.START_PROCESS,
-                null, "n1,n2",
-                null, null, 0,
-                RunMode.RUN_MODE_SERIAL,
-                Priority.LOW, Constants.DEFAULT_WORKER_GROUP, 110, null);
-        Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
-        verify(processService, times(1)).createCommand(any(Command.class));
-
-    }
-
-
-    /**
-     * date error
-     */
-    @Test
-    public void testDateError() {
-
-        
Mockito.when(processService.queryReleaseSchedulerListByProcessDefinitionId(processDefinitionId)).thenReturn(zeroSchedulerList());
-        Map<String, Object> result = 
executorService.execProcessInstance(loginUser, projectName,
-                processDefinitionId, "2020-01-31 23:00:00,2020-01-01 
00:00:00", CommandType.COMPLEMENT_DATA,
-                null, null,
-                null, null, 0,
-                RunMode.RUN_MODE_SERIAL,
-                Priority.LOW, Constants.DEFAULT_WORKER_GROUP, 110, null);
-        Assert.assertEquals(Status.START_PROCESS_INSTANCE_ERROR, 
result.get(Constants.STATUS));
-        verify(processService, times(0)).createCommand(any(Command.class));
-    }
-
-    /**
-     * serial
-     */
-    @Test
-    public void testSerial() {
-
-        
Mockito.when(processService.queryReleaseSchedulerListByProcessDefinitionId(processDefinitionId)).thenReturn(zeroSchedulerList());
-        Map<String, Object> result = 
executorService.execProcessInstance(loginUser, projectName,
-                processDefinitionId, cronTime, CommandType.COMPLEMENT_DATA,
-                null, null,
-                null, null, 0,
-                RunMode.RUN_MODE_SERIAL,
-                Priority.LOW, Constants.DEFAULT_WORKER_GROUP, 110, null);
-        Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
-        verify(processService, times(1)).createCommand(any(Command.class));
-
-    }
-
-    /**
-     * without schedule
-     */
-    @Test
-    public void testParallelWithOutSchedule() {
-
-        
Mockito.when(processService.queryReleaseSchedulerListByProcessDefinitionId(processDefinitionId)).thenReturn(zeroSchedulerList());
-        Map<String, Object> result = 
executorService.execProcessInstance(loginUser, projectName,
-                processDefinitionId, cronTime, CommandType.COMPLEMENT_DATA,
-                null, null,
-                null, null, 0,
-                RunMode.RUN_MODE_PARALLEL,
-                Priority.LOW, Constants.DEFAULT_WORKER_GROUP, 110, null);
-        Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
-        verify(processService, times(31)).createCommand(any(Command.class));
-
-    }
-
-    /**
-     * with schedule
-     */
-    @Test
-    public void testParallelWithSchedule() {
-
-        
Mockito.when(processService.queryReleaseSchedulerListByProcessDefinitionId(processDefinitionId)).thenReturn(oneSchedulerList());
-        Map<String, Object> result = 
executorService.execProcessInstance(loginUser, projectName,
-                processDefinitionId, cronTime, CommandType.COMPLEMENT_DATA,
-                null, null,
-                null, null, 0,
-                RunMode.RUN_MODE_PARALLEL,
-                Priority.LOW, Constants.DEFAULT_WORKER_GROUP, 110, null);
-        Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
-        verify(processService, times(15)).createCommand(any(Command.class));
-
-    }
-
-    @Test
-    public void testNoMsterServers() {
-        
Mockito.when(monitorService.getServerListFromRegistry(true)).thenReturn(new 
ArrayList<>());
-
-        Map<String, Object> result = 
executorService.execProcessInstance(loginUser, projectName,
-                processDefinitionId, cronTime, CommandType.COMPLEMENT_DATA,
-                null, null,
-                null, null, 0,
-                RunMode.RUN_MODE_PARALLEL,
-                Priority.LOW, Constants.DEFAULT_WORKER_GROUP, 110, null);
-        Assert.assertEquals(result.get(Constants.STATUS), 
Status.MASTER_NOT_EXISTS);
-
-    }
-
-    @Test
-    public void testExecuteRepeatRunning() {
-        
Mockito.when(processService.verifyIsNeedCreateCommand(any(Command.class))).thenReturn(true);
-        
-        Map<String, Object> result = executorService.execute(loginUser, 
projectName, processInstanceId, ExecuteType.REPEAT_RUNNING);
-        Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
-    }
-
-    private List<Server> getMasterServersList() {
-        List<Server> masterServerList = new ArrayList<>();
-        Server masterServer1 = new Server();
-        masterServer1.setId(1);
-        masterServer1.setHost("192.168.220.188");
-        masterServer1.setPort(1121);
-        masterServerList.add(masterServer1);
-
-        Server masterServer2 = new Server();
-        masterServer2.setId(2);
-        masterServer2.setHost("192.168.220.189");
-        masterServer2.setPort(1122);
-        masterServerList.add(masterServer2);
-
-        return masterServerList;
-
-    }
-
-    private List zeroSchedulerList() {
-        return Collections.EMPTY_LIST;
-    }
-
-    private List<Schedule> oneSchedulerList() {
-        List<Schedule> schedulerList = new LinkedList<>();
-        Schedule schedule = new Schedule();
-        schedule.setCrontab("0 0 0 1/2 * ?");
-        schedulerList.add(schedule);
-        return schedulerList;
-    }
-
-    private Map<String, Object> checkProjectAndAuth() {
-        Map<String, Object> result = new HashMap<>();
-        result.put(Constants.STATUS, Status.SUCCESS);
-        return result;
-    }
-}
diff --git 
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ExecutorServiceTest.java
 
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ExecutorServiceTest.java
index 071b77c..624fa6e 100644
--- 
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ExecutorServiceTest.java
+++ 
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/ExecutorServiceTest.java
@@ -17,52 +17,313 @@
 
 package org.apache.dolphinscheduler.api.service;
 
-import org.apache.dolphinscheduler.api.controller.AbstractControllerTest;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
+import org.apache.dolphinscheduler.api.enums.ExecuteType;
 import org.apache.dolphinscheduler.api.enums.Status;
 import org.apache.dolphinscheduler.api.service.impl.ExecutorServiceImpl;
+import org.apache.dolphinscheduler.api.service.impl.ProjectServiceImpl;
 import org.apache.dolphinscheduler.common.Constants;
+import org.apache.dolphinscheduler.common.enums.CommandType;
+import org.apache.dolphinscheduler.common.enums.ExecutionStatus;
+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.model.Server;
+import org.apache.dolphinscheduler.dao.entity.Command;
+import org.apache.dolphinscheduler.dao.entity.ProcessDefinition;
+import org.apache.dolphinscheduler.dao.entity.ProcessInstance;
+import org.apache.dolphinscheduler.dao.entity.Project;
+import org.apache.dolphinscheduler.dao.entity.Schedule;
+import org.apache.dolphinscheduler.dao.entity.Tenant;
+import org.apache.dolphinscheduler.dao.entity.User;
+import org.apache.dolphinscheduler.dao.mapper.ProcessDefinitionMapper;
+import org.apache.dolphinscheduler.dao.mapper.ProjectMapper;
+import org.apache.dolphinscheduler.service.process.ProcessService;
 
-import java.text.MessageFormat;
+import java.util.ArrayList;
+import java.util.Collections;
 import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
 import java.util.Map;
 
 import org.junit.Assert;
-import org.junit.Ignore;
+import org.junit.Before;
 import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.junit.MockitoJUnitRunner;
 
 /**
- * executor service test
+ * executor service 2 test
  */
-public class ExecutorServiceTest extends AbstractControllerTest {
-
-    private static final Logger logger = 
LoggerFactory.getLogger(ExecutorServiceTest.class);
+@RunWith(MockitoJUnitRunner.Silent.class)
+public class ExecutorServiceTest {
 
-    @Autowired
+    @InjectMocks
     private ExecutorServiceImpl executorService;
 
-    @Ignore
+    @Mock
+    private ProcessService processService;
+
+    @Mock
+    private ProcessDefinitionMapper processDefinitionMapper;
+
+    @Mock
+    private ProjectMapper projectMapper;
+
+    @Mock
+    private ProjectServiceImpl projectService;
+
+    @Mock
+    private MonitorService monitorService;
+
+    private int processDefinitionId = 1;
+
+    private long processDefinitionCode = 1L;
+
+    private int processInstanceId = 1;
+
+    private int tenantId = 1;
+
+    private int userId = 1;
+
+    private ProcessDefinition processDefinition = new ProcessDefinition();
+
+    private ProcessInstance processInstance = new ProcessInstance();
+
+    private User loginUser = new User();
+
+    private long projectCode = 1L;
+
+    private String projectName = "projectName";
+
+    private Project project = new Project();
+
+    private String cronTime;
+
+    @Before
+    public void init() {
+        // user
+        loginUser.setId(userId);
+
+        // processDefinition
+        processDefinition.setId(processDefinitionId);
+        processDefinition.setReleaseState(ReleaseState.ONLINE);
+        processDefinition.setTenantId(tenantId);
+        processDefinition.setUserId(userId);
+        processDefinition.setVersion(1);
+        processDefinition.setCode(1L);
+
+        // processInstance
+        processInstance.setId(processInstanceId);
+        processInstance.setState(ExecutionStatus.FAILURE);
+        processInstance.setExecutorId(userId);
+        processInstance.setTenantId(tenantId);
+        processInstance.setProcessDefinitionVersion(1);
+        processInstance.setProcessDefinitionCode(1L);
+
+        // project
+        project.setCode(projectCode);
+        project.setName(projectName);
+
+        // cronRangeTime
+        cronTime = "2020-01-01 00:00:00,2020-01-31 23:00:00";
+
+        // mock
+        
Mockito.when(projectMapper.queryByCode(projectCode)).thenReturn(project);
+        Mockito.when(projectService.checkProjectAndAuth(loginUser, project, 
projectName)).thenReturn(checkProjectAndAuth());
+        
Mockito.when(processDefinitionMapper.queryByCode(processDefinitionCode)).thenReturn(processDefinition);
+        Mockito.when(processService.getTenantForProcess(tenantId, 
userId)).thenReturn(new Tenant());
+        
Mockito.when(processService.createCommand(any(Command.class))).thenReturn(1);
+        
Mockito.when(monitorService.getServerListFromRegistry(true)).thenReturn(getMasterServersList());
+        
Mockito.when(processService.findProcessInstanceDetailById(processInstanceId)).thenReturn(processInstance);
+        Mockito.when(processService.findProcessDefinition(1L, 
1)).thenReturn(processDefinition);
+    }
+
+    /**
+     * not complement
+     */
+    @Test
+    public void testNoComplement() {
+
+        
Mockito.when(processService.queryReleaseSchedulerListByProcessDefinitionId(processDefinitionId)).thenReturn(zeroSchedulerList());
+        Map<String, Object> result = 
executorService.execProcessInstance(loginUser, projectCode,
+                processDefinitionCode, cronTime, CommandType.START_PROCESS,
+                null, null,
+                null, null, 0,
+                RunMode.RUN_MODE_SERIAL,
+                Priority.LOW, Constants.DEFAULT_WORKER_GROUP, 110, null);
+        Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
+        verify(processService, times(1)).createCommand(any(Command.class));
+
+    }
+
+    /**
+     * not complement
+     */
+    @Test
+    public void testComplementWithStartNodeList() {
+
+        
Mockito.when(processService.queryReleaseSchedulerListByProcessDefinitionId(processDefinitionId)).thenReturn(zeroSchedulerList());
+        Map<String, Object> result = 
executorService.execProcessInstance(loginUser, projectCode,
+                processDefinitionCode, cronTime, CommandType.START_PROCESS,
+                null, "n1,n2",
+                null, null, 0,
+                RunMode.RUN_MODE_SERIAL,
+                Priority.LOW, Constants.DEFAULT_WORKER_GROUP, 110, null);
+        Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
+        verify(processService, times(1)).createCommand(any(Command.class));
+
+    }
+
+    /**
+     * date error
+     */
+    @Test
+    public void testDateError() {
+
+        
Mockito.when(processService.queryReleaseSchedulerListByProcessDefinitionId(processDefinitionId)).thenReturn(zeroSchedulerList());
+        Map<String, Object> result = 
executorService.execProcessInstance(loginUser, projectCode,
+                processDefinitionCode, "2020-01-31 23:00:00,2020-01-01 
00:00:00", CommandType.COMPLEMENT_DATA,
+                null, null,
+                null, null, 0,
+                RunMode.RUN_MODE_SERIAL,
+                Priority.LOW, Constants.DEFAULT_WORKER_GROUP, 110, null);
+        Assert.assertEquals(Status.START_PROCESS_INSTANCE_ERROR, 
result.get(Constants.STATUS));
+        verify(processService, times(0)).createCommand(any(Command.class));
+    }
+
+    /**
+     * serial
+     */
+    @Test
+    public void testSerial() {
+
+        
Mockito.when(processService.queryReleaseSchedulerListByProcessDefinitionId(processDefinitionId)).thenReturn(zeroSchedulerList());
+        Map<String, Object> result = 
executorService.execProcessInstance(loginUser, projectCode,
+                processDefinitionCode, cronTime, CommandType.COMPLEMENT_DATA,
+                null, null,
+                null, null, 0,
+                RunMode.RUN_MODE_SERIAL,
+                Priority.LOW, Constants.DEFAULT_WORKER_GROUP, 110, null);
+        Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
+        verify(processService, times(1)).createCommand(any(Command.class));
+    }
+
+    /**
+     * without schedule
+     */
     @Test
-    public void startCheckByProcessDefinedId() {
-        Map<String, Object> map = 
executorService.startCheckByProcessDefinedId(1234);
-        Assert.assertNull(map);
+    public void testParallelWithOutSchedule() {
+
+        
Mockito.when(processService.queryReleaseSchedulerListByProcessDefinitionId(processDefinitionId)).thenReturn(zeroSchedulerList());
+        Map<String, Object> result = 
executorService.execProcessInstance(loginUser, projectCode,
+                processDefinitionCode, cronTime, CommandType.COMPLEMENT_DATA,
+                null, null,
+                null, null, 0,
+                RunMode.RUN_MODE_PARALLEL,
+                Priority.LOW, Constants.DEFAULT_WORKER_GROUP, 110, null);
+        Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
+        verify(processService, times(31)).createCommand(any(Command.class));
+
     }
 
+    /**
+     * with schedule
+     */
     @Test
-    public void putMsgWithParamsTest() {
-        Map<String, Object> map = new HashMap<>();
-        putMsgWithParams(map, Status.PROJECT_ALREADY_EXISTS);
-        logger.info(map.toString());
+    public void testParallelWithSchedule() {
+
+        
Mockito.when(processService.queryReleaseSchedulerListByProcessDefinitionId(processDefinitionId)).thenReturn(oneSchedulerList());
+        Map<String, Object> result = 
executorService.execProcessInstance(loginUser, projectCode,
+                processDefinitionCode, cronTime, CommandType.COMPLEMENT_DATA,
+                null, null,
+                null, null, 0,
+                RunMode.RUN_MODE_PARALLEL,
+                Priority.LOW, Constants.DEFAULT_WORKER_GROUP, 110, null);
+        Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
+        verify(processService, times(15)).createCommand(any(Command.class));
+
+    }
+
+    @Test
+    public void testNoMasterServers() {
+        
Mockito.when(monitorService.getServerListFromRegistry(true)).thenReturn(new 
ArrayList<>());
+
+        Map<String, Object> result = 
executorService.execProcessInstance(loginUser, projectCode,
+                processDefinitionCode, cronTime, CommandType.COMPLEMENT_DATA,
+                null, null,
+                null, null, 0,
+                RunMode.RUN_MODE_PARALLEL,
+                Priority.LOW, Constants.DEFAULT_WORKER_GROUP, 110, null);
+        Assert.assertEquals(result.get(Constants.STATUS), 
Status.MASTER_NOT_EXISTS);
+
+    }
+
+    @Test
+    public void testExecuteRepeatRunning() {
+        
Mockito.when(processService.verifyIsNeedCreateCommand(any(Command.class))).thenReturn(true);
+
+        Map<String, Object> result = executorService.execute(loginUser, 
projectCode, processInstanceId, ExecuteType.REPEAT_RUNNING);
+        Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
+    }
+
+    @Test
+    public void testStartCheckByProcessDefinedCode() {
+        List<Integer> ids = new ArrayList<>();
+        ids.add(1);
+        Mockito.doNothing().when(processService).recurseFindSubProcessId(1, 
ids);
+
+        List<ProcessDefinition> processDefinitionList = new ArrayList<>();
+        ProcessDefinition processDefinition = new ProcessDefinition();
+        processDefinition.setId(1);
+        processDefinition.setReleaseState(ReleaseState.ONLINE);
+        processDefinitionList.add(processDefinition);
+        Mockito.when(processDefinitionMapper.queryDefinitionListByIdList(new 
Integer[ids.size()]))
+                .thenReturn(processDefinitionList);
+
+        Map<String, Object> result = 
executorService.startCheckByProcessDefinedCode(1L);
+        Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
+    }
+
+    private List<Server> getMasterServersList() {
+        List<Server> masterServerList = new ArrayList<>();
+        Server masterServer1 = new Server();
+        masterServer1.setId(1);
+        masterServer1.setHost("192.168.220.188");
+        masterServer1.setPort(1121);
+        masterServerList.add(masterServer1);
+
+        Server masterServer2 = new Server();
+        masterServer2.setId(2);
+        masterServer2.setHost("192.168.220.189");
+        masterServer2.setPort(1122);
+        masterServerList.add(masterServer2);
+
+        return masterServerList;
+    }
+
+    private List zeroSchedulerList() {
+        return Collections.EMPTY_LIST;
+    }
+
+    private List<Schedule> oneSchedulerList() {
+        List<Schedule> schedulerList = new LinkedList<>();
+        Schedule schedule = new Schedule();
+        schedule.setCrontab("0 0 0 1/2 * ?");
+        schedulerList.add(schedule);
+        return schedulerList;
     }
 
-    void putMsgWithParams(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 Map<String, Object> checkProjectAndAuth() {
+        Map<String, Object> result = new HashMap<>();
+        result.put(Constants.STATUS, Status.SUCCESS);
+        return result;
     }
-}
\ No newline at end of file
+}
diff --git 
a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/definition/pages/list/_source/list.vue
 
b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/definition/pages/list/_source/list.vue
index d730f50..70d86ab 100644
--- 
a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/definition/pages/list/_source/list.vue
+++ 
b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/definition/pages/list/_source/list.vue
@@ -210,7 +210,7 @@
        */
       _start (item) {
         this.getWorkerGroupsAll()
-        this.getStartCheck({ processDefinitionId: item.id }).then(res => {
+        this.getStartCheck({ processDefinitionCode: item.code }).then(res => {
           this.startData = item
           this.startDialog = true
         }).catch(e => {
diff --git a/dolphinscheduler-ui/src/js/conf/home/store/dag/actions.js 
b/dolphinscheduler-ui/src/js/conf/home/store/dag/actions.js
index f7b8c0e..63bce50 100644
--- a/dolphinscheduler-ui/src/js/conf/home/store/dag/actions.js
+++ b/dolphinscheduler-ui/src/js/conf/home/store/dag/actions.js
@@ -124,7 +124,7 @@ export default {
    */
   editExecutorsState ({ state }, payload) {
     return new Promise((resolve, reject) => {
-      io.post(`projects/${state.projectName}/executors/execute`, {
+      io.post(`projects/${state.projectCode}/executors/execute`, {
         processInstanceId: payload.processInstanceId,
         executeType: payload.executeType
       }, res => {
@@ -506,7 +506,7 @@ export default {
    */
   processStart ({ state }, payload) {
     return new Promise((resolve, reject) => {
-      
io.post(`projects/${state.projectName}/executors/start-process-instance`, 
payload, res => {
+      
io.post(`projects/${state.projectCode}/executors/start-process-instance`, 
payload, res => {
         resolve(res)
       }).catch(e => {
         reject(e)
@@ -543,7 +543,7 @@ export default {
    */
   getStartCheck ({ state }, payload) {
     return new Promise((resolve, reject) => {
-      io.post(`projects/${state.projectName}/executors/start-check`, payload, 
res => {
+      io.post(`projects/${state.projectCode}/executors/start-check`, payload, 
res => {
         resolve(res)
       }).catch(e => {
         reject(e)

Reply via email to