Browse Source

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
Tboy 5 years ago
parent
commit
e52f12b19d

+ 23 - 43
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<String,Object> countTaskStateByProject(User loginUser, int projectId, String startDate, String endDate) {
 
         Map<String, Object> 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<String,Object> countProcessInstanceStateByProject(User loginUser, int projectId, String startDate, String endDate) {
 
         Map<String, Object> 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<String, Object> 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<String, Object> countCommandState(User loginUser, int projectId, String startDate, String endDate) {
 
         Map<String, Object> 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<String, Object> countQueueState(User loginUser, int projectId) {
         Map<String, Object> 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<String> tasksQueueList = tasksQueue.getAllTasks(org.apache.dolphinscheduler.common.Constants.DOLPHINSCHEDULER_TASKS_QUEUE);
-        List<String> tasksKillList = tasksQueue.getAllTasks(org.apache.dolphinscheduler.common.Constants.DOLPHINSCHEDULER_TASKS_KILL);
+        List<String> tasksQueueList = tasksQueue.getAllTasks(Constants.DOLPHINSCHEDULER_TASKS_QUEUE);
+        List<String> tasksKillList = tasksQueue.getAllTasks(Constants.DOLPHINSCHEDULER_TASKS_KILL);
 
         Map<String,Integer> 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<String, Object> result){
+        if(projectId != 0){
+            Project project = projectMapper.selectById(projectId);
+            return projectService.hasProjectAndPerm(loginUser, project, result);
+        }
+        return true;
+    }
 }