From e52f12b19d65b164b2c18cad04be7c0e0aeea678 Mon Sep 17 00:00:00 2001 From: Tboy Date: Mon, 28 Oct 2019 10:07:43 +0800 Subject: [PATCH] using checkProject instead of getResultStatus in DataAnalysisService class (#1099) * move updateTaskState into try/catch block in case of exception * fix NPE * using conf.getInt instead of getString * for AbstractZKClient, remove the log, for it will print the same log message in createZNodePath. for AlertDao, correct the spelling. * duplicate * refactor getTaskWorkerGroupId * add friendly log * update hearbeat thread num = 1 * fix the bug when worker execute task using queue. and remove checking Tenant user anymore in TaskScheduleThread * 1. move verifyTaskInstanceIsNull after taskInstance 2. keep verifyTenantIsNull/verifyTaskInstanceIsNull clean and readable * fix the message * delete before check to avoid KeeperException$NoNodeException * fix the message * check processInstance state before delete tenant * check processInstance state before delete worker group * refactor * merge api constants into common constatns * update the resource perm * update the dataSource perm * fix CheckUtils.checkUserParams method * update AlertGroupService, extends from BaseService, remove duplicate methods * refactor * modify method name * add hasProjectAndPerm method * using checkProject instead of getResultStatus --- .../api/service/DataAnalysisService.java | 66 +++++++------------ 1 file changed, 23 insertions(+), 43 deletions(-) diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/DataAnalysisService.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/DataAnalysisService.java index 1f97f493ab..e8e6939747 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/DataAnalysisService.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/DataAnalysisService.java @@ -43,7 +43,7 @@ import java.util.*; * data analysis service */ @Service -public class DataAnalysisService { +public class DataAnalysisService extends BaseService{ private static final Logger logger = LoggerFactory.getLogger(DataAnalysisService.class); @@ -83,13 +83,9 @@ public class DataAnalysisService { public Map countTaskStateByProject(User loginUser, int projectId, String startDate, String endDate) { Map result = new HashMap<>(5); - if(projectId != 0){ - Project project = projectMapper.selectById(projectId); - result = projectService.checkProjectAndAuth(loginUser, project, String.valueOf(projectId)); - - if (getResultStatus(result)){ - return result; - } + boolean checkProject = checkProject(loginUser, projectId, result); + if(!checkProject){ + return result; } /** @@ -139,13 +135,9 @@ public class DataAnalysisService { public Map countProcessInstanceStateByProject(User loginUser, int projectId, String startDate, String endDate) { Map result = new HashMap<>(5); - if(projectId != 0){ - Project project = projectMapper.selectById(projectId); - result = projectService.checkProjectAndAuth(loginUser, project, String.valueOf(projectId)); - - if (getResultStatus(result)){ - return result; - } + boolean checkProject = checkProject(loginUser, projectId, result); + if(!checkProject){ + return result; } Date start = null; @@ -205,19 +197,6 @@ public class DataAnalysisService { result.put(Constants.MSG, status.getMsg()); } - /** - * get result status - * @param result - * @return - */ - private boolean getResultStatus(Map result) { - Status resultEnum = (Status) result.get(Constants.STATUS); - if (resultEnum != Status.SUCCESS) { - return true; - } - return false; - } - /** * statistical command status data * @@ -230,13 +209,9 @@ public class DataAnalysisService { public Map countCommandState(User loginUser, int projectId, String startDate, String endDate) { Map result = new HashMap<>(5); - if(projectId != 0){ - Project project = projectMapper.selectById(projectId); - result = projectService.checkProjectAndAuth(loginUser, project, String.valueOf(projectId)); - - if (getResultStatus(result)){ - return result; - } + boolean checkProject = checkProject(loginUser, projectId, result); + if(!checkProject){ + return result; } /** @@ -346,18 +321,15 @@ public class DataAnalysisService { */ public Map countQueueState(User loginUser, int projectId) { Map result = new HashMap<>(5); - if(projectId != 0){ - Project project = projectMapper.selectById(projectId); - result = projectService.checkProjectAndAuth(loginUser, project, String.valueOf(projectId)); - if (getResultStatus(result)){ - return result; - } + boolean checkProject = checkProject(loginUser, projectId, result); + if(!checkProject){ + return result; } ITaskQueue tasksQueue = TaskQueueFactory.getTaskQueueInstance(); - List tasksQueueList = tasksQueue.getAllTasks(org.apache.dolphinscheduler.common.Constants.DOLPHINSCHEDULER_TASKS_QUEUE); - List tasksKillList = tasksQueue.getAllTasks(org.apache.dolphinscheduler.common.Constants.DOLPHINSCHEDULER_TASKS_KILL); + List tasksQueueList = tasksQueue.getAllTasks(Constants.DOLPHINSCHEDULER_TASKS_QUEUE); + List tasksKillList = tasksQueue.getAllTasks(Constants.DOLPHINSCHEDULER_TASKS_KILL); Map dataMap = new HashMap<>(); if (loginUser.getUserType() == UserType.ADMIN_USER){ @@ -412,4 +384,12 @@ public class DataAnalysisService { putMsg(result, Status.SUCCESS); return result; } + + private boolean checkProject(User loginUser, int projectId, Map result){ + if(projectId != 0){ + Project project = projectMapper.selectById(projectId); + return projectService.hasProjectAndPerm(loginUser, project, result); + } + return true; + } }