This is an automated email from the ASF dual-hosted git repository.

leonbao pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git


The following commit(s) were added to refs/heads/dev by this push:
     new 9d0b00c  [Fix-6139][API]fix envCode in task_definition and process 
switchVersion (#6231)
9d0b00c is described below

commit 9d0b00c1b7bc03756fd6c8c1456f9dbc0ef6f187
Author: JinyLeeChina <[email protected]>
AuthorDate: Thu Sep 16 19:37:42 2021 +0800

    [Fix-6139][API]fix envCode in task_definition and process switchVersion 
(#6231)
    
    * fix envCode in task_definition and process switchVersion
    
    * fix conflicts
    
    Co-authored-by: JinyLeeChina <[email protected]>
---
 .../service/impl/ProcessDefinitionServiceImpl.java |  4 +-
 .../dao/entity/TaskDefinition.java                 |  9 ++--
 .../dao/mapper/TaskDefinitionLogMapper.xml         |  8 ++--
 .../dao/mapper/TaskDefinitionMapper.xml            |  8 ++--
 .../service/process/ProcessService.java            | 51 ++++------------------
 5 files changed, 23 insertions(+), 57 deletions(-)

diff --git 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionServiceImpl.java
 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionServiceImpl.java
index eaec2e4..a8c5d67 100644
--- 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionServiceImpl.java
+++ 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionServiceImpl.java
@@ -1342,9 +1342,7 @@ public class ProcessDefinitionServiceImpl extends 
BaseServiceImpl implements Pro
             return result;
         }
 
-        ProcessDefinitionLog processDefinitionLog = processDefinitionLogMapper
-            .queryByDefinitionCodeAndVersion(code, version);
-
+        ProcessDefinitionLog processDefinitionLog = 
processDefinitionLogMapper.queryByDefinitionCodeAndVersion(code, version);
         if (Objects.isNull(processDefinitionLog)) {
             putMsg(result, 
Status.SWITCH_PROCESS_DEFINITION_VERSION_NOT_EXIST_PROCESS_DEFINITION_VERSION_ERROR,
 processDefinition.getCode(), version);
             return result;
diff --git 
a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/TaskDefinition.java
 
b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/TaskDefinition.java
index 2b27fc4..7da11a6 100644
--- 
a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/TaskDefinition.java
+++ 
b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/TaskDefinition.java
@@ -137,7 +137,7 @@ public class TaskDefinition {
     /**
      * environment code
      */
-    private Long environmentCode;
+    private long environmentCode;
 
     /**
      * fail retry times
@@ -424,11 +424,11 @@ public class TaskDefinition {
         this.modifyBy = modifyBy;
     }
 
-    public Long getEnvironmentCode() {
+    public long getEnvironmentCode() {
         return this.environmentCode;
     }
 
-    public void setEnvironmentCode(Long environmentCode) {
+    public void setEnvironmentCode(long environmentCode) {
         this.environmentCode = environmentCode;
     }
 
@@ -451,7 +451,8 @@ public class TaskDefinition {
             && Objects.equals(workerGroup, that.workerGroup)
             && timeoutFlag == that.timeoutFlag
             && timeoutNotifyStrategy == that.timeoutNotifyStrategy
-            && Objects.equals(resourceIds, that.resourceIds);
+            && Objects.equals(resourceIds, that.resourceIds)
+            && environmentCode == that.environmentCode;
     }
 
     @Override
diff --git 
a/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionLogMapper.xml
 
b/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionLogMapper.xml
index 685143b..dfaa346 100644
--- 
a/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionLogMapper.xml
+++ 
b/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionLogMapper.xml
@@ -56,10 +56,10 @@
         <foreach collection="taskDefinitionLogs" item="taskDefinitionLog" 
separator=",">
             
(#{taskDefinitionLog.code},#{taskDefinitionLog.name},#{taskDefinitionLog.version},#{taskDefinitionLog.description},
             
#{taskDefinitionLog.projectCode},#{taskDefinitionLog.userId},#{taskDefinitionLog.taskType},#{taskDefinitionLog.taskParams},
-            
#{taskDefinitionLog.flag},#{taskDefinitionLog.taskPriority},#{taskDefinitionLog.workerGroup},#{taskDefinitionLog.environmentCode},#{taskDefinitionLog.failRetryTimes},
-            
#{taskDefinitionLog.failRetryInterval},#{taskDefinitionLog.timeoutFlag},#{taskDefinitionLog.timeoutNotifyStrategy},#{taskDefinitionLog.timeout},
-            
#{taskDefinitionLog.delayTime},#{taskDefinitionLog.resourceIds},#{taskDefinitionLog.operator},#{taskDefinitionLog.operateTime},
-             #{taskDefinitionLog.createTime},#{taskDefinitionLog.updateTime})
+            
#{taskDefinitionLog.flag},#{taskDefinitionLog.taskPriority},#{taskDefinitionLog.workerGroup},#{taskDefinition.environmentCode},
+            
#{taskDefinitionLog.failRetryTimes},#{taskDefinitionLog.failRetryInterval},#{taskDefinitionLog.timeoutFlag},#{taskDefinitionLog.timeoutNotifyStrategy},
+            
#{taskDefinitionLog.timeout},#{taskDefinitionLog.delayTime},#{taskDefinitionLog.resourceIds},#{taskDefinitionLog.operator},#{taskDefinitionLog.operateTime},
+            #{taskDefinitionLog.createTime},#{taskDefinitionLog.updateTime})
         </foreach>
     </insert>
     <delete id="deleteByCodeAndVersion">
diff --git 
a/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionMapper.xml
 
b/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionMapper.xml
index 0cb11f8..2a5a438 100644
--- 
a/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionMapper.xml
+++ 
b/dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/TaskDefinitionMapper.xml
@@ -80,15 +80,15 @@
         values
         <foreach collection="taskDefinitions" item="taskDefinition" 
separator=",">
             
(#{taskDefinition.code},#{taskDefinition.name},#{taskDefinition.version},#{taskDefinition.description},
-            
#{taskDefinition.projectCode},#{taskDefinition.userId},#{taskDefinition.taskType},#{taskDefinition.taskParams},
-            
#{taskDefinition.flag},#{taskDefinition.taskPriority},#{taskDefinition.workerGroup},#{taskDefinition.environmentCode},#{taskDefinition.failRetryTimes},
+            
#{taskDefinition.projectCode},#{taskDefinition.userId},#{taskDefinition.taskType},#{taskDefinition.taskParams},#{taskDefinition.flag},
+            
#{taskDefinition.taskPriority},#{taskDefinition.workerGroup},#{taskDefinition.environmentCode},#{taskDefinition.failRetryTimes},
             
#{taskDefinition.failRetryInterval},#{taskDefinition.timeoutFlag},#{taskDefinition.timeoutNotifyStrategy},#{taskDefinition.timeout},
             
#{taskDefinition.delayTime},#{taskDefinition.resourceIds},#{taskDefinition.createTime},#{taskDefinition.updateTime})
         </foreach>
     </insert>
     <select id="queryDefineListPaging" 
resultType="org.apache.dolphinscheduler.dao.entity.TaskDefinition">
-        select td.id, td.code, td.name, td.version, td.description, 
td.project_code, td.user_id, td.task_type, td.task_params,
-        td.flag, td.task_priority, td.worker_group,td.environment_code, 
td.fail_retry_times, td.fail_retry_interval, td.timeout_flag, 
td.timeout_notify_strategy,
+        select td.id, td.code, td.name, td.version, td.description, 
td.project_code, td.user_id, td.task_type, td.task_params, td.flag,
+        td.task_priority, td.worker_group, td.environment_code, 
td.fail_retry_times, td.fail_retry_interval, td.timeout_flag, 
td.timeout_notify_strategy,
         td.timeout, td.delay_time, td.resource_ids, td.create_time, 
td.update_time, u.user_name,p.name as project_name
         from t_ds_task_definition td
         JOIN t_ds_user u ON td.user_id = u.id
diff --git 
a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessService.java
 
b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessService.java
index 5805b2d..2543308 100644
--- 
a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessService.java
+++ 
b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessService.java
@@ -2101,64 +2101,31 @@ public class ProcessService {
     /**
      * switch process definition version to process definition log version
      */
-    public int processDefinitionToDB(ProcessDefinition processDefinition, 
ProcessDefinitionLog processDefinitionLog, Boolean isFromProcessDefine) {
+    public int switchVersion(ProcessDefinition processDefinition, 
ProcessDefinitionLog processDefinitionLog) {
         if (null == processDefinition || null == processDefinitionLog) {
             return Constants.DEFINITION_FAILURE;
         }
-
         processDefinitionLog.setId(processDefinition.getId());
-        processDefinitionLog.setReleaseState(isFromProcessDefine ? 
ReleaseState.OFFLINE : ReleaseState.ONLINE);
+        processDefinitionLog.setReleaseState(ReleaseState.OFFLINE);
         processDefinitionLog.setFlag(Flag.YES);
 
-        int result;
-        if (0 == processDefinition.getId()) {
-            result = processDefineMapper.insert(processDefinitionLog);
-        } else {
-            result = processDefineMapper.updateById(processDefinitionLog);
+        int result = processDefineMapper.updateById(processDefinitionLog);
+        if (result > 0) {
+            result = switchProcessTaskRelationVersion(processDefinition);
+            if (result <= 0) {
+                return Constants.DEFINITION_FAILURE;
+            }
         }
         return result;
     }
 
-    /**
-     * switch process definition version to process definition log version
-     */
-    public int switchVersion(ProcessDefinition processDefinition, 
ProcessDefinitionLog processDefinitionLog) {
-        int switchResult = processDefinitionToDB(processDefinition, 
processDefinitionLog, true);
-        if (switchResult != Constants.DEFINITION_FAILURE) {
-            switchResult = switchProcessTaskRelationVersion(processDefinition);
-        }
-        return switchResult;
-    }
-
     public int switchProcessTaskRelationVersion(ProcessDefinition 
processDefinition) {
         List<ProcessTaskRelation> processTaskRelationList = 
processTaskRelationMapper.queryByProcessCode(processDefinition.getProjectCode(),
 processDefinition.getCode());
         if (!processTaskRelationList.isEmpty()) {
             
processTaskRelationMapper.deleteByCode(processDefinition.getProjectCode(), 
processDefinition.getCode());
         }
-        int result = 0;
         List<ProcessTaskRelationLog> processTaskRelationLogList = 
processTaskRelationLogMapper.queryByProcessCodeAndVersion(processDefinition.getCode(),
 processDefinition.getVersion());
-        for (ProcessTaskRelationLog processTaskRelationLog : 
processTaskRelationLogList) {
-            result += processTaskRelationMapper.insert(processTaskRelationLog);
-        }
-        return result;
-    }
-
-    private void setTaskFromTaskNode(TaskNode taskNode, TaskDefinition 
taskDefinition) {
-        taskDefinition.setName(taskNode.getName());
-        taskDefinition.setDescription(taskNode.getDesc());
-        taskDefinition.setTaskType(taskNode.getType().toUpperCase());
-        taskDefinition.setTaskParams(taskNode.getTaskParams());
-        taskDefinition.setFlag(taskNode.isForbidden() ? Flag.NO : Flag.YES);
-        taskDefinition.setTaskPriority(taskNode.getTaskInstancePriority());
-        taskDefinition.setWorkerGroup(taskNode.getWorkerGroup());
-        
taskDefinition.setEnvironmentCode(Objects.isNull(taskNode.getEnvironmentCode()) 
? -1 : taskNode.getEnvironmentCode());
-        taskDefinition.setFailRetryTimes(taskNode.getMaxRetryTimes());
-        taskDefinition.setFailRetryInterval(taskNode.getRetryInterval());
-        
taskDefinition.setTimeoutFlag(taskNode.getTaskTimeoutParameter().getEnable() ? 
TimeoutFlag.OPEN : TimeoutFlag.CLOSE);
-        
taskDefinition.setTimeoutNotifyStrategy(taskNode.getTaskTimeoutParameter().getStrategy());
-        
taskDefinition.setTimeout(taskNode.getTaskTimeoutParameter().getInterval());
-        taskDefinition.setDelayTime(taskNode.getDelayTime());
-        taskDefinition.setResourceIds(getResourceIds(taskDefinition));
+        return 
processTaskRelationMapper.batchInsert(processTaskRelationLogList);
     }
 
     /**

Reply via email to