This is an automated email from the ASF dual-hosted git repository. dockerzhang pushed a commit to branch branch-1.5 in repository https://gitbox.apache.org/repos/asf/inlong.git
commit d2ef5877872016e40da8b836451cc6134ce1029f Author: Goson Zhang <4675...@qq.com> AuthorDate: Sat Jan 7 13:14:19 2023 +0800 [INLONG-7178][Manager] Optimize parameter checks for InlongGroup, and simplify the exception and log info (#7180) --- .../inlong/manager/common/enums/ErrorCodeEnum.java | 1 + .../inlong/manager/common/enums/GroupStatus.java | 5 +++- .../manager/pojo/group/InlongGroupRequest.java | 16 ++++++++----- .../manager/pojo/group/kafka/InlongKafkaDTO.java | 3 ++- .../manager/pojo/group/pulsar/InlongPulsarDTO.java | 3 ++- .../manager/pojo/group/tubemq/InlongTubeMQDTO.java | 3 ++- .../pojo/source/autopush/AutoPushSourceDTO.java | 3 ++- .../manager/pojo/source/file/FileSourceDTO.java | 3 ++- .../manager/pojo/source/hudi/HudiSourceDTO.java | 3 ++- .../manager/pojo/source/kafka/KafkaSourceDTO.java | 3 ++- .../pojo/source/mongodb/MongoDBSourceDTO.java | 3 ++- .../manager/pojo/source/mqtt/MqttSourceDTO.java | 3 ++- .../pojo/source/mysql/MySQLBinlogSourceDTO.java | 3 ++- .../pojo/source/oracle/OracleSourceDTO.java | 3 ++- .../source/postgresql/PostgreSQLSourceDTO.java | 3 ++- .../pojo/source/pulsar/PulsarSourceDTO.java | 3 ++- .../manager/pojo/source/redis/RedisSourceDTO.java | 3 ++- .../pojo/source/sqlserver/SQLServerSourceDTO.java | 3 ++- .../pojo/source/tubemq/TubeMQSourceDTO.java | 3 ++- .../service/group/AbstractGroupOperator.java | 7 +++--- .../service/group/InlongGroupOperator4Kafka.java | 4 ++-- .../service/group/InlongGroupOperator4NoneMQ.java | 2 +- .../service/group/InlongGroupOperator4Pulsar.java | 23 +++++++++++------- .../service/group/InlongGroupOperator4TubeMQ.java | 3 ++- .../service/group/InlongGroupOperatorFactory.java | 3 ++- .../service/group/InlongGroupServiceImpl.java | 28 +++++++--------------- .../web/controller/InlongGroupController.java | 3 ++- .../openapi/OpenInLongGroupController.java | 3 ++- 28 files changed, 84 insertions(+), 62 deletions(-) diff --git a/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/enums/ErrorCodeEnum.java b/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/enums/ErrorCodeEnum.java index 18f1e014b..325b63632 100644 --- a/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/enums/ErrorCodeEnum.java +++ b/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/enums/ErrorCodeEnum.java @@ -27,6 +27,7 @@ public enum ErrorCodeEnum { PERMISSION_REQUIRED(2003, "The current user does not have operation authority"), AUTHENTICATION_REQUIRED(2004, "Authentication failed"), CONFIG_EXPIRED(2005, "The config has expired, please refresh the page or re-fetch the data and try again"), + ILLEGAL_RECORD_FIELD_VALUE(2006, "The field value of record is illegal"), ID_IS_EMPTY(101, "Primary key is empty"), GROUP_ID_IS_EMPTY(102, "Inlong group id is empty"), diff --git a/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/enums/GroupStatus.java b/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/enums/GroupStatus.java index 0f836d46c..ac31aed41 100644 --- a/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/enums/GroupStatus.java +++ b/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/enums/GroupStatus.java @@ -20,6 +20,8 @@ package org.apache.inlong.manager.common.enums; import com.google.common.collect.Maps; import com.google.common.collect.Sets; +import org.apache.inlong.manager.common.exceptions.BusinessException; + import java.util.Locale; import java.util.Map; import java.util.Set; @@ -95,7 +97,8 @@ public enum GroupStatus { return status; } } - throw new IllegalStateException(String.format("Illegal code=%s for GroupStatus", code)); + throw new BusinessException(ErrorCodeEnum.ILLEGAL_RECORD_FIELD_VALUE, + String.format("Illegal code=%s for GroupStatus", code)); } public static boolean notAllowedTransition(GroupStatus pre, GroupStatus now) { diff --git a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/group/InlongGroupRequest.java b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/group/InlongGroupRequest.java index 9b68c572d..346d19d3c 100644 --- a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/group/InlongGroupRequest.java +++ b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/group/InlongGroupRequest.java @@ -24,6 +24,9 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; + +import org.apache.inlong.manager.common.validation.SaveValidation; +import org.apache.inlong.manager.common.validation.UpdateValidation; import org.hibernate.validator.constraints.Length; import org.hibernate.validator.constraints.Range; @@ -43,8 +46,8 @@ import java.util.List; @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, visible = true, property = "mqType") public abstract class InlongGroupRequest extends BaseInlongGroup { - @NotBlank(message = "cannot be blank") @ApiModelProperty(value = "Inlong group id", required = true) + @NotBlank(message = "inlongGroupId cannot be blank") @Length(min = 4, max = 100, message = "length must be between 4 and 100") @Pattern(regexp = "^[a-z0-9_-]{4,100}$", message = "only supports lowercase letters, numbers, '-', or '_'") private String inlongGroupId; @@ -61,13 +64,14 @@ public abstract class InlongGroupRequest extends BaseInlongGroup { @ApiModelProperty(value = "MQ type, replaced by mqType") private String middlewareType; - @NotBlank(message = "cannot be blank") @ApiModelProperty(value = "MQ type, high throughput: TUBEMQ, high consistency: PULSAR") + @NotBlank(message = "mqType cannot be blank") @Length(min = 1, max = 20, message = "length must be between 1 and 20") private String mqType; @ApiModelProperty(value = "MQ resource", notes = "in inlong group, TubeMQ corresponds to Topic, Pulsar corresponds to Namespace") - @Length(max = 64, message = "length must be less than or equal to 64") + @Length(max = 128, message = "length must be less than or equal to 128") + @Pattern(regexp = "^[a-z0-9_-]{1,128}$", message = "only supports lowercase letters, numbers, '-', or '_'") private String mqResource; @ApiModelProperty(value = "TubeMQ master URL") @@ -85,12 +89,11 @@ public abstract class InlongGroupRequest extends BaseInlongGroup { @Range(min = 0, max = 1, message = "default is 0, only supports [0: no, 1: yes]") private Integer lightweight = 0; - @NotNull(message = "cannot be null") - @Range(min = 0, max = 2, message = "default is 0, only supports [0, 1, 2]") @ApiModelProperty(value = "Data report type, default is 0.\n" + " 0: report to DataProxy and respond when the DataProxy received data.\n" + " 1: report to DataProxy and respond after DataProxy sends data.\n" + " 2: report to MQ and respond when the MQ received data.", notes = "Current constraint is that all InLong Agents under one InlongGroup use the same type") + @Range(min = 0, max = 2, message = "default is 0, only supports [0, 1, 2]") private Integer dataReportType = 0; @ApiModelProperty(value = "Inlong cluster tag, which links to inlong_cluster table") @@ -109,8 +112,8 @@ public abstract class InlongGroupRequest extends BaseInlongGroup { @ApiModelProperty(value = "The maximum length of a single piece of data, unit: Byte") private Integer maxLength; - @NotBlank(message = "cannot be blank") @ApiModelProperty(value = "Name of responsible person, separated by commas") + @NotBlank(groups = SaveValidation.class, message = "inCharges cannot be blank") @Length(max = 512, message = "length must be less than or equal to 512") private String inCharges; @@ -122,6 +125,7 @@ public abstract class InlongGroupRequest extends BaseInlongGroup { private List<InlongGroupExtInfo> extList; @ApiModelProperty(value = "Version number") + @NotNull(groups = UpdateValidation.class, message = "version cannot be null") private Integer version; } diff --git a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/group/kafka/InlongKafkaDTO.java b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/group/kafka/InlongKafkaDTO.java index 0136a7d93..1d1d2def1 100644 --- a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/group/kafka/InlongKafkaDTO.java +++ b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/group/kafka/InlongKafkaDTO.java @@ -59,7 +59,8 @@ public class InlongKafkaDTO extends BaseInlongGroup { try { return JsonUtils.parseObject(extParams, InlongKafkaDTO.class); } catch (Exception e) { - throw new BusinessException(ErrorCodeEnum.GROUP_INFO_INCORRECT.getMessage() + ": " + e.getMessage()); + throw new BusinessException(ErrorCodeEnum.GROUP_INFO_INCORRECT, + String.format("parse extParams of Kafka failure: %s", e.getMessage())); } } diff --git a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/group/pulsar/InlongPulsarDTO.java b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/group/pulsar/InlongPulsarDTO.java index 3f0c61980..e42ae8837 100644 --- a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/group/pulsar/InlongPulsarDTO.java +++ b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/group/pulsar/InlongPulsarDTO.java @@ -89,7 +89,8 @@ public class InlongPulsarDTO extends BaseInlongGroup { try { return JsonUtils.parseObject(extParams, InlongPulsarDTO.class); } catch (Exception e) { - throw new BusinessException(ErrorCodeEnum.GROUP_INFO_INCORRECT.getMessage() + ": " + e.getMessage()); + throw new BusinessException(ErrorCodeEnum.GROUP_INFO_INCORRECT, + String.format("parse extParams of Pulsar failure: %s", e.getMessage())); } } diff --git a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/group/tubemq/InlongTubeMQDTO.java b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/group/tubemq/InlongTubeMQDTO.java index 573d17c81..ffe348a52 100644 --- a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/group/tubemq/InlongTubeMQDTO.java +++ b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/group/tubemq/InlongTubeMQDTO.java @@ -51,7 +51,8 @@ public class InlongTubeMQDTO extends BaseInlongGroup { try { return JsonUtils.parseObject(extParams, InlongTubeMQDTO.class); } catch (Exception e) { - throw new BusinessException(ErrorCodeEnum.GROUP_INFO_INCORRECT.getMessage() + ": " + e.getMessage()); + throw new BusinessException(ErrorCodeEnum.GROUP_INFO_INCORRECT, + String.format("parse extParams of TubeMQ failure: %s", e.getMessage())); } } diff --git a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/autopush/AutoPushSourceDTO.java b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/autopush/AutoPushSourceDTO.java index b34c563f3..72a149d01 100644 --- a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/autopush/AutoPushSourceDTO.java +++ b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/autopush/AutoPushSourceDTO.java @@ -59,7 +59,8 @@ public class AutoPushSourceDTO { try { return JsonUtils.parseObject(extParams, AutoPushSourceDTO.class); } catch (Exception e) { - throw new BusinessException(ErrorCodeEnum.SOURCE_INFO_INCORRECT.getMessage() + ": " + e.getMessage()); + throw new BusinessException(ErrorCodeEnum.SOURCE_INFO_INCORRECT, + String.format("parse extParams of AutoPushSource failure: %s", e.getMessage())); } } } diff --git a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/file/FileSourceDTO.java b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/file/FileSourceDTO.java index af50d689c..7d4c60eb4 100644 --- a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/file/FileSourceDTO.java +++ b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/file/FileSourceDTO.java @@ -98,7 +98,8 @@ public class FileSourceDTO { try { return JsonUtils.parseObject(extParams, FileSourceDTO.class); } catch (Exception e) { - throw new BusinessException(ErrorCodeEnum.SOURCE_INFO_INCORRECT.getMessage() + ": " + e.getMessage()); + throw new BusinessException(ErrorCodeEnum.SOURCE_INFO_INCORRECT, + String.format("parse extParams of FileSource failure: %s", e.getMessage())); } } diff --git a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/hudi/HudiSourceDTO.java b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/hudi/HudiSourceDTO.java index 2eff3d724..ffe323f81 100644 --- a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/hudi/HudiSourceDTO.java +++ b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/hudi/HudiSourceDTO.java @@ -80,7 +80,8 @@ public class HudiSourceDTO { try { return JsonUtils.parseObject(extParams, HudiSourceDTO.class); } catch (Exception e) { - throw new BusinessException(ErrorCodeEnum.SOURCE_INFO_INCORRECT.getMessage() + ": " + e.getMessage()); + throw new BusinessException(ErrorCodeEnum.SOURCE_INFO_INCORRECT, + String.format("parse extParams of HudiSource failure: %s", e.getMessage())); } } } diff --git a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/kafka/KafkaSourceDTO.java b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/kafka/KafkaSourceDTO.java index fa4866b50..6eb983692 100644 --- a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/kafka/KafkaSourceDTO.java +++ b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/kafka/KafkaSourceDTO.java @@ -125,7 +125,8 @@ public class KafkaSourceDTO { try { return JsonUtils.parseObject(extParams, KafkaSourceDTO.class); } catch (Exception e) { - throw new BusinessException(ErrorCodeEnum.SOURCE_INFO_INCORRECT.getMessage() + ": " + e.getMessage()); + throw new BusinessException(ErrorCodeEnum.SOURCE_INFO_INCORRECT, + String.format("parse extParams of KafkaSource failure: %s", e.getMessage())); } } } diff --git a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/mongodb/MongoDBSourceDTO.java b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/mongodb/MongoDBSourceDTO.java index 548bd5cdb..2c3583184 100644 --- a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/mongodb/MongoDBSourceDTO.java +++ b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/mongodb/MongoDBSourceDTO.java @@ -81,7 +81,8 @@ public class MongoDBSourceDTO { try { return JsonUtils.parseObject(extParams, MongoDBSourceDTO.class); } catch (Exception e) { - throw new BusinessException(ErrorCodeEnum.SOURCE_INFO_INCORRECT.getMessage() + ": " + e.getMessage()); + throw new BusinessException(ErrorCodeEnum.SOURCE_INFO_INCORRECT, + String.format("parse extParams of MongoDBSource failure: %s", e.getMessage())); } } diff --git a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/mqtt/MqttSourceDTO.java b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/mqtt/MqttSourceDTO.java index 9079200e0..4b2f9b82b 100644 --- a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/mqtt/MqttSourceDTO.java +++ b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/mqtt/MqttSourceDTO.java @@ -70,7 +70,8 @@ public class MqttSourceDTO { try { return JsonUtils.parseObject(extParams, MqttSourceDTO.class); } catch (Exception e) { - throw new BusinessException(ErrorCodeEnum.SOURCE_INFO_INCORRECT.getMessage() + ": " + e.getMessage()); + throw new BusinessException(ErrorCodeEnum.SOURCE_INFO_INCORRECT, + String.format("parse extParams of MqttSource failure: %s", e.getMessage())); } } diff --git a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/mysql/MySQLBinlogSourceDTO.java b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/mysql/MySQLBinlogSourceDTO.java index cf90e46a9..be9cab8c4 100644 --- a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/mysql/MySQLBinlogSourceDTO.java +++ b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/mysql/MySQLBinlogSourceDTO.java @@ -148,7 +148,8 @@ public class MySQLBinlogSourceDTO { try { return JsonUtils.parseObject(extParams, MySQLBinlogSourceDTO.class); } catch (Exception e) { - throw new BusinessException(ErrorCodeEnum.SOURCE_INFO_INCORRECT.getMessage() + ": " + e.getMessage()); + throw new BusinessException(ErrorCodeEnum.SOURCE_INFO_INCORRECT, + String.format("parse extParams of MySQLBinlogSource failure: %s", e.getMessage())); } } diff --git a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/oracle/OracleSourceDTO.java b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/oracle/OracleSourceDTO.java index 6f775a059..5c7ec9294 100644 --- a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/oracle/OracleSourceDTO.java +++ b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/oracle/OracleSourceDTO.java @@ -90,7 +90,8 @@ public class OracleSourceDTO { try { return JsonUtils.parseObject(extParams, OracleSourceDTO.class); } catch (Exception e) { - throw new BusinessException(ErrorCodeEnum.SOURCE_INFO_INCORRECT.getMessage() + ": " + e.getMessage()); + throw new BusinessException(ErrorCodeEnum.SOURCE_INFO_INCORRECT, + String.format("parse extParams of OracleSource failure: %s", e.getMessage())); } } diff --git a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/postgresql/PostgreSQLSourceDTO.java b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/postgresql/PostgreSQLSourceDTO.java index 370eb38c1..40731588d 100644 --- a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/postgresql/PostgreSQLSourceDTO.java +++ b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/postgresql/PostgreSQLSourceDTO.java @@ -97,7 +97,8 @@ public class PostgreSQLSourceDTO { try { return JsonUtils.parseObject(extParams, PostgreSQLSourceDTO.class); } catch (Exception e) { - throw new BusinessException(ErrorCodeEnum.SOURCE_INFO_INCORRECT.getMessage() + ": " + e.getMessage()); + throw new BusinessException(ErrorCodeEnum.SOURCE_INFO_INCORRECT, + String.format("parse extParams of PostgreSQLSource failure: %s", e.getMessage())); } } diff --git a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/pulsar/PulsarSourceDTO.java b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/pulsar/PulsarSourceDTO.java index 4ebb29b47..086a9e2c4 100644 --- a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/pulsar/PulsarSourceDTO.java +++ b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/pulsar/PulsarSourceDTO.java @@ -93,7 +93,8 @@ public class PulsarSourceDTO { try { return JsonUtils.parseObject(extParams, PulsarSourceDTO.class); } catch (Exception e) { - throw new BusinessException(ErrorCodeEnum.SOURCE_INFO_INCORRECT.getMessage() + ": " + e.getMessage()); + throw new BusinessException(ErrorCodeEnum.SOURCE_INFO_INCORRECT, + String.format("parse extParams of PulsarSource failure: %s", e.getMessage())); } } diff --git a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/redis/RedisSourceDTO.java b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/redis/RedisSourceDTO.java index a41a587c7..89facbbd6 100644 --- a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/redis/RedisSourceDTO.java +++ b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/redis/RedisSourceDTO.java @@ -138,7 +138,8 @@ public class RedisSourceDTO { try { return JsonUtils.parseObject(extParams, RedisSourceDTO.class); } catch (Exception e) { - throw new BusinessException(ErrorCodeEnum.SOURCE_INFO_INCORRECT.getMessage() + ": " + e.getMessage()); + throw new BusinessException(ErrorCodeEnum.SOURCE_INFO_INCORRECT, + String.format("parse extParams of RedisSource failure: %s", e.getMessage())); } } diff --git a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/sqlserver/SQLServerSourceDTO.java b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/sqlserver/SQLServerSourceDTO.java index 5b7dd4e50..3d4ec1fe6 100644 --- a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/sqlserver/SQLServerSourceDTO.java +++ b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/sqlserver/SQLServerSourceDTO.java @@ -97,7 +97,8 @@ public class SQLServerSourceDTO { try { return JsonUtils.parseObject(extParams, SQLServerSourceDTO.class); } catch (Exception e) { - throw new BusinessException(ErrorCodeEnum.SOURCE_INFO_INCORRECT.getMessage() + ": " + e.getMessage()); + throw new BusinessException(ErrorCodeEnum.SOURCE_INFO_INCORRECT, + String.format("parse extParams of SQLServerSource failure: %s", e.getMessage())); } } diff --git a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/tubemq/TubeMQSourceDTO.java b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/tubemq/TubeMQSourceDTO.java index 3ae5393fc..35e46bc8e 100644 --- a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/tubemq/TubeMQSourceDTO.java +++ b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/source/tubemq/TubeMQSourceDTO.java @@ -85,7 +85,8 @@ public class TubeMQSourceDTO { try { return JsonUtils.parseObject(extParams, TubeMQSourceDTO.class); } catch (Exception e) { - throw new BusinessException(ErrorCodeEnum.SOURCE_INFO_INCORRECT.getMessage() + ": " + e.getMessage()); + throw new BusinessException(ErrorCodeEnum.SOURCE_INFO_INCORRECT, + String.format("parse extParams of TubeMQSource failure: %s", e.getMessage())); } } } diff --git a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/AbstractGroupOperator.java b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/AbstractGroupOperator.java index 562bd34da..cd5b7466b 100644 --- a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/AbstractGroupOperator.java +++ b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/AbstractGroupOperator.java @@ -93,13 +93,12 @@ public abstract class AbstractGroupOperator implements InlongGroupOperator { InlongGroupEntity entity = CommonBeanUtils.copyProperties(request, InlongGroupEntity::new); // set the ext params setTargetEntity(request, entity); - entity.setModifier(operator); int rowCount = groupMapper.updateByIdentifierSelective(entity); if (rowCount != InlongConstants.AFFECTED_ONE_ROW) { - LOGGER.error("inlong group has already updated with group id={}, curVersion={}", - request.getInlongGroupId(), request.getVersion()); - throw new BusinessException(ErrorCodeEnum.CONFIG_EXPIRED); + throw new BusinessException(ErrorCodeEnum.CONFIG_EXPIRED, + String.format("record has already updated with group id=%s, curVersion=%d", + request.getInlongGroupId(), request.getVersion())); } } diff --git a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupOperator4Kafka.java b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupOperator4Kafka.java index 0fffa249a..b4b87b0ed 100644 --- a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupOperator4Kafka.java +++ b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupOperator4Kafka.java @@ -84,9 +84,9 @@ public class InlongGroupOperator4Kafka extends AbstractGroupOperator { InlongKafkaDTO dto = InlongKafkaDTO.getFromRequest(kafkaRequest); targetEntity.setExtParams(objectMapper.writeValueAsString(dto)); } catch (Exception e) { - throw new BusinessException(ErrorCodeEnum.SOURCE_INFO_INCORRECT.getMessage() + ": " + e.getMessage()); + throw new BusinessException(ErrorCodeEnum.SOURCE_INFO_INCORRECT, + String.format("serialize extParams of Kafka failure: %s", e.getMessage())); } - LOGGER.info("success set entity for inlong group with Kafka"); } @Override diff --git a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupOperator4NoneMQ.java b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupOperator4NoneMQ.java index 9e03f48e4..c1d680bf8 100644 --- a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupOperator4NoneMQ.java +++ b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupOperator4NoneMQ.java @@ -50,7 +50,7 @@ public class InlongGroupOperator4NoneMQ extends AbstractGroupOperator { @Override protected void setTargetEntity(InlongGroupRequest request, InlongGroupEntity targetEntity) { - LOGGER.info("do nothing for inlong group without MQ"); + // do nothing without mq } @Override diff --git a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupOperator4Pulsar.java b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupOperator4Pulsar.java index 0688af522..810241f1a 100644 --- a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupOperator4Pulsar.java +++ b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupOperator4Pulsar.java @@ -24,7 +24,6 @@ import org.apache.inlong.manager.common.enums.ClusterType; import org.apache.inlong.manager.common.enums.ErrorCodeEnum; import org.apache.inlong.manager.common.exceptions.BusinessException; import org.apache.inlong.manager.common.util.CommonBeanUtils; -import org.apache.inlong.manager.common.util.Preconditions; import org.apache.inlong.manager.dao.entity.InlongGroupEntity; import org.apache.inlong.manager.dao.entity.InlongGroupExtEntity; import org.apache.inlong.manager.dao.entity.InlongStreamExtEntity; @@ -88,27 +87,35 @@ public class InlongGroupOperator4Pulsar extends AbstractGroupOperator { @Override protected void setTargetEntity(InlongGroupRequest request, InlongGroupEntity targetEntity) { InlongPulsarRequest pulsarRequest = (InlongPulsarRequest) request; - // Pulsar params must meet: ackQuorum <= writeQuorum <= ensemble Integer ackQuorum = pulsarRequest.getAckQuorum(); Integer writeQuorum = pulsarRequest.getWriteQuorum(); - Preconditions.checkNotNull(ackQuorum, "Pulsar ackQuorum cannot be empty"); - Preconditions.checkNotNull(writeQuorum, "Pulsar writeQuorum cannot be empty"); + if (ackQuorum == null) { + throw new BusinessException(ErrorCodeEnum.INVALID_PARAMETER, + "Pulsar ackQuorum cannot be empty"); + } + if (writeQuorum == null) { + throw new BusinessException(ErrorCodeEnum.INVALID_PARAMETER, + "Pulsar writeQuorum cannot be empty"); + } + if (ackQuorum < 0 || writeQuorum < 0) { + throw new BusinessException(ErrorCodeEnum.INVALID_PARAMETER, + "Pulsar ackQuorum or writeQuorum must greater than or equal to 0"); + } if (!(ackQuorum <= writeQuorum)) { - throw new BusinessException(ErrorCodeEnum.GROUP_SAVE_FAILED, + throw new BusinessException(ErrorCodeEnum.INVALID_PARAMETER, "Pulsar params must meet: ackQuorum <= writeQuorum"); } // The default value of ensemble is writeQuorum pulsarRequest.setEnsemble(writeQuorum); - CommonBeanUtils.copyProperties(pulsarRequest, targetEntity, true); try { InlongPulsarDTO dto = InlongPulsarDTO.getFromRequest(pulsarRequest); targetEntity.setExtParams(objectMapper.writeValueAsString(dto)); } catch (Exception e) { - throw new BusinessException(ErrorCodeEnum.SOURCE_INFO_INCORRECT.getMessage() + ": " + e.getMessage()); + throw new BusinessException(ErrorCodeEnum.SOURCE_INFO_INCORRECT, + String.format("serialize extParams of Pulsar failure: %s", e.getMessage())); } - LOGGER.info("success set entity for inlong group with Pulsar"); } @Override diff --git a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupOperator4TubeMQ.java b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupOperator4TubeMQ.java index 670d7ce2a..39abab1d5 100644 --- a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupOperator4TubeMQ.java +++ b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupOperator4TubeMQ.java @@ -79,7 +79,8 @@ public class InlongGroupOperator4TubeMQ extends AbstractGroupOperator { InlongTubeMQDTO dto = InlongTubeMQDTO.getFromRequest(tubeMQRequest); targetEntity.setExtParams(objectMapper.writeValueAsString(dto)); } catch (Exception e) { - throw new BusinessException(ErrorCodeEnum.SOURCE_INFO_INCORRECT.getMessage() + ": " + e.getMessage()); + throw new BusinessException(ErrorCodeEnum.SOURCE_INFO_INCORRECT, + String.format("serialize extParams of TubeMQ failure: %s", e.getMessage())); } } diff --git a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupOperatorFactory.java b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupOperatorFactory.java index f4efca8c9..ec765866b 100644 --- a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupOperatorFactory.java +++ b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupOperatorFactory.java @@ -42,7 +42,8 @@ public class InlongGroupOperatorFactory { .filter(inst -> inst.accept(mqType)) .findFirst(); if (!instance.isPresent()) { - throw new BusinessException(String.format(ErrorCodeEnum.MQ_TYPE_NOT_SUPPORTED.getMessage(), mqType)); + throw new BusinessException(ErrorCodeEnum.MQ_TYPE_NOT_SUPPORTED, + String.format(ErrorCodeEnum.MQ_TYPE_NOT_SUPPORTED.getMessage(), mqType)); } return instance.get(); } diff --git a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupServiceImpl.java b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupServiceImpl.java index 5f36a8259..e3d768f1e 100644 --- a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupServiceImpl.java +++ b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/group/InlongGroupServiceImpl.java @@ -187,10 +187,6 @@ public class InlongGroupServiceImpl implements InlongGroupService { throw new BusinessException(ErrorCodeEnum.LOGIN_USER_EMPTY); } String groupId = request.getInlongGroupId(); - if (StringUtils.isBlank(groupId)) { - throw new BusinessException(ErrorCodeEnum.INVALID_PARAMETER, - "inlong group id in request cannot be blank"); - } InlongGroupEntity entity = groupMapper.selectByGroupId(groupId); if (entity != null) { throw new BusinessException(ErrorCodeEnum.GROUP_DUPLICATE); @@ -459,10 +455,6 @@ public class InlongGroupServiceImpl implements InlongGroupService { throw new BusinessException(ErrorCodeEnum.LOGIN_USER_EMPTY); } String groupId = request.getInlongGroupId(); - if (StringUtils.isBlank(groupId)) { - throw new BusinessException(ErrorCodeEnum.INVALID_PARAMETER, - "inlong group id in request cannot be blank"); - } InlongGroupEntity entity = groupMapper.selectByGroupId(groupId); if (entity == null) { throw new BusinessException(ErrorCodeEnum.GROUP_NOT_FOUND); @@ -563,17 +555,15 @@ public class InlongGroupServiceImpl implements InlongGroupService { @Override @Transactional(rollbackFor = Throwable.class) public void saveOrUpdateExt(String groupId, List<InlongGroupExtInfo> exts) { - LOGGER.info("begin to save or update inlong group ext info, groupId={}, ext={}", groupId, exts); if (CollectionUtils.isEmpty(exts)) { return; } - - List<InlongGroupExtEntity> entityList = CommonBeanUtils.copyListProperties(exts, InlongGroupExtEntity::new); + List<InlongGroupExtEntity> entityList = + CommonBeanUtils.copyListProperties(exts, InlongGroupExtEntity::new); for (InlongGroupExtEntity entity : entityList) { entity.setInlongGroupId(groupId); } groupExtMapper.insertOnDuplicateKeyUpdate(entityList); - LOGGER.info("success to save or update inlong group ext for groupId={}", groupId); } @Override @@ -596,16 +586,14 @@ public class InlongGroupServiceImpl implements InlongGroupService { // only the person in charges can update List<String> inCharges = Arrays.asList(groupInfo.getInCharges().split(InlongConstants.COMMA)); if (!inCharges.contains(operator)) { - LOGGER.error("user [{}] has no privilege for the inlong group", operator); - throw new BusinessException(ErrorCodeEnum.GROUP_PERMISSION_DENIED); + throw new BusinessException(ErrorCodeEnum.GROUP_PERMISSION_DENIED, + String.format("user [%s] has no privilege for the inlong group", operator)); } - // determine whether the current status can be deleted GroupStatus curState = GroupStatus.forCode(groupInfo.getStatus()); if (GroupStatus.notAllowedTransition(curState, GroupStatus.DELETING)) { - String errMsg = String.format("current group status=%s was not allowed to delete", curState); - LOGGER.error(errMsg); - throw new BusinessException(ErrorCodeEnum.GROUP_DELETE_NOT_ALLOWED, errMsg); + throw new BusinessException(ErrorCodeEnum.GROUP_DELETE_NOT_ALLOWED, + String.format("current group status=%s was not allowed to delete", curState)); } // If the status not allowed deleting directly, you need to delete the related "inlong_stream" first, @@ -613,8 +601,8 @@ public class InlongGroupServiceImpl implements InlongGroupService { if (GroupStatus.deleteStreamFirst(curState)) { int count = streamService.selectCountByGroupId(groupId); if (count >= 1) { - LOGGER.error("groupId={} have [{}] inlong streams, deleted failed", groupId, count); - throw new BusinessException(ErrorCodeEnum.GROUP_DELETE_HAS_STREAM); + throw new BusinessException(ErrorCodeEnum.GROUP_DELETE_HAS_STREAM, + String.format("groupId=%s have [%s] inlong streams, deleted failed", groupId, count)); } } diff --git a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/InlongGroupController.java b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/InlongGroupController.java index 7ba6619a9..798b759aa 100644 --- a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/InlongGroupController.java +++ b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/InlongGroupController.java @@ -22,6 +22,7 @@ import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; import org.apache.inlong.manager.common.enums.OperationType; import org.apache.inlong.manager.common.enums.UserTypeEnum; +import org.apache.inlong.manager.common.validation.SaveValidation; import org.apache.inlong.manager.common.validation.UpdateValidation; import org.apache.inlong.manager.pojo.common.PageResult; import org.apache.inlong.manager.pojo.common.Response; @@ -66,7 +67,7 @@ public class InlongGroupController { @RequestMapping(value = "/group/save", method = RequestMethod.POST) @OperationLog(operation = OperationType.CREATE) @ApiOperation(value = "Save inlong group") - public Response<String> save(@Validated @RequestBody InlongGroupRequest groupRequest) { + public Response<String> save(@Validated(SaveValidation.class) @RequestBody InlongGroupRequest groupRequest) { String operator = LoginUserUtils.getLoginUser().getName(); return Response.success(groupService.save(groupRequest, operator)); } diff --git a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/openapi/OpenInLongGroupController.java b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/openapi/OpenInLongGroupController.java index 98a05b650..66e39f0e8 100644 --- a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/openapi/OpenInLongGroupController.java +++ b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/openapi/OpenInLongGroupController.java @@ -18,6 +18,7 @@ package org.apache.inlong.manager.web.controller.openapi; import org.apache.inlong.manager.common.enums.OperationType; +import org.apache.inlong.manager.common.validation.SaveValidation; import org.apache.inlong.manager.common.validation.UpdateValidation; import org.apache.inlong.manager.pojo.common.Response; import org.apache.inlong.manager.pojo.group.InlongGroupBriefInfo; @@ -74,7 +75,7 @@ public class OpenInLongGroupController { @RequestMapping(value = "/group/save", method = RequestMethod.POST) @OperationLog(operation = OperationType.CREATE) @ApiOperation(value = "Save inlong group") - public Response<String> save(@Validated @RequestBody InlongGroupRequest groupRequest) { + public Response<String> save(@Validated(SaveValidation.class) @RequestBody InlongGroupRequest groupRequest) { return Response.success(groupService.save(groupRequest, LoginUserUtils.getLoginUser())); }