You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@inlong.apache.org by do...@apache.org on 2023/01/09 11:55:54 UTC
[inlong] 01/07: [INLONG-7178][Manager] Optimize parameter checks for InlongGroup, and simplify the exception and log info (#7180)
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 <46...@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()));
}