This is an automated email from the ASF dual-hosted git repository.
dockerzhang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/inlong.git
The following commit(s) were added to refs/heads/master by this push:
new 0810d14a8 [INLONG-7429][Manager] Fix the information returned when
deleting a non-existent object #7432
0810d14a8 is described below
commit 0810d14a83b9ca8a386580607dbfdacd01181df6
Author: fuweng11 <[email protected]>
AuthorDate: Sat Feb 25 17:07:56 2023 +0800
[INLONG-7429][Manager] Fix the information returned when deleting a
non-existent object #7432
---
.../resources/mappers/DataNodeEntityMapper.xml | 3 ++-
.../mappers/InlongClusterEntityMapper.xml | 3 ++-
.../mappers/InlongClusterNodeEntityMapper.xml | 3 ++-
.../service/cluster/InlongClusterServiceImpl.java | 28 ++++++++--------------
.../service/group/InlongGroupProcessService.java | 5 +---
.../manager/service/node/DataNodeServiceImpl.java | 19 +++++----------
.../service/source/StreamSourceServiceImpl.java | 9 +++----
.../web/controller/DataNodeControllerTest.java | 4 ++--
8 files changed, 30 insertions(+), 44 deletions(-)
diff --git
a/inlong-manager/manager-dao/src/main/resources/mappers/DataNodeEntityMapper.xml
b/inlong-manager/manager-dao/src/main/resources/mappers/DataNodeEntityMapper.xml
index 7a379389d..365c69cdb 100644
---
a/inlong-manager/manager-dao/src/main/resources/mappers/DataNodeEntityMapper.xml
+++
b/inlong-manager/manager-dao/src/main/resources/mappers/DataNodeEntityMapper.xml
@@ -59,7 +59,8 @@
select
<include refid="Base_Column_List"/>
from data_node
- where id = #{id, jdbcType=INTEGER}
+ where is_deleted = 0
+ and id = #{id, jdbcType=INTEGER}
</select>
<select id="selectByUniqueKey"
resultType="org.apache.inlong.manager.dao.entity.DataNodeEntity">
select
diff --git
a/inlong-manager/manager-dao/src/main/resources/mappers/InlongClusterEntityMapper.xml
b/inlong-manager/manager-dao/src/main/resources/mappers/InlongClusterEntityMapper.xml
index 69be71a65..d86aa4336 100644
---
a/inlong-manager/manager-dao/src/main/resources/mappers/InlongClusterEntityMapper.xml
+++
b/inlong-manager/manager-dao/src/main/resources/mappers/InlongClusterEntityMapper.xml
@@ -85,7 +85,8 @@
select
<include refid="Base_Column_List"/>
from inlong_cluster
- where id = #{id,jdbcType=INTEGER}
+ where is_deleted = 0
+ and id = #{id,jdbcType=INTEGER}
</select>
<select id="selectByKey"
resultType="org.apache.inlong.manager.dao.entity.InlongClusterEntity">
select
diff --git
a/inlong-manager/manager-dao/src/main/resources/mappers/InlongClusterNodeEntityMapper.xml
b/inlong-manager/manager-dao/src/main/resources/mappers/InlongClusterNodeEntityMapper.xml
index d080dc6bc..2dd8b216f 100644
---
a/inlong-manager/manager-dao/src/main/resources/mappers/InlongClusterNodeEntityMapper.xml
+++
b/inlong-manager/manager-dao/src/main/resources/mappers/InlongClusterNodeEntityMapper.xml
@@ -77,7 +77,8 @@
select
<include refid="Base_Column_List"/>
from inlong_cluster_node
- where id = #{id,jdbcType=INTEGER}
+ where is_deleted = 0
+ and id = #{id,jdbcType=INTEGER}
</select>
<select id="selectByUniqueKey"
parameterType="org.apache.inlong.manager.pojo.cluster.ClusterRequest"
resultType="org.apache.inlong.manager.dao.entity.InlongClusterNodeEntity">
diff --git
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/cluster/InlongClusterServiceImpl.java
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/cluster/InlongClusterServiceImpl.java
index 873054cb2..cd59af1c4 100644
---
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/cluster/InlongClusterServiceImpl.java
+++
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/cluster/InlongClusterServiceImpl.java
@@ -801,10 +801,8 @@ public class InlongClusterServiceImpl implements
InlongClusterService {
public Boolean delete(Integer id, String operator) {
Preconditions.expectNotNull(id, "cluster id cannot be empty");
InlongClusterEntity entity = clusterMapper.selectById(id);
- if (entity == null || entity.getIsDeleted() >
InlongConstants.UN_DELETED) {
- LOGGER.error("inlong cluster not found by id={}, or was already
deleted", id);
- return false;
- }
+ Preconditions.expectNotNull(entity, ErrorCodeEnum.CLUSTER_NOT_FOUND,
+ ErrorCodeEnum.CLUSTER_NOT_FOUND.getMessage());
String message = "Current user does not have permission to delete
cluster info";
checkUser(entity, operator, message);
@@ -829,9 +827,9 @@ public class InlongClusterServiceImpl implements
InlongClusterService {
@Override
public Boolean delete(Integer id, UserInfo opInfo) {
InlongClusterEntity entity = clusterMapper.selectById(id);
- if (entity == null || entity.getIsDeleted() >
InlongConstants.UN_DELETED) {
- return true;
- }
+ Preconditions.expectNotNull(entity, ErrorCodeEnum.CLUSTER_NOT_FOUND,
+ ErrorCodeEnum.CONSUME_NOT_FOUND.getMessage());
+
// only the person in charges can query
if (!opInfo.getAccountType().equals(UserTypeEnum.ADMIN.getCode())) {
List<String> inCharges =
Arrays.asList(entity.getInCharges().split(InlongConstants.COMMA));
@@ -877,10 +875,8 @@ public class InlongClusterServiceImpl implements
InlongClusterService {
public Integer saveNode(ClusterNodeRequest request, UserInfo opInfo) {
// check cluster info
InlongClusterEntity entity =
clusterMapper.selectById(request.getParentId());
- if (entity == null || entity.getIsDeleted() >
InlongConstants.UN_DELETED) {
- throw new BusinessException(ErrorCodeEnum.CLUSTER_NOT_FOUND,
- String.format("inlong cluster not found by id=%s, or was
already deleted", request.getParentId()));
- }
+ Preconditions.expectNotNull(entity, ErrorCodeEnum.CLUSTER_NOT_FOUND,
+ String.format("inlong cluster not found by id=%s, or was
already deleted", request.getParentId()));
// only the person in charges can query
if (!opInfo.getAccountType().equals(UserTypeEnum.ADMIN.getCode())) {
List<String> inCharges =
Arrays.asList(entity.getInCharges().split(InlongConstants.COMMA));
@@ -1170,10 +1166,8 @@ public class InlongClusterServiceImpl implements
InlongClusterService {
public Boolean deleteNode(Integer id, String operator) {
Preconditions.expectNotNull(id, "cluster node id cannot be empty");
InlongClusterNodeEntity entity = clusterNodeMapper.selectById(id);
- if (entity == null || entity.getIsDeleted() >
InlongConstants.UN_DELETED) {
- LOGGER.error("inlong cluster node not found by id={}", id);
- return false;
- }
+ Preconditions.expectNotNull(entity, ErrorCodeEnum.CLUSTER_NOT_FOUND);
+
InlongClusterEntity cluster =
clusterMapper.selectById(entity.getParentId());
String message = "Current user does not have permission to delete
cluster node";
checkUser(cluster, operator, message);
@@ -1192,9 +1186,7 @@ public class InlongClusterServiceImpl implements
InlongClusterService {
@Override
public Boolean deleteNode(Integer id, UserInfo opInfo) {
InlongClusterNodeEntity entity = clusterNodeMapper.selectById(id);
- if (entity == null || entity.getIsDeleted() >
InlongConstants.UN_DELETED) {
- return true;
- }
+ Preconditions.expectNotNull(entity, ErrorCodeEnum.CLUSTER_NOT_FOUND);
InlongClusterEntity cluster =
clusterMapper.selectById(entity.getParentId());
// only the person in charges can query
if (!opInfo.getAccountType().equals(UserTypeEnum.ADMIN.getCode())) {
diff --git
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupProcessService.java
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupProcessService.java
index c621c51b2..1c036949b 100644
---
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupProcessService.java
+++
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupProcessService.java
@@ -18,7 +18,6 @@
package org.apache.inlong.manager.service.group;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
-
import org.apache.inlong.manager.common.consts.InlongConstants;
import org.apache.inlong.manager.common.enums.ErrorCodeEnum;
import org.apache.inlong.manager.common.enums.GroupOperateType;
@@ -233,9 +232,7 @@ public class InlongGroupProcessService {
*/
public Boolean deleteProcess(String groupId, UserInfo opInfo) {
InlongGroupEntity entity = groupMapper.selectByGroupId(groupId);
- if (entity == null) {
- return true;
- }
+ Preconditions.expectNotNull(entity, ErrorCodeEnum.GROUP_NOT_FOUND,
ErrorCodeEnum.GROUP_NOT_FOUND.getMessage());
// only the person in charges can delete
if (!opInfo.getAccountType().equals(UserTypeEnum.ADMIN.getCode())) {
List<String> inCharges =
Arrays.asList(entity.getInCharges().split(InlongConstants.COMMA));
diff --git
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/node/DataNodeServiceImpl.java
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/node/DataNodeServiceImpl.java
index d7018dbf2..c21f0a7c5 100644
---
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/node/DataNodeServiceImpl.java
+++
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/node/DataNodeServiceImpl.java
@@ -19,7 +19,6 @@ package org.apache.inlong.manager.service.node;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
-
import org.apache.commons.lang3.StringUtils;
import org.apache.inlong.manager.common.consts.InlongConstants;
import org.apache.inlong.manager.common.enums.ErrorCodeEnum;
@@ -260,11 +259,8 @@ public class DataNodeServiceImpl implements
DataNodeService {
@Override
public Boolean delete(Integer id, String operator) {
DataNodeEntity entity = dataNodeMapper.selectById(id);
- if (entity == null || entity.getIsDeleted() >
InlongConstants.UN_DELETED) {
- LOGGER.error("data node not found or was already deleted for
id={}", id);
- return false;
- }
-
+ Preconditions.expectNotNull(entity, ErrorCodeEnum.DATA_NODE_NOT_FOUND,
+ ErrorCodeEnum.DATA_NODE_NOT_FOUND.getMessage());
return delete(entity, operator);
}
@@ -275,9 +271,8 @@ public class DataNodeServiceImpl implements DataNodeService
{
throw new BusinessException(ErrorCodeEnum.PERMISSION_REQUIRED);
}
DataNodeEntity entity = dataNodeMapper.selectById(id);
- if (entity == null || entity.getIsDeleted() >
InlongConstants.UN_DELETED) {
- return true;
- }
+ Preconditions.expectNotNull(entity, ErrorCodeEnum.DATA_NODE_NOT_FOUND,
+ ErrorCodeEnum.DATA_NODE_NOT_FOUND.getMessage());
// delete record
entity.setIsDeleted(entity.getId());
entity.setModifier(opInfo.getName());
@@ -317,10 +312,8 @@ public class DataNodeServiceImpl implements
DataNodeService {
@Override
public Boolean deleteByKey(String name, String type, String operator) {
DataNodeEntity entity = dataNodeMapper.selectByUniqueKey(name, type);
- if (entity == null || entity.getIsDeleted() >
InlongConstants.UN_DELETED) {
- LOGGER.error("data node not found or was already deleted for
name={}", name);
- return false;
- }
+ Preconditions.expectNotNull(entity, ErrorCodeEnum.DATA_NODE_NOT_FOUND,
+ ErrorCodeEnum.DATA_NODE_NOT_FOUND.getMessage());
return delete(entity, operator);
}
diff --git
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/source/StreamSourceServiceImpl.java
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/source/StreamSourceServiceImpl.java
index 63ea2db2d..5dc8b0c4e 100644
---
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/source/StreamSourceServiceImpl.java
+++
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/source/StreamSourceServiceImpl.java
@@ -404,7 +404,8 @@ public class StreamSourceServiceImpl implements
StreamSourceService {
Preconditions.expectNotNull(id,
ErrorCodeEnum.ID_IS_EMPTY.getMessage());
StreamSourceEntity entity = sourceMapper.selectByIdForUpdate(id);
- Preconditions.expectNotNull(entity,
ErrorCodeEnum.SOURCE_INFO_NOT_FOUND.getMessage());
+ Preconditions.expectNotNull(entity,
ErrorCodeEnum.SOURCE_INFO_NOT_FOUND,
+ ErrorCodeEnum.SOURCE_INFO_NOT_FOUND.getMessage());
boolean isTemplateSource =
CollectionUtils.isNotEmpty(sourceMapper.selectByTemplateId(id));
SourceStatus curStatus = SourceStatus.forCode(entity.getStatus());
@@ -438,9 +439,9 @@ public class StreamSourceServiceImpl implements
StreamSourceService {
@Transactional(rollbackFor = Throwable.class, propagation =
Propagation.REQUIRES_NEW, isolation = Isolation.READ_COMMITTED)
public Boolean delete(Integer id, UserInfo opInfo) {
StreamSourceEntity entity = sourceMapper.selectByIdForUpdate(id);
- if (entity == null) {
- return true;
- }
+ Preconditions.expectNotNull(entity,
ErrorCodeEnum.SOURCE_INFO_NOT_FOUND,
+ ErrorCodeEnum.SOURCE_INFO_NOT_FOUND.getMessage());
+
// Check if it can be added
InlongGroupEntity groupEntity =
groupMapper.selectByGroupId(entity.getInlongGroupId());
if (groupEntity == null) {
diff --git
a/inlong-manager/manager-web/src/test/java/org/apache/inlong/manager/web/controller/DataNodeControllerTest.java
b/inlong-manager/manager-web/src/test/java/org/apache/inlong/manager/web/controller/DataNodeControllerTest.java
index b8ea2f44b..f7f61c191 100644
---
a/inlong-manager/manager-web/src/test/java/org/apache/inlong/manager/web/controller/DataNodeControllerTest.java
+++
b/inlong-manager/manager-web/src/test/java/org/apache/inlong/manager/web/controller/DataNodeControllerTest.java
@@ -83,7 +83,7 @@ class DataNodeControllerTest extends WebBaseTest {
Assertions.assertTrue(success);
DataNodeEntity dataNodeEntity = dataNodeMapper.selectById(dataNodeId);
- Assertions.assertEquals(dataNodeEntity.getId(),
dataNodeEntity.getIsDeleted());
+ Assertions.assertNull(dataNodeEntity);
}
@Test
@@ -110,7 +110,7 @@ class DataNodeControllerTest extends WebBaseTest {
Assertions.assertTrue(success);
DataNodeEntity dataNodeEntity = dataNodeMapper.selectById(dataNodeId);
- Assertions.assertEquals(dataNodeEntity.getId(),
dataNodeEntity.getIsDeleted());
+ Assertions.assertNull(dataNodeEntity);
}
@Test