This is an automated email from the ASF dual-hosted git repository.
fanjia pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/seatunnel-web.git
The following commit(s) were added to refs/heads/main by this push:
new 36c85cc4 [Bug][Seatunnel-web] Task instance filter is not working as
expected (#204)
36c85cc4 is described below
commit 36c85cc4884cb6015eaaeb4f4e88d26f1e3d2080
Author: Mohammad Arshad <[email protected]>
AuthorDate: Thu Sep 5 11:49:59 2024 +0530
[Bug][Seatunnel-web] Task instance filter is not working as expected (#204)
---
pom.xml | 2 +-
.../app/controller/TaskInstanceController.java | 2 +-
.../seatunnel/app/dal/dao/IJobInstanceDao.java | 2 +-
.../app/dal/dao/impl/JobInstanceDaoImpl.java | 4 ++--
.../app/dal/mapper/JobInstanceMapper.java | 2 +-
.../app/service/impl/TaskInstanceServiceImpl.java | 26 ++++++----------------
.../seatunnel/app/dal/mapper/JobInstanceMapper.xml | 4 ++--
.../controller/TaskInstanceControllerWrapper.java | 13 +++++------
.../app/test/TaskInstanceControllerTest.java | 20 +++++++++++++----
tools/dependencies/known-dependencies.txt | 4 ++--
10 files changed, 39 insertions(+), 40 deletions(-)
diff --git a/pom.xml b/pom.xml
index e0df3bf2..e784d668 100644
--- a/pom.xml
+++ b/pom.xml
@@ -105,7 +105,7 @@
<hadoop-aws.version>3.1.4</hadoop-aws.version>
<aws-java-sdk-bundle.version>1.11.271</aws-java-sdk-bundle.version>
<spotless.version>2.29.0</spotless.version>
- <logback.version>1.5.7</logback.version>
+ <logback.version>1.2.3</logback.version>
<log4j2.version>2.17.1</log4j2.version>
<commons-logging.version>1.2</commons-logging.version>
<log4j.version>1.2.17</log4j.version>
diff --git
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/controller/TaskInstanceController.java
b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/controller/TaskInstanceController.java
index cdcd35a2..f459c2d4 100644
---
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/controller/TaskInstanceController.java
+++
b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/controller/TaskInstanceController.java
@@ -41,7 +41,7 @@ public class TaskInstanceController {
@ApiOperation(value = "get the jobMetrics list ", httpMethod = "GET")
public Result<PageInfo<SeaTunnelJobInstanceDto>> getTaskInstanceList(
@RequestAttribute(name = "userId") Integer userId,
- @RequestParam(name = "jobDefineName", required = false) String
jobDefineName,
+ @RequestParam(name = "taskName", required = false) String
jobDefineName,
@RequestParam(name = "executorName", required = false) String
executorName,
@RequestParam(name = "stateType", required = false) String
stateType,
@RequestParam(name = "startDate", required = false) String
startTime,
diff --git
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/dal/dao/IJobInstanceDao.java
b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/dal/dao/IJobInstanceDao.java
index ad0db611..d52951cf 100644
---
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/dal/dao/IJobInstanceDao.java
+++
b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/dal/dao/IJobInstanceDao.java
@@ -43,7 +43,7 @@ public interface IJobInstanceDao {
IPage<JobInstance> page,
Date startTime,
Date endTime,
- Long jobDefineId,
+ String jobDefineId,
String jobMode);
List<JobInstance> getAllJobInstance(@NonNull List<Long> jobInstanceIdList);
diff --git
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/dal/dao/impl/JobInstanceDaoImpl.java
b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/dal/dao/impl/JobInstanceDaoImpl.java
index c296a635..5600dd4d 100644
---
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/dal/dao/impl/JobInstanceDaoImpl.java
+++
b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/dal/dao/impl/JobInstanceDaoImpl.java
@@ -70,11 +70,11 @@ public class JobInstanceDaoImpl implements IJobInstanceDao {
IPage<JobInstance> page,
Date startTime,
Date endTime,
- Long jobDefineId,
+ String jobDefineName,
String jobMode) {
IPage<SeaTunnelJobInstanceDto> jobInstanceIPage =
jobInstanceMapper.queryJobInstanceListPaging(
- page, startTime, endTime, jobDefineId, jobMode);
+ page, startTime, endTime, jobDefineName, jobMode);
return jobInstanceIPage;
}
diff --git
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/dal/mapper/JobInstanceMapper.java
b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/dal/mapper/JobInstanceMapper.java
index 53b60a40..b168995c 100644
---
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/dal/mapper/JobInstanceMapper.java
+++
b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/dal/mapper/JobInstanceMapper.java
@@ -35,7 +35,7 @@ public interface JobInstanceMapper extends
BaseMapper<JobInstance> {
IPage<JobInstance> page,
@Param("startTime") Date startTime,
@Param("endTime") Date endTime,
- @Param("jobDefineId") Long jobDefineId,
+ @Param("jobDefineName") String jobDefineName,
@Param("jobMode") String jobMode);
JobInstance getJobExecutionStatus(@Param("jobInstanceId") Long
jobInstanceId);
diff --git
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/TaskInstanceServiceImpl.java
b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/TaskInstanceServiceImpl.java
index 1e17ebaa..05bc071c 100644
---
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/TaskInstanceServiceImpl.java
+++
b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/TaskInstanceServiceImpl.java
@@ -76,12 +76,6 @@ public class TaskInstanceServiceImpl implements
ITaskInstanceService<SeaTunnelJo
String syncTaskType,
Integer pageNo,
Integer pageSize) {
- JobDefinition jobDefinition = null;
- IPage<SeaTunnelJobInstanceDto> jobInstanceIPage;
- if (jobDefineName != null) {
- jobDefinition = jobDefinitionDao.getJobByName(jobDefineName);
- }
-
Result<PageInfo<SeaTunnelJobInstanceDto>> result = new Result<>();
PageInfo<SeaTunnelJobInstanceDto> pageInfo = new PageInfo<>(pageNo,
pageSize);
result.setData(pageInfo);
@@ -90,19 +84,13 @@ public class TaskInstanceServiceImpl implements
ITaskInstanceService<SeaTunnelJo
Date startDate = dateConverter(startTime);
Date endDate = dateConverter(endTime);
- if (jobDefinition != null) {
- jobInstanceIPage =
- jobInstanceDao.queryJobInstanceListPaging(
- new Page<>(pageNo, pageSize),
- startDate,
- endDate,
- jobDefinition.getId(),
- syncTaskType);
- } else {
- jobInstanceIPage =
- jobInstanceDao.queryJobInstanceListPaging(
- new Page<>(pageNo, pageSize), startDate, endDate,
null, syncTaskType);
- }
+ IPage<SeaTunnelJobInstanceDto> jobInstanceIPage =
+ jobInstanceDao.queryJobInstanceListPaging(
+ new Page<>(pageNo, pageSize),
+ startDate,
+ endDate,
+ jobDefineName,
+ syncTaskType);
List<SeaTunnelJobInstanceDto> records = jobInstanceIPage.getRecords();
if (CollectionUtils.isEmpty(records)) {
diff --git
a/seatunnel-server/seatunnel-app/src/main/resources/org/apache/seatunnel/app/dal/mapper/JobInstanceMapper.xml
b/seatunnel-server/seatunnel-app/src/main/resources/org/apache/seatunnel/app/dal/mapper/JobInstanceMapper.xml
index 55c44037..3862c798 100644
---
a/seatunnel-server/seatunnel-app/src/main/resources/org/apache/seatunnel/app/dal/mapper/JobInstanceMapper.xml
+++
b/seatunnel-server/seatunnel-app/src/main/resources/org/apache/seatunnel/app/dal/mapper/JobInstanceMapper.xml
@@ -44,8 +44,8 @@
<if test="endTime != null">
AND (end_time <![CDATA[ <=]]> #{endTime} or end_time is null)
</if>
- <if test="jobDefineId != null">
- AND job_define_id = #{jobDefineId}
+ <if test="jobDefineName != null">
+ AND job_define_id in (select x.id from t_st_job_definition x
where x.name LIKE concat('%', #{jobDefineName}, '%'))
</if>
<if test="jobMode != null">
AND job_type = #{jobMode}
diff --git
a/seatunnel-web-it/src/test/java/org/apache/seatunnel/app/controller/TaskInstanceControllerWrapper.java
b/seatunnel-web-it/src/test/java/org/apache/seatunnel/app/controller/TaskInstanceControllerWrapper.java
index 41cece13..d07a06a5 100644
---
a/seatunnel-web-it/src/test/java/org/apache/seatunnel/app/controller/TaskInstanceControllerWrapper.java
+++
b/seatunnel-web-it/src/test/java/org/apache/seatunnel/app/controller/TaskInstanceControllerWrapper.java
@@ -28,8 +28,8 @@ import com.fasterxml.jackson.core.type.TypeReference;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Date;
+import java.util.List;
-import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
public class TaskInstanceControllerWrapper extends SeatunnelWebTestingBase {
@@ -37,7 +37,7 @@ public class TaskInstanceControllerWrapper extends
SeatunnelWebTestingBase {
private static SimpleDateFormat dateFormat = new
SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public Result<PageInfo<SeaTunnelJobInstanceDto>> getTaskInstanceList(
- String jobDefineName,
+ String taskName,
String executorName,
String stateType,
String startTime,
@@ -48,8 +48,8 @@ public class TaskInstanceControllerWrapper extends
SeatunnelWebTestingBase {
String response =
sendRequest(
urlWithParam(
- "task/jobMetrics?jobDefineName="
- + jobDefineName
+ "task/jobMetrics?taskName="
+ + taskName
+ "&executorName="
+ executorName
+ "&stateType="
@@ -68,7 +68,7 @@ public class TaskInstanceControllerWrapper extends
SeatunnelWebTestingBase {
response, new
TypeReference<Result<PageInfo<SeaTunnelJobInstanceDto>>>() {});
}
- public SeaTunnelJobInstanceDto getTaskInstanceList(String jobDefineName) {
+ public List<SeaTunnelJobInstanceDto> getTaskInstanceList(String
jobDefineName) {
String startTime =
URLEncoder.encode(
dateFormat.format(
@@ -94,7 +94,6 @@ public class TaskInstanceControllerWrapper extends
SeatunnelWebTestingBase {
if (result.getData().getTotalList().isEmpty()) {
return null;
}
- assertEquals(1, result.getData().getTotalList().size());
- return result.getData().getTotalList().get(0);
+ return result.getData().getTotalList();
}
}
diff --git
a/seatunnel-web-it/src/test/java/org/apache/seatunnel/app/test/TaskInstanceControllerTest.java
b/seatunnel-web-it/src/test/java/org/apache/seatunnel/app/test/TaskInstanceControllerTest.java
index c227fc7d..485e07cc 100644
---
a/seatunnel-web-it/src/test/java/org/apache/seatunnel/app/test/TaskInstanceControllerTest.java
+++
b/seatunnel-web-it/src/test/java/org/apache/seatunnel/app/test/TaskInstanceControllerTest.java
@@ -34,6 +34,7 @@ import java.util.List;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
public class TaskInstanceControllerTest extends SeatunnelWebTestingBase {
@@ -53,6 +54,21 @@ public class TaskInstanceControllerTest extends
SeatunnelWebTestingBase {
@Test
public void getTaskInstanceList_shouldReturnData_whenValidRequest() {
String jobName = "getTaskInstance" + uniqueId;
+ extractedJob1(jobName);
+ String jobName2 = "getTaskInstance" + uniqueId + "_2";
+ extractedJob1(jobName2);
+
+ List<SeaTunnelJobInstanceDto> taskInstanceList =
+ taskInstanceControllerWrapper.getTaskInstanceList(jobName);
+ assertNotNull(taskInstanceList);
+ assertEquals(2, taskInstanceList.size());
+
+ taskInstanceList =
+
taskInstanceControllerWrapper.getTaskInstanceList("name_which_matches_no_job");
+ assertNull(taskInstanceList);
+ }
+
+ private static void extractedJob1(String jobName) {
long jobVersionId = JobTestingUtils.createJob(jobName);
Result<Long> execuitonResult =
jobExecutorControllerWrapper.jobExecutor(jobVersionId);
assertTrue(execuitonResult.isSuccess());
@@ -60,10 +76,6 @@ public class TaskInstanceControllerTest extends
SeatunnelWebTestingBase {
JobTestingUtils.waitForJobCompletion(execuitonResult.getData());
assertEquals(1, listResult.getData().size());
assertEquals("FINISHED", listResult.getData().get(0).getStatus());
-
- SeaTunnelJobInstanceDto taskInstanceList =
- taskInstanceControllerWrapper.getTaskInstanceList(jobName);
- assertNotNull(taskInstanceList);
}
@AfterAll
diff --git a/tools/dependencies/known-dependencies.txt
b/tools/dependencies/known-dependencies.txt
index 28e6b0b2..c6a0d02f 100644
--- a/tools/dependencies/known-dependencies.txt
+++ b/tools/dependencies/known-dependencies.txt
@@ -106,8 +106,8 @@ jcommander-1.81.jar
log4j-api-2.17.1.jar
log4j-over-slf4j-1.7.36.jar
log4j-to-slf4j-2.17.1.jar
-logback-classic-1.5.7.jar
-logback-core-1.5.7.jar
+logback-classic-1.2.3.jar
+logback-core-1.2.3.jar
protostuff-api-1.8.0.jar
protostuff-collectionschema-1.8.0.jar
protostuff-core-1.8.0.jar