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);
}
/**