From ae042fc5c73cf9eb1ecd3194843c00c9623caeb3 Mon Sep 17 00:00:00 2001 From: ligang Date: Fri, 10 May 2019 14:41:22 +0800 Subject: [PATCH] add delete eschedule by id --- .../api/controller/SchedulerController.java | 25 +++++++++++ .../java/cn/escheduler/api/enums/Status.java | 1 + .../api/service/SchedulerService.java | 42 +++++++++++++++++++ 3 files changed, 68 insertions(+) diff --git a/escheduler-api/src/main/java/cn/escheduler/api/controller/SchedulerController.java b/escheduler-api/src/main/java/cn/escheduler/api/controller/SchedulerController.java index 8449bd1d38..cff662a160 100644 --- a/escheduler-api/src/main/java/cn/escheduler/api/controller/SchedulerController.java +++ b/escheduler-api/src/main/java/cn/escheduler/api/controller/SchedulerController.java @@ -230,4 +230,29 @@ public class SchedulerController extends BaseController{ return error(Status.QUERY_SCHEDULE_LIST_ERROR.getCode(), Status.QUERY_SCHEDULE_LIST_ERROR.getMsg()); } } + + /** + * delete schedule by id + * + * @param loginUser + * @param projectName + * @param scheduleId + * @return + */ + @GetMapping(value="/delete") + @ResponseStatus(HttpStatus.OK) + public Result deleteScheduleById(@RequestAttribute(value = SESSION_USER) User loginUser, + @PathVariable String projectName, + @RequestParam("scheduleId") Integer scheduleId + ){ + try{ + logger.info("delete schedule by id, login user:{}, project name:{}, schedule id:{}", + loginUser.getUserName(), projectName, scheduleId); + Map result = schedulerService.deleteScheduleById(loginUser, projectName, scheduleId); + return returnDataList(result); + }catch (Exception e){ + logger.error(DELETE_SCHEDULE_CRON_BY_ID_ERROR.getMsg(),e); + return error(Status.DELETE_SCHEDULE_CRON_BY_ID_ERROR.getCode(), Status.DELETE_SCHEDULE_CRON_BY_ID_ERROR.getMsg()); + } + } } diff --git a/escheduler-api/src/main/java/cn/escheduler/api/enums/Status.java b/escheduler-api/src/main/java/cn/escheduler/api/enums/Status.java index 24b92b8382..9c071cd0f0 100644 --- a/escheduler-api/src/main/java/cn/escheduler/api/enums/Status.java +++ b/escheduler-api/src/main/java/cn/escheduler/api/enums/Status.java @@ -203,6 +203,7 @@ public enum Status { PROCESS_DEFINE_STATE_ONLINE(50021, "process definition {0} is already on line"), DELETE_PROCESS_DEFINE_BY_ID_ERROR(50022,"delete process definition by id error"), SCHEDULE_CRON_STATE_ONLINE(50023,"the status of schedule {0} is already on line"), + DELETE_SCHEDULE_CRON_BY_ID_ERROR(50024,"delete schedule by id error"), HDFS_NOT_STARTUP(60001,"hdfs not startup"), diff --git a/escheduler-api/src/main/java/cn/escheduler/api/service/SchedulerService.java b/escheduler-api/src/main/java/cn/escheduler/api/service/SchedulerService.java index 232b9d7b15..f2cf8e1905 100644 --- a/escheduler-api/src/main/java/cn/escheduler/api/service/SchedulerService.java +++ b/escheduler-api/src/main/java/cn/escheduler/api/service/SchedulerService.java @@ -488,4 +488,46 @@ public class SchedulerService extends BaseService { } return null; } + + /** + * delete schedule by id + * + * @param loginUser + * @param projectName + * @param scheduleId + * @return + */ + public Map deleteScheduleById(User loginUser, String projectName, Integer scheduleId) { + + Map result = new HashMap<>(5); + Project project = projectMapper.queryByName(projectName); + + Map checkResult = projectService.checkProjectAndAuth(loginUser, project, projectName); + Status resultEnum = (Status) checkResult.get(Constants.STATUS); + if (resultEnum != Status.SUCCESS) { + return checkResult; + } + + Schedule schedule = scheduleMapper.queryById(scheduleId); + + if (schedule == null) { + putMsg(result, Status.SCHEDULE_CRON_NOT_EXISTS, scheduleId); + return result; + } + // check schedule is already online + if(schedule.getReleaseState() == ReleaseState.ONLINE){ + putMsg(result, Status.SCHEDULE_CRON_STATE_ONLINE,schedule.getId()); + return result; + } + + + int delete = scheduleMapper.delete(scheduleId); + + if (delete > 0) { + putMsg(result, Status.SUCCESS); + } else { + putMsg(result, Status.DELETE_SCHEDULE_CRON_BY_ID_ERROR); + } + return result; + } } \ No newline at end of file