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 e4f427a  [Fix-5763]: The scheduler online/offline interface, 
projectName -> projectCode (#5764)
e4f427a is described below

commit e4f427a8d8bf99754698e054845291a5223c2ea6
Author: wen-hemin <[email protected]>
AuthorDate: Thu Jul 8 13:59:40 2021 +0800

    [Fix-5763]: The scheduler online/offline interface, projectName -> 
projectCode (#5764)
    
    * fix: createSchedule interface, process definition id -> process 
definition code
    
    * fix: add junit
    
    * fix junit
    
    * fix: projectName -> projectCode
    
    * fix UT
    
    * Optimize variable type
    
    * fix: the updateSchedule interface, projectName -> projectCode
    
    * fix comment
    
    * fix: The scheduler online/offline interface, projectName -> projectCode
    
    * fix UT
    
    Co-authored-by: wen-hemin <[email protected]>
---
 .../api/controller/SchedulerController.java        | 12 ++++-----
 .../api/service/SchedulerService.java              |  4 +--
 .../api/service/impl/SchedulerServiceImpl.java     |  6 ++---
 .../api/controller/SchedulerControllerTest.java    | 12 ++++++---
 .../api/service/SchedulerServiceTest.java          | 31 ++++++++++++++--------
 .../src/js/conf/home/store/dag/actions.js          |  4 +--
 6 files changed, 42 insertions(+), 27 deletions(-)

diff --git 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/SchedulerController.java
 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/SchedulerController.java
index 458fedb..7521043 100644
--- 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/SchedulerController.java
+++ 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/SchedulerController.java
@@ -166,7 +166,7 @@ public class SchedulerController extends BaseController {
      * publish schedule setScheduleState
      *
      * @param loginUser login user
-     * @param projectName project name
+     * @param projectCode project code
      * @param id scheduler id
      * @return publish result code
      */
@@ -178,9 +178,9 @@ public class SchedulerController extends BaseController {
     @ApiException(PUBLISH_SCHEDULE_ONLINE_ERROR)
     @AccessLogAnnotation(ignoreRequestArgs = "loginUser")
     public Result online(@ApiIgnore @RequestAttribute(value = 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("id") Integer id) {
-        Map<String, Object> result = 
schedulerService.setScheduleState(loginUser, projectName, id, 
ReleaseState.ONLINE);
+        Map<String, Object> result = 
schedulerService.setScheduleState(loginUser, projectCode, id, 
ReleaseState.ONLINE);
         return returnDataList(result);
     }
 
@@ -188,7 +188,7 @@ public class SchedulerController extends BaseController {
      * offline schedule
      *
      * @param loginUser login user
-     * @param projectName project name
+     * @param projectCode project code
      * @param id schedule id
      * @return operation result code
      */
@@ -200,10 +200,10 @@ public class SchedulerController extends BaseController {
     @ApiException(OFFLINE_SCHEDULE_ERROR)
     @AccessLogAnnotation(ignoreRequestArgs = "loginUser")
     public Result offline(@ApiIgnore @RequestAttribute(value = 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("id") Integer id) {
 
-        Map<String, Object> result = 
schedulerService.setScheduleState(loginUser, projectName, id, 
ReleaseState.OFFLINE);
+        Map<String, Object> result = 
schedulerService.setScheduleState(loginUser, projectCode, id, 
ReleaseState.OFFLINE);
         return returnDataList(result);
     }
 
diff --git 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/SchedulerService.java
 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/SchedulerService.java
index 4e00ae3..92707db 100644
--- 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/SchedulerService.java
+++ 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/SchedulerService.java
@@ -83,13 +83,13 @@ public interface SchedulerService {
      * set schedule online or offline
      *
      * @param loginUser login user
-     * @param projectName project name
+     * @param projectCode project code
      * @param id scheduler id
      * @param scheduleStatus schedule status
      * @return publish result code
      */
     Map<String, Object> setScheduleState(User loginUser,
-                                         String projectName,
+                                         long projectCode,
                                          Integer id,
                                          ReleaseState scheduleStatus);
 
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 5a11123..780425e 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
@@ -293,7 +293,7 @@ public class SchedulerServiceImpl extends BaseServiceImpl 
implements SchedulerSe
      * set schedule online or offline
      *
      * @param loginUser login user
-     * @param projectName project name
+     * @param projectCode project code
      * @param id scheduler id
      * @param scheduleStatus schedule status
      * @return publish result code
@@ -301,12 +301,12 @@ public class SchedulerServiceImpl extends BaseServiceImpl 
implements SchedulerSe
     @Override
     @Transactional(rollbackFor = RuntimeException.class)
     public Map<String, Object> setScheduleState(User loginUser,
-                                                String projectName,
+                                                long projectCode,
                                                 Integer id,
                                                 ReleaseState scheduleStatus) {
         Map<String, Object> result = new HashMap<>();
 
-        Project project = projectMapper.queryByName(projectName);
+        Project project = projectMapper.queryByCode(projectCode);
         // check project auth
         boolean hasProjectAndPerm = 
projectService.hasProjectAndPerm(loginUser, project, result);
         if (!hasProjectAndPerm) {
diff --git 
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/SchedulerControllerTest.java
 
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/SchedulerControllerTest.java
index 9ce254b..307d816 100644
--- 
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/SchedulerControllerTest.java
+++ 
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/SchedulerControllerTest.java
@@ -28,6 +28,7 @@ import 
org.apache.dolphinscheduler.api.service.SchedulerService;
 import org.apache.dolphinscheduler.api.utils.Result;
 import org.apache.dolphinscheduler.common.enums.FailureStrategy;
 import org.apache.dolphinscheduler.common.enums.Priority;
+import org.apache.dolphinscheduler.common.enums.ReleaseState;
 import org.apache.dolphinscheduler.common.enums.WarningType;
 import org.apache.dolphinscheduler.common.utils.JSONUtils;
 import org.apache.dolphinscheduler.dao.entity.User;
@@ -115,7 +116,10 @@ public class SchedulerControllerTest extends 
AbstractControllerTest {
         MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
         paramsMap.add("id","37");
 
-        MvcResult mvcResult = 
mockMvc.perform(post("/projects/{projectName}/schedule/online","cxc_1113")
+        Mockito.when(schedulerService.setScheduleState(isA(User.class), 
isA(Long.class), isA(Integer.class),
+                isA(ReleaseState.class))).thenReturn(successResult());
+
+        MvcResult mvcResult = 
mockMvc.perform(post("/projects/{projectCode}/schedule/online",123)
                 .header(SESSION_ID, sessionId)
                 .params(paramsMap))
                 .andExpect(status().isOk())
@@ -127,13 +131,15 @@ public class SchedulerControllerTest extends 
AbstractControllerTest {
         logger.info(mvcResult.getResponse().getContentAsString());
     }
 
-
     @Test
     public void testOffline() throws Exception {
         MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
         paramsMap.add("id","28");
 
-        MvcResult mvcResult = 
mockMvc.perform(post("/projects/{projectName}/schedule/offline","cxc_1113")
+        Mockito.when(schedulerService.setScheduleState(isA(User.class), 
isA(Long.class), isA(Integer.class),
+                isA(ReleaseState.class))).thenReturn(successResult());
+
+        MvcResult mvcResult = 
mockMvc.perform(post("/projects/{projectCode}/schedule/offline",123)
                 .header(SESSION_ID, sessionId)
                 .params(paramsMap))
                 .andExpect(status().isOk())
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 0866e40..7cd383a 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
@@ -91,12 +91,12 @@ public class SchedulerServiceTest {
 
     @Test
     public void testSetScheduleState() {
-
         String projectName = "test";
+        long projectCode = 1L;
         User loginUser = new User();
         loginUser.setId(1);
         Map<String, Object> result = new HashMap<String, Object>();
-        Project project = getProject(projectName);
+        Project project = getProject(projectName, projectCode);
 
         ProcessDefinition processDefinition = new ProcessDefinition();
 
@@ -110,49 +110,50 @@ public class SchedulerServiceTest {
 
         Mockito.when(scheduleMapper.selectById(1)).thenReturn(schedule);
 
+        
Mockito.when(projectMapper.queryByCode(projectCode)).thenReturn(project);
         
Mockito.when(projectMapper.queryByName(projectName)).thenReturn(project);
 
         
Mockito.when(processService.findProcessDefineById(1)).thenReturn(processDefinition);
 
         //hash no auth
-        result = schedulerService.setScheduleState(loginUser, projectName, 1, 
ReleaseState.ONLINE);
+        result = schedulerService.setScheduleState(loginUser, 
project.getCode(), 1, ReleaseState.ONLINE);
 
         Mockito.when(projectService.hasProjectAndPerm(loginUser, project, 
result)).thenReturn(true);
         //schedule not exists
-        result = schedulerService.setScheduleState(loginUser, projectName, 2, 
ReleaseState.ONLINE);
+        result = schedulerService.setScheduleState(loginUser, 
project.getCode(), 2, ReleaseState.ONLINE);
         Assert.assertEquals(Status.SCHEDULE_CRON_NOT_EXISTS, 
result.get(Constants.STATUS));
 
         //SCHEDULE_CRON_REALEASE_NEED_NOT_CHANGE
-        result = schedulerService.setScheduleState(loginUser, projectName, 1, 
ReleaseState.OFFLINE);
+        result = schedulerService.setScheduleState(loginUser, 
project.getCode(), 1, ReleaseState.OFFLINE);
         Assert.assertEquals(Status.SCHEDULE_CRON_REALEASE_NEED_NOT_CHANGE, 
result.get(Constants.STATUS));
 
         //PROCESS_DEFINE_NOT_EXIST
         schedule.setProcessDefinitionId(2);
-        result = schedulerService.setScheduleState(loginUser, projectName, 1, 
ReleaseState.ONLINE);
+        result = schedulerService.setScheduleState(loginUser, 
project.getCode(), 1, ReleaseState.ONLINE);
         Assert.assertEquals(Status.PROCESS_DEFINE_NOT_EXIST, 
result.get(Constants.STATUS));
         schedule.setProcessDefinitionId(1);
 
         // PROCESS_DEFINE_NOT_RELEASE
-        result = schedulerService.setScheduleState(loginUser, projectName, 1, 
ReleaseState.ONLINE);
+        result = schedulerService.setScheduleState(loginUser, 
project.getCode(), 1, ReleaseState.ONLINE);
         Assert.assertEquals(Status.PROCESS_DEFINE_NOT_RELEASE, 
result.get(Constants.STATUS));
 
         processDefinition.setReleaseState(ReleaseState.ONLINE);
         
Mockito.when(processService.findProcessDefineById(1)).thenReturn(processDefinition);
 
         //MASTER_NOT_EXISTS
-        result = schedulerService.setScheduleState(loginUser, projectName, 1, 
ReleaseState.ONLINE);
+        result = schedulerService.setScheduleState(loginUser, 
project.getCode(), 1, ReleaseState.ONLINE);
         Assert.assertEquals(Status.MASTER_NOT_EXISTS, 
result.get(Constants.STATUS));
 
         //set master
         
Mockito.when(monitorService.getServerListFromRegistry(true)).thenReturn(masterServers);
 
         //SUCCESS
-        result = schedulerService.setScheduleState(loginUser, projectName, 1, 
ReleaseState.ONLINE);
+        result = schedulerService.setScheduleState(loginUser, 
project.getCode(), 1, ReleaseState.ONLINE);
         Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
 
         //OFFLINE
         Mockito.when(quartzExecutors.deleteJob(null, null)).thenReturn(true);
-        result = schedulerService.setScheduleState(loginUser, projectName, 1, 
ReleaseState.OFFLINE);
+        result = schedulerService.setScheduleState(loginUser, 
project.getCode(), 1, ReleaseState.OFFLINE);
         Assert.assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
 
     }
@@ -174,12 +175,20 @@ public class SchedulerServiceTest {
     }
 
     private Project getProject(String name) {
+        Project project = new Project();
+        project.setName(name);
+        project.setUserId(1);
+
+        return project;
+    }
 
+    private Project getProject(String name, long code) {
         Project project = new Project();
         project.setName(name);
+        project.setCode(code);
         project.setUserId(1);
 
         return project;
     }
 
-}
\ No newline at end of file
+}
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 fb5acaf..0d8e2ab 100644
--- a/dolphinscheduler-ui/src/js/conf/home/store/dag/actions.js
+++ b/dolphinscheduler-ui/src/js/conf/home/store/dag/actions.js
@@ -592,7 +592,7 @@ export default {
    */
   scheduleOffline ({ state }, payload) {
     return new Promise((resolve, reject) => {
-      io.post(`projects/${state.projectName}/schedule/offline`, payload, res 
=> {
+      io.post(`projects/${state.projectCode}/schedule/offline`, payload, res 
=> {
         resolve(res)
       }).catch(e => {
         reject(e)
@@ -604,7 +604,7 @@ export default {
    */
   scheduleOnline ({ state }, payload) {
     return new Promise((resolve, reject) => {
-      io.post(`projects/${state.projectName}/schedule/online`, payload, res => 
{
+      io.post(`projects/${state.projectCode}/schedule/online`, payload, res => 
{
         resolve(res)
       }).catch(e => {
         reject(e)

Reply via email to