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}]"),
;