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)