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

gaojun2048 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 c0fd5800 [FixBug][seatunnel-web]Fix delete datasource (#117)
c0fd5800 is described below

commit c0fd5800ad0981586b4856480a2e449b58f7d119
Author: fang <[email protected]>
AuthorDate: Thu Sep 14 10:38:26 2023 +0800

    [FixBug][seatunnel-web]Fix delete datasource (#117)
---
 .../app/controller/SeatunnelDatasourceController.java   | 17 -----------------
 .../app/service/impl/DatasourceServiceImpl.java         | 10 ++++++++++
 .../seatunnel/server/common/SeatunnelErrorEnum.java     |  4 ++--
 3 files changed, 12 insertions(+), 19 deletions(-)

diff --git 
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/controller/SeatunnelDatasourceController.java
 
b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/controller/SeatunnelDatasourceController.java
index 85aa5849..bb682312 100644
--- 
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/controller/SeatunnelDatasourceController.java
+++ 
b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/controller/SeatunnelDatasourceController.java
@@ -20,8 +20,6 @@ package org.apache.seatunnel.app.controller;
 import org.apache.seatunnel.app.common.Constants;
 import org.apache.seatunnel.app.common.Result;
 import org.apache.seatunnel.app.dal.dao.IUserDao;
-import org.apache.seatunnel.app.dal.dao.TaskDefinitionDao;
-import org.apache.seatunnel.app.dal.entity.TaskMainInfo;
 import org.apache.seatunnel.app.dal.entity.User;
 import org.apache.seatunnel.app.domain.dto.datasource.DatabaseTableFields;
 import org.apache.seatunnel.app.domain.dto.datasource.DatabaseTables;
@@ -77,8 +75,6 @@ public class SeatunnelDatasourceController extends 
BaseController {
 
     @Autowired private IDatasourceService datasourceService;
 
-    @Autowired private TaskDefinitionDao taskDefinitionDao;
-
     @Resource(name = "userDaoImpl")
     private IUserDao userMapper;
 
@@ -203,19 +199,6 @@ public class SeatunnelDatasourceController extends 
BaseController {
             @ApiIgnore @RequestAttribute(value = SESSION_USER) User loginUser,
             @PathVariable("id") String id) {
         Long datasourceId = Long.parseLong(id);
-        List<TaskMainInfo> taskMainInfos = 
taskDefinitionDao.queryByDataSourceId(datasourceId);
-        if (taskMainInfos.size() > 0) {
-            throw new SeatunnelException(
-                    SeatunnelErrorEnum.DATA_SOURCE_HAD_USED,
-                    taskMainInfos.stream()
-                            .map(
-                                    info ->
-                                            String.format(
-                                                    "%s - %s",
-                                                    
info.getProcessDefinitionName(),
-                                                    info.getTaskName()))
-                            .collect(Collectors.toList()));
-        }
         return 
Result.success(datasourceService.deleteDatasource(loginUser.getId(), 
datasourceId));
     }
 
diff --git 
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/DatasourceServiceImpl.java
 
b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/DatasourceServiceImpl.java
index 6f4cfd60..4e290fc0 100644
--- 
a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/DatasourceServiceImpl.java
+++ 
b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/DatasourceServiceImpl.java
@@ -20,8 +20,10 @@ package org.apache.seatunnel.app.service.impl;
 import org.apache.seatunnel.api.configuration.util.OptionRule;
 import org.apache.seatunnel.app.config.ConnectorDataSourceMapperConfig;
 import org.apache.seatunnel.app.dal.dao.IDatasourceDao;
+import org.apache.seatunnel.app.dal.dao.IJobTaskDao;
 import org.apache.seatunnel.app.dal.dao.IVirtualTableDao;
 import org.apache.seatunnel.app.dal.entity.Datasource;
+import org.apache.seatunnel.app.dal.entity.JobTask;
 import org.apache.seatunnel.app.dal.entity.VirtualTable;
 import org.apache.seatunnel.app.domain.response.PageInfo;
 import org.apache.seatunnel.app.domain.response.datasource.DatasourceDetailRes;
@@ -81,6 +83,9 @@ public class DatasourceServiceImpl extends 
SeatunnelBaseServiceImpl
 
     @Resource private IJobDefinitionService jobDefinitionService;
 
+    @Resource(name = "jobTaskDaoImpl")
+    private IJobTaskDao jobTaskDao;
+
     @Autowired
     @Qualifier("virtualTableDaoImpl") private IVirtualTableDao virtualTableDao;
 
@@ -180,6 +185,11 @@ public class DatasourceServiceImpl extends 
SeatunnelBaseServiceImpl
                 SeatunnelResourcePermissionModuleEnum.DATASOURCE.name(),
                 Collections.singletonList(datasourceId),
                 userId);
+        // check has job task has used this datasource
+        List<JobTask> jobTaskList = 
jobTaskDao.getJobTaskByDataSourceId(datasourceId);
+        if (!CollectionUtils.isEmpty(jobTaskList)) {
+            throw new 
SeatunnelException(SeatunnelErrorEnum.DATA_SOURCE_HAD_USED);
+        }
         // check has virtual table has used this datasource
         List<String> virtualDatabaseNames = 
virtualTableDao.getVirtualDatabaseNames(datasourceId);
         if (!CollectionUtils.isEmpty(virtualDatabaseNames)) {
diff --git 
a/seatunnel-server/seatunnel-server-common/src/main/java/org/apache/seatunnel/server/common/SeatunnelErrorEnum.java
 
b/seatunnel-server/seatunnel-server-common/src/main/java/org/apache/seatunnel/server/common/SeatunnelErrorEnum.java
index 9f1bffa2..d6636240 100644
--- 
a/seatunnel-server/seatunnel-server-common/src/main/java/org/apache/seatunnel/server/common/SeatunnelErrorEnum.java
+++ 
b/seatunnel-server/seatunnel-server-common/src/main/java/org/apache/seatunnel/server/common/SeatunnelErrorEnum.java
@@ -122,8 +122,8 @@ public enum SeatunnelErrorEnum {
             "can not found connector for datasource [%s]"),
     DATA_SOURCE_HAD_USED(
             1600000,
-            "data source already used ( workflowName - taskName):{0}",
-            "datasource is using:{0}"),
+            "datasource can not be delete because it used by task",
+            "datasource can not be delete because it used by task"),
     INVALID_DATASOURCE(-70001, "Datasource [{0}] invalid", "datasource [{0}] 
invalid"),
     MISSING_PARAM(1777000, "param miss [{0}]", "param miss [{0}]"),
     ;

Reply via email to