This is an automated email from the ASF dual-hosted git repository.
benjobs pushed a commit to branch dev-2.1.3
in repository https://gitbox.apache.org/repos/asf/incubator-streampark.git
The following commit(s) were added to refs/heads/dev-2.1.3 by this push:
new 855061d8c [Improve] docker|email settings improvements (#3586)
855061d8c is described below
commit 855061d8c213cad8fe2223a881386eb4e9f17bbd
Author: benjobs <[email protected]>
AuthorDate: Wed Feb 28 13:16:19 2024 +0800
[Improve] docker|email settings improvements (#3586)
* [Improve] docker|email settings improvements
* [Improve] update docker|email info improvement
* [Improve] testcase improvement
---------
Co-authored-by: benjobs <[email protected]>
---
.../streampark/console/core/bean/DockerConfig.java | 44 +++++--
.../streampark/console/core/bean/MavenConfig.java | 58 ++++++---
.../streampark/console/core/bean/SenderEmail.java | 38 +++++-
.../core/bean/SettingAlertEmailConfigParams.java | 6 +-
.../core/bean/SettingDockerConfigParams.java | 8 +-
.../console/core/controller/SettingController.java | 72 ++++++-----
.../console/core/runner/EnvInitializer.java | 23 +---
.../console/core/service/SettingService.java | 29 +----
.../alert/impl/EmailAlertNotifyServiceImpl.java | 6 +-
.../core/service/impl/AppBuildPipeServiceImpl.java | 10 +-
.../core/service/impl/SettingServiceImpl.java | 112 ++++++----------
.../bean/SettingAlertEmailConfigParamsTest.java | 140 --------------------
.../core/bean/SettingDockerConfigParamsTest.java | 142 ---------------------
.../console/core/service/SettingServiceTest.java | 107 +++++-----------
.../core/service/alert/AlertServiceTest.java | 10 +-
.../src/api/flink/setting/index.ts | 9 +-
.../src/views/setting/System/SettingForm.vue | 18 ++-
.../src/views/setting/System/SettingList.vue | 2 +-
18 files changed, 267 insertions(+), 567 deletions(-)
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/DockerConfig.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/DockerConfig.java
index 9be549fe2..870ad3056 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/DockerConfig.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/DockerConfig.java
@@ -17,11 +17,16 @@
package org.apache.streampark.console.core.bean;
+import org.apache.streampark.console.core.entity.Setting;
import org.apache.streampark.console.core.service.SettingService;
-import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
+import java.util.Arrays;
+import java.util.List;
+
/**
* The DockerConfig class represents the configuration for an email system. It
holds the SMTP host,
* port, from address, username, password, and whether SSL is enabled.
@@ -29,35 +34,39 @@ import lombok.extern.slf4j.Slf4j;
* <p>This class also provides a static factory method to create an
DockerConfig object from a map
* of settings.
*/
-@Data
+@Getter
+@Setter
@Slf4j
public class DockerConfig {
private String address;
- private String user;
+ private String userName;
private String password;
private String namespace;
public static DockerConfig fromSetting() {
try {
DockerConfig dockerConfig = new DockerConfig();
+ Setting emptySetting = new Setting();
dockerConfig.setAddress(
SettingService.SETTINGS
- .get(SettingService.KEY_DOCKER_REGISTER_ADDRESS)
+ .getOrDefault(SettingService.KEY_DOCKER_REGISTER_ADDRESS,
emptySetting)
.getSettingValue());
- dockerConfig.setUser(
-
SettingService.SETTINGS.get(SettingService.KEY_DOCKER_REGISTER_USER).getSettingValue());
+ dockerConfig.setUserName(
+ SettingService.SETTINGS
+ .getOrDefault(SettingService.KEY_DOCKER_REGISTER_USER,
emptySetting)
+ .getSettingValue());
dockerConfig.setPassword(
SettingService.SETTINGS
- .get(SettingService.KEY_DOCKER_REGISTER_PASSWORD)
+ .getOrDefault(SettingService.KEY_DOCKER_REGISTER_PASSWORD,
emptySetting)
.getSettingValue());
dockerConfig.setNamespace(
SettingService.SETTINGS
- .get(SettingService.KEY_DOCKER_REGISTER_NAMESPACE)
+ .getOrDefault(SettingService.KEY_DOCKER_REGISTER_NAMESPACE,
emptySetting)
.getSettingValue());
return dockerConfig;
@@ -66,4 +75,23 @@ public class DockerConfig {
}
return null;
}
+
+ public static List<Setting> toSettings(DockerConfig dockerConfig) {
+ Setting address = new Setting();
+ address.setSettingKey(SettingService.KEY_DOCKER_REGISTER_ADDRESS);
+ address.setSettingValue(dockerConfig.getAddress());
+
+ Setting user = new Setting();
+ user.setSettingKey(SettingService.KEY_DOCKER_REGISTER_USER);
+ user.setSettingValue(dockerConfig.getUserName());
+
+ Setting password = new Setting();
+ password.setSettingKey(SettingService.KEY_DOCKER_REGISTER_PASSWORD);
+ password.setSettingValue(dockerConfig.getPassword());
+
+ Setting namespace = new Setting();
+ namespace.setSettingKey(SettingService.KEY_DOCKER_REGISTER_NAMESPACE);
+ namespace.setSettingValue(dockerConfig.getNamespace());
+ return Arrays.asList(address, user, password, namespace);
+ }
}
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/MavenConfig.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/MavenConfig.java
index d073ea7e9..7ac0ae702 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/MavenConfig.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/MavenConfig.java
@@ -24,7 +24,8 @@ import
org.apache.streampark.console.core.service.SettingService;
import org.apache.commons.lang3.StringUtils;
-import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
import java.util.Map;
@@ -32,7 +33,8 @@ import java.util.Map;
* This class represents the Maven configuration for the application. It
provides methods to
* retrieve the various Maven configuration options.
*/
-@Data
+@Getter
+@Setter
public class MavenConfig {
/** File path for Maven settings. */
@@ -48,28 +50,47 @@ public class MavenConfig {
private String mvnAuthPassword;
/** */
+ public static MavenConfig fromSetting(Setting settings) {
+ MavenConfig mavenConfig = new MavenConfig();
+ String value = settings.getSettingValue();
+ switch (settings.getSettingKey()) {
+ case SettingService.KEY_MAVEN_SETTINGS:
+ mavenConfig.setMvnSettings(value);
+ break;
+ case SettingService.KEY_MAVEN_REPOSITORY:
+ mavenConfig.setMvnRepository(value);
+ break;
+ case SettingService.KEY_MAVEN_AUTH_USER:
+ mavenConfig.setMvnAuthUser(value);
+ break;
+ case SettingService.KEY_MAVEN_AUTH_PASSWORD:
+ mavenConfig.setMvnAuthPassword(value);
+ break;
+ default:
+ break;
+ }
+ return mavenConfig;
+ }
+
public static MavenConfig fromSetting() {
MavenConfig mavenConfig = new MavenConfig();
+
Map<String, Setting> settings = SettingService.SETTINGS;
- if (settings.containsKey(CommonConfig.MAVEN_SETTINGS_PATH().key())) {
- mavenConfig.setMvnSettings(
-
settings.get(CommonConfig.MAVEN_SETTINGS_PATH().key()).getSettingValue());
- }
+ Setting emptySetting = new Setting();
- if (settings.containsKey(CommonConfig.MAVEN_REMOTE_URL().key())) {
- mavenConfig.setMvnRepository(
-
settings.get(CommonConfig.MAVEN_REMOTE_URL().key()).getSettingValue());
- }
+ mavenConfig.setMvnSettings(
+ settings.getOrDefault(SettingService.KEY_MAVEN_SETTINGS,
emptySetting).getSettingValue());
- if (settings.containsKey(CommonConfig.MAVEN_AUTH_USER().key())) {
- mavenConfig.setMvnAuthUser(
-
settings.get(CommonConfig.MAVEN_AUTH_USER().key()).getSettingValue());
- }
+ mavenConfig.setMvnRepository(
+ settings.getOrDefault(SettingService.KEY_MAVEN_REPOSITORY,
emptySetting).getSettingValue());
- if (settings.containsKey(CommonConfig.MAVEN_AUTH_PASSWORD().key())) {
- mavenConfig.setMvnAuthPassword(
-
settings.get(CommonConfig.MAVEN_AUTH_PASSWORD().key()).getSettingValue());
- }
+ mavenConfig.setMvnAuthUser(
+ settings.getOrDefault(SettingService.KEY_MAVEN_AUTH_USER,
emptySetting).getSettingValue());
+
+ mavenConfig.setMvnAuthPassword(
+ settings
+ .getOrDefault(SettingService.KEY_MAVEN_AUTH_PASSWORD, emptySetting)
+ .getSettingValue());
return mavenConfig;
}
@@ -80,7 +101,6 @@ public class MavenConfig {
* values, they will be updated in the internal configuration.
*/
public void updateConfig() {
-
if (StringUtils.isNotBlank(mvnSettings)) {
InternalConfigHolder.set(CommonConfig.MAVEN_SETTINGS_PATH(),
mvnSettings);
}
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/SenderEmail.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/SenderEmail.java
index d248cb77f..30ee35fb1 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/SenderEmail.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/SenderEmail.java
@@ -17,17 +17,51 @@
package org.apache.streampark.console.core.bean;
+import org.apache.streampark.console.core.entity.Setting;
+import org.apache.streampark.console.core.service.SettingService;
+
import lombok.Getter;
import lombok.Setter;
+import java.util.Arrays;
+import java.util.List;
+
@Getter
@Setter
public class SenderEmail {
- private String smtpHost;
- private Integer smtpPort;
+ private String host;
+ private Integer port;
private String from;
private String userName;
private String password;
private boolean ssl;
+
+ public static List<Setting> toSettings(SenderEmail senderEmail) {
+ Setting smtpHost = new Setting();
+ smtpHost.setSettingKey(SettingService.KEY_ALERT_EMAIL_HOST);
+ smtpHost.setSettingValue(senderEmail.getHost());
+
+ Setting smtpPort = new Setting();
+ smtpPort.setSettingKey(SettingService.KEY_ALERT_EMAIL_PORT);
+ smtpPort.setSettingValue(senderEmail.getPort().toString());
+
+ Setting smtpFrom = new Setting();
+ smtpFrom.setSettingKey(SettingService.KEY_ALERT_EMAIL_FROM);
+ smtpFrom.setSettingValue(senderEmail.getFrom());
+
+ Setting smtpUserName = new Setting();
+ smtpUserName.setSettingKey(SettingService.KEY_ALERT_EMAIL_USERNAME);
+ smtpUserName.setSettingValue(senderEmail.getUserName());
+
+ Setting smtpPassword = new Setting();
+ smtpPassword.setSettingKey(SettingService.KEY_ALERT_EMAIL_PASSWORD);
+ smtpPassword.setSettingValue(senderEmail.getPassword());
+
+ Setting smtpSsl = new Setting();
+ smtpSsl.setSettingKey(SettingService.KEY_ALERT_EMAIL_SSL);
+ smtpSsl.setSettingValue(senderEmail.isSsl() + "");
+
+ return Arrays.asList(smtpHost, smtpPort, smtpFrom, smtpUserName,
smtpPassword, smtpSsl);
+ }
}
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/SettingAlertEmailConfigParams.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/SettingAlertEmailConfigParams.java
index f6120d9e3..b30e36b4f 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/SettingAlertEmailConfigParams.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/SettingAlertEmailConfigParams.java
@@ -19,12 +19,14 @@ package org.apache.streampark.console.core.bean;
import org.apache.streampark.console.core.entity.Setting;
-import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
import java.util.Objects;
import java.util.regex.Pattern;
-@Data
+@Getter
+@Setter
public class SettingAlertEmailConfigParams {
private Setting host;
private Setting port;
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/SettingDockerConfigParams.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/SettingDockerConfigParams.java
index af81ef115..ba1250e8a 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/SettingDockerConfigParams.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/SettingDockerConfigParams.java
@@ -19,12 +19,14 @@ package org.apache.streampark.console.core.bean;
import org.apache.streampark.console.core.entity.Setting;
-import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
import java.util.Objects;
import java.util.regex.Pattern;
-@Data
+@Getter
+@Setter
public class SettingDockerConfigParams {
private Setting username;
private Setting password;
@@ -42,7 +44,7 @@ public class SettingDockerConfigParams {
private static final String IPV6_ADDRESS_REGEX =
"^([0-9a-fA-F]{1,4}:){7}([0-9a-fA-F]{1,4}|:)$";
/* domain match rule */
private static final String DOMAIN_NAME_REGEX =
-
"^((http:\\/\\/)|(https:\\/\\/))?([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,6}(\\/)";
+
"^((http://)|(https://))?([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,6}(\\/)";
/* Docker namespace rules based on the format of the domain name */
private static final String NAMESPACE_REGEX =
"^(?!-)[a-zA-Z0-9-]{1,253}(?<!-)$";
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/controller/SettingController.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/controller/SettingController.java
index 50f39d33a..6517e7e1e 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/controller/SettingController.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/controller/SettingController.java
@@ -18,10 +18,10 @@
package org.apache.streampark.console.core.controller;
import org.apache.streampark.common.util.HadoopUtils;
-import org.apache.streampark.console.base.domain.ResponseCode;
import org.apache.streampark.console.base.domain.RestResponse;
-import org.apache.streampark.console.core.bean.SettingAlertEmailConfigParams;
-import org.apache.streampark.console.core.bean.SettingDockerConfigParams;
+import org.apache.streampark.console.core.bean.DockerConfig;
+import org.apache.streampark.console.core.bean.ResponseResult;
+import org.apache.streampark.console.core.bean.SenderEmail;
import org.apache.streampark.console.core.entity.Setting;
import org.apache.streampark.console.core.service.SettingService;
@@ -34,11 +34,9 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
-import java.util.Arrays;
import java.util.List;
@Tag(name = "SETTING_TAG")
@@ -75,39 +73,51 @@ public class SettingController {
return RestResponse.success(updated);
}
+ @Operation(summary = "get Docker config")
+ @PostMapping("docker")
+ @RequiresPermissions("setting:view")
+ public RestResponse docker() {
+ DockerConfig dockerConfig = DockerConfig.fromSetting();
+ return RestResponse.success(dockerConfig);
+ }
+
+ @Operation(summary = "check docker setting")
+ @PostMapping("check/docker")
+ @RequiresPermissions("setting:view")
+ public RestResponse checkDocker(DockerConfig dockerConfig) {
+ ResponseResult result = settingService.checkDocker(dockerConfig);
+ return RestResponse.success(result);
+ }
+
@Operation(summary = "Update docker setting")
@PostMapping("update/docker")
@RequiresPermissions("setting:update")
- public RestResponse updateDocker(@RequestBody SettingDockerConfigParams
params) {
- if (!SettingDockerConfigParams.verifyParams(params)) {
- return RestResponse.fail("The parameter is incorrect, please check!",
ResponseCode.CODE_FAIL);
- }
-
- List<Setting> settings =
- Arrays.asList(
- params.getAddress(), params.getNamespace(),
- params.getUsername(), params.getPassword());
- boolean updated = settingService.updateSettings(settings);
+ public RestResponse updateDocker(DockerConfig dockerConfig) {
+ boolean updated = settingService.updateDocker(dockerConfig);
return RestResponse.success(updated);
}
- @Operation(summary = "Update alert email")
- @PostMapping("update/alert/email")
- @RequiresPermissions("setting:update")
- public RestResponse updateAlertEmail(@RequestBody
SettingAlertEmailConfigParams params) {
- if (!SettingAlertEmailConfigParams.verifyParams(params)) {
- return RestResponse.fail("The parameter is incorrect, please check!",
ResponseCode.CODE_FAIL);
- }
+ @Operation(summary = "get sender email")
+ @PostMapping("email")
+ @RequiresPermissions("setting:view")
+ public RestResponse email() {
+ SenderEmail senderEmail = settingService.getSenderEmail();
+ return RestResponse.success(senderEmail);
+ }
- List<Setting> settings =
- Arrays.asList(
- params.getHost(),
- params.getPort(),
- params.getFrom(),
- params.getUsername(),
- params.getPassword(),
- params.getSsl());
- boolean updated = settingService.updateSettings(settings);
+ @Operation(summary = "check email")
+ @PostMapping("check/email")
+ @RequiresPermissions("setting:view")
+ public RestResponse checkEmail(SenderEmail senderEmail) {
+ ResponseResult result = settingService.checkEmail(senderEmail);
+ return RestResponse.success(result);
+ }
+
+ @Operation(summary = "Update sender email")
+ @PostMapping("update/email")
+ @RequiresPermissions("setting:update")
+ public RestResponse updateEmail(SenderEmail senderEmail) {
+ boolean updated = settingService.updateEmail(senderEmail);
return RestResponse.success(updated);
}
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/runner/EnvInitializer.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/runner/EnvInitializer.java
index 5707e8e64..e702018b4 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/runner/EnvInitializer.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/runner/EnvInitializer.java
@@ -27,11 +27,10 @@ import org.apache.streampark.common.fs.FsOperator;
import org.apache.streampark.common.util.SystemPropertyUtils;
import org.apache.streampark.common.util.Utils;
import org.apache.streampark.console.base.util.WebUtils;
+import org.apache.streampark.console.core.bean.MavenConfig;
import org.apache.streampark.console.core.entity.FlinkEnv;
import org.apache.streampark.console.core.service.SettingService;
-import org.apache.commons.lang3.StringUtils;
-
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
@@ -111,25 +110,7 @@ public class EnvInitializer implements ApplicationRunner {
InternalConfigHolder.set(config, springEnv.getProperty(key,
config.classType()));
});
- String mvnSettings = settingService.getMavenSettings();
- if (StringUtils.isNotEmpty(mvnSettings)) {
- InternalConfigHolder.set(CommonConfig.MAVEN_SETTINGS_PATH(),
mvnSettings);
- }
-
- String mvnRepository = settingService.getMavenRepository();
- if (StringUtils.isNotEmpty(mvnRepository)) {
- InternalConfigHolder.set(CommonConfig.MAVEN_REMOTE_URL(), mvnRepository);
- }
-
- String mvnAuthUser = settingService.getMavenAuthUser();
- if (StringUtils.isNotEmpty(mvnAuthUser)) {
- InternalConfigHolder.set(CommonConfig.MAVEN_AUTH_USER(), mvnAuthUser);
- }
-
- String mvnAuthPassword = settingService.getMavenAuthPassword();
- if (StringUtils.isNotEmpty(mvnAuthPassword)) {
- InternalConfigHolder.set(CommonConfig.MAVEN_AUTH_PASSWORD(),
mvnAuthPassword);
- }
+ MavenConfig.fromSetting().updateConfig();
InternalConfigHolder.log();
}
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/SettingService.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/SettingService.java
index bab221278..927bb287a 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/SettingService.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/SettingService.java
@@ -17,12 +17,13 @@
package org.apache.streampark.console.core.service;
+import org.apache.streampark.console.core.bean.DockerConfig;
+import org.apache.streampark.console.core.bean.ResponseResult;
import org.apache.streampark.console.core.bean.SenderEmail;
import org.apache.streampark.console.core.entity.Setting;
import com.baomidou.mybatisplus.extension.service.IService;
-import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@@ -54,31 +55,15 @@ public interface SettingService extends IService<Setting> {
boolean update(Setting setting);
- /**
- * * Updates the specified Settings.
- *
- * @param settings list of setting object to update
- * @return true if the update is successful, false otherwise
- */
- boolean updateSettings(List<Setting> settings);
+ boolean updateDocker(DockerConfig dockerConfig);
- String getMavenSettings();
-
- String getMavenRepository();
-
- String getMavenAuthUser();
-
- String getMavenAuthPassword();
+ boolean updateEmail(SenderEmail senderEmail);
SenderEmail getSenderEmail();
- String getDockerRegisterAddress();
-
- String getDockerRegisterUser();
-
- String getDockerRegisterPassword();
+ String getIngressModeDefault();
- String getDockerRegisterNamespace();
+ ResponseResult checkDocker(DockerConfig dockerConfig);
- String getIngressModeDefault();
+ ResponseResult checkEmail(SenderEmail senderEmail);
}
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/alert/impl/EmailAlertNotifyServiceImpl.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/alert/impl/EmailAlertNotifyServiceImpl.java
index 38ff6d71a..df0ed2800 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/alert/impl/EmailAlertNotifyServiceImpl.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/alert/impl/EmailAlertNotifyServiceImpl.java
@@ -80,15 +80,15 @@ public class EmailAlertNotifyServiceImpl implements
AlertNotifyService {
HtmlEmail htmlEmail = new HtmlEmail();
htmlEmail.setCharset("UTF-8");
- htmlEmail.setHostName(senderEmail.getSmtpHost());
+ htmlEmail.setHostName(senderEmail.getHost());
htmlEmail.setAuthentication(senderEmail.getUserName(),
senderEmail.getPassword());
htmlEmail.setFrom(senderEmail.getFrom());
if (senderEmail.isSsl()) {
htmlEmail.setSSLCheckServerIdentity(true);
htmlEmail.setSSLOnConnect(true);
- htmlEmail.setSslSmtpPort(senderEmail.getSmtpPort().toString());
+ htmlEmail.setSslSmtpPort(senderEmail.getPort().toString());
} else {
- htmlEmail.setSmtpPort(senderEmail.getSmtpPort());
+ htmlEmail.setSmtpPort(senderEmail.getPort());
}
htmlEmail.setSubject(mail.getSubject());
htmlEmail.setHtmlMsg(html);
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/AppBuildPipeServiceImpl.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/AppBuildPipeServiceImpl.java
index b735797c0..d54aff194 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/AppBuildPipeServiceImpl.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/AppBuildPipeServiceImpl.java
@@ -26,6 +26,7 @@ import org.apache.streampark.common.util.ThreadUtils;
import org.apache.streampark.common.util.Utils;
import org.apache.streampark.console.base.exception.ApiAlertException;
import org.apache.streampark.console.base.util.WebUtils;
+import org.apache.streampark.console.core.bean.DockerConfig;
import org.apache.streampark.console.core.entity.AppBuildPipeline;
import org.apache.streampark.console.core.entity.Application;
import org.apache.streampark.console.core.entity.ApplicationConfig;
@@ -359,6 +360,7 @@ public class AppBuildPipeServiceImpl
log.info("Submit params to building pipeline : {}",
k8sSessionBuildRequest);
return FlinkK8sSessionBuildPipeline.of(k8sSessionBuildRequest);
case KUBERNETES_NATIVE_APPLICATION:
+ DockerConfig dockerConfig = DockerConfig.fromSetting();
FlinkK8sApplicationBuildRequest k8sApplicationBuildRequest =
new FlinkK8sApplicationBuildRequest(
app.getJobName(),
@@ -375,10 +377,10 @@ public class AppBuildPipeServiceImpl
app.getK8sPodTemplates(),
app.getK8sHadoopIntegration() != null ?
app.getK8sHadoopIntegration() : false,
DockerConf.of(
- settingService.getDockerRegisterAddress(),
- settingService.getDockerRegisterNamespace(),
- settingService.getDockerRegisterUser(),
- settingService.getDockerRegisterPassword()),
+ dockerConfig.getAddress(),
+ dockerConfig.getNamespace(),
+ dockerConfig.getUserName(),
+ dockerConfig.getPassword()),
app.getIngressTemplate());
log.info("Submit params to building pipeline : {}",
k8sApplicationBuildRequest);
return FlinkK8sApplicationBuildPipeline.of(k8sApplicationBuildRequest);
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/SettingServiceImpl.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/SettingServiceImpl.java
index 6494059b8..332f353b9 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/SettingServiceImpl.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/SettingServiceImpl.java
@@ -17,8 +17,9 @@
package org.apache.streampark.console.core.service.impl;
-import org.apache.streampark.common.conf.CommonConfig;
-import org.apache.streampark.common.conf.InternalConfigHolder;
+import org.apache.streampark.console.core.bean.DockerConfig;
+import org.apache.streampark.console.core.bean.MavenConfig;
+import org.apache.streampark.console.core.bean.ResponseResult;
import org.apache.streampark.console.core.bean.SenderEmail;
import org.apache.streampark.console.core.entity.Setting;
import org.apache.streampark.console.core.mapper.SettingMapper;
@@ -71,21 +72,7 @@ public class SettingServiceImpl extends
ServiceImpl<SettingMapper, Setting>
new LambdaQueryWrapper<Setting>().eq(Setting::getSettingKey,
setting.getSettingKey());
this.update(entity, queryWrapper);
- String settingKey = setting.getSettingKey();
- if (CommonConfig.MAVEN_SETTINGS_PATH().key().equals(settingKey)) {
- InternalConfigHolder.set(CommonConfig.MAVEN_SETTINGS_PATH(), value);
- }
-
- if (CommonConfig.MAVEN_REMOTE_URL().key().equals(settingKey)) {
- InternalConfigHolder.set(CommonConfig.MAVEN_REMOTE_URL(), value);
- }
-
- if (CommonConfig.MAVEN_AUTH_USER().key().equals(settingKey)) {
- InternalConfigHolder.set(CommonConfig.MAVEN_AUTH_USER(), value);
- }
- if (CommonConfig.MAVEN_AUTH_PASSWORD().key().equals(settingKey)) {
- InternalConfigHolder.set(CommonConfig.MAVEN_AUTH_PASSWORD(), value);
- }
+ MavenConfig.fromSetting(setting).updateConfig();
Optional<Setting> optional =
Optional.ofNullable(SETTINGS.get(setting.getSettingKey()));
optional.ifPresent(x -> x.setSettingValue(value));
@@ -95,10 +82,21 @@ public class SettingServiceImpl extends
ServiceImpl<SettingMapper, Setting>
}
}
- public boolean updateSettings(List<Setting> settings) {
+ public boolean updateDocker(DockerConfig dockerConfig) {
+ List<Setting> settings = DockerConfig.toSettings(dockerConfig);
+ for (Setting each : settings) {
+ if (!update(each)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ @Override
+ public boolean updateEmail(SenderEmail senderEmail) {
+ List<Setting> settings = SenderEmail.toSettings(senderEmail);
for (Setting each : settings) {
- boolean result = update(each);
- if (!result) {
+ if (!update(each)) {
return false;
}
}
@@ -116,12 +114,16 @@ public class SettingServiceImpl extends
ServiceImpl<SettingMapper, Setting>
String ssl =
SETTINGS.get(SettingService.KEY_ALERT_EMAIL_SSL).getSettingValue();
SenderEmail senderEmail = new SenderEmail();
- senderEmail.setSmtpHost(host);
- senderEmail.setSmtpPort(Integer.parseInt(port));
+ senderEmail.setHost(host);
+ if (StringUtils.isNotBlank(port)) {
+ senderEmail.setPort(Integer.parseInt(port));
+ }
senderEmail.setFrom(from);
senderEmail.setUserName(userName);
senderEmail.setPassword(password);
- senderEmail.setSsl(Boolean.parseBoolean(ssl));
+ if (StringUtils.isNotBlank(ssl)) {
+ senderEmail.setSsl(Boolean.parseBoolean(ssl));
+ }
return senderEmail;
} catch (Exception e) {
log.warn("Fault Alert Email is not set.");
@@ -130,63 +132,27 @@ public class SettingServiceImpl extends
ServiceImpl<SettingMapper, Setting>
}
@Override
- public String getDockerRegisterAddress() {
- return SETTINGS
- .getOrDefault(SettingService.KEY_DOCKER_REGISTER_ADDRESS, emptySetting)
- .getSettingValue();
- }
-
- @Override
- public String getDockerRegisterUser() {
- return SETTINGS
- .getOrDefault(SettingService.KEY_DOCKER_REGISTER_USER, emptySetting)
- .getSettingValue();
- }
-
- @Override
- public String getDockerRegisterPassword() {
- return SETTINGS
- .getOrDefault(SettingService.KEY_DOCKER_REGISTER_PASSWORD,
emptySetting)
- .getSettingValue();
- }
-
- @Override
- public String getDockerRegisterNamespace() {
- return SETTINGS
- .getOrDefault(SettingService.KEY_DOCKER_REGISTER_NAMESPACE,
emptySetting)
- .getSettingValue();
- }
-
- @Override
- public String getMavenSettings() {
- return SETTINGS.getOrDefault(SettingService.KEY_MAVEN_SETTINGS,
emptySetting).getSettingValue();
- }
-
- @Override
- public String getMavenRepository() {
+ public String getIngressModeDefault() {
return SETTINGS
- .getOrDefault(SettingService.KEY_MAVEN_REPOSITORY, emptySetting)
+ .getOrDefault(SettingService.KEY_INGRESS_MODE_DEFAULT, emptySetting)
.getSettingValue();
}
@Override
- public String getMavenAuthUser() {
- return SETTINGS
- .getOrDefault(SettingService.KEY_MAVEN_AUTH_USER, emptySetting)
- .getSettingValue();
+ public ResponseResult checkDocker(DockerConfig dockerConfig) {
+ // TODO check
+ ResponseResult result = new ResponseResult();
+ result.setStatus(200);
+ result.setMsg("success");
+ return result;
}
@Override
- public String getMavenAuthPassword() {
- return SETTINGS
- .getOrDefault(SettingService.KEY_MAVEN_AUTH_PASSWORD, emptySetting)
- .getSettingValue();
- }
-
- @Override
- public String getIngressModeDefault() {
- return SETTINGS
- .getOrDefault(SettingService.KEY_INGRESS_MODE_DEFAULT, emptySetting)
- .getSettingValue();
+ public ResponseResult checkEmail(SenderEmail senderEmail) {
+ // TODO check
+ ResponseResult result = new ResponseResult();
+ result.setStatus(200);
+ result.setMsg("success");
+ return result;
}
}
diff --git
a/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/core/bean/SettingAlertEmailConfigParamsTest.java
b/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/core/bean/SettingAlertEmailConfigParamsTest.java
deleted file mode 100644
index 6ae7feeb2..000000000
---
a/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/core/bean/SettingAlertEmailConfigParamsTest.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.streampark.console.core.bean;
-
-import org.apache.streampark.console.core.entity.Setting;
-
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-
-public class SettingAlertEmailConfigParamsTest {
- private SettingAlertEmailConfigParams alertEmailConfigParams;
- private Setting setting;
- private Method method;
-
- @BeforeEach
- void setUp() {
- alertEmailConfigParams = new SettingAlertEmailConfigParams();
- setting = new Setting();
- }
-
- @Test
- void verifyEmailHostTest()
- throws NoSuchMethodException, InvocationTargetException,
IllegalAccessException {
- alertEmailConfigParams.setHost(setting);
- initVerifyMethod("verifyHost");
-
- setting.setSettingValue("test");
- Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams));
-
- setting.setSettingValue("[email protected]");
- Assertions.assertTrue((boolean) method.invoke(alertEmailConfigParams));
-
- setting.setSettingValue("testEmail/test.com");
- Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams));
-
- setting.setSettingValue(null);
- Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams));
- }
-
- @Test
- void verifyEmailPortTest()
- throws NoSuchMethodException, InvocationTargetException,
IllegalAccessException {
- alertEmailConfigParams.setPort(setting);
- initVerifyMethod("verifyPort");
-
- setting.setSettingValue("3306");
- Assertions.assertTrue((boolean) method.invoke(alertEmailConfigParams));
-
- setting.setSettingValue("65535");
- Assertions.assertTrue((boolean) method.invoke(alertEmailConfigParams));
-
- setting.setSettingValue("-1");
- Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams));
-
- setting.setSettingValue("0");
- Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams));
-
- setting.setSettingValue("65536");
- Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams));
-
- setting.setSettingValue(null);
- Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams));
- }
-
- /* TODO .. */
- @Test
- void verifyFromTest() throws NoSuchMethodException {
- alertEmailConfigParams.setHost(setting);
- initVerifyMethod("verifyFrom");
- }
-
- @Test
- void verifyUserNameTest()
- throws NoSuchMethodException, InvocationTargetException,
IllegalAccessException {
- alertEmailConfigParams.setUsername(setting);
- initVerifyMethod("verifyUserName");
-
- setting.setSettingValue("Aa111111");
- Assertions.assertTrue((boolean) method.invoke(alertEmailConfigParams));
-
- setting.setSettingValue("Aa@aa_");
- Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams));
-
- setting.setSettingValue("test");
- Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams));
-
- setting.setSettingValue("eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee");
- Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams));
-
- setting.setSettingValue(null);
- Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams));
- }
-
- @Test
- void verifyPassWordTest()
- throws NoSuchMethodException, InvocationTargetException,
IllegalAccessException {
- alertEmailConfigParams.setPassword(setting);
- initVerifyMethod("verifyPassWord");
-
- setting.setSettingValue("AaaAaa");
- Assertions.assertTrue((boolean) method.invoke(alertEmailConfigParams));
-
- setting.setSettingValue("AaAa");
- Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams));
-
- setting.setSettingValue("eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee");
- Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams));
-
- setting.setSettingValue("123456789");
- Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams));
-
- setting.setSettingValue(null);
- Assertions.assertFalse((boolean) method.invoke(alertEmailConfigParams));
- }
-
- void initVerifyMethod(final String methodName) throws NoSuchMethodException {
- Class<SettingAlertEmailConfigParams> clazz =
SettingAlertEmailConfigParams.class;
- method = clazz.getDeclaredMethod(methodName);
- method.setAccessible(true);
- }
-}
diff --git
a/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/core/bean/SettingDockerConfigParamsTest.java
b/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/core/bean/SettingDockerConfigParamsTest.java
deleted file mode 100644
index abb2b0570..000000000
---
a/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/core/bean/SettingDockerConfigParamsTest.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.streampark.console.core.bean;
-
-import org.apache.streampark.console.core.entity.Setting;
-
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-
-public class SettingDockerConfigParamsTest {
- private SettingDockerConfigParams dockerConfigParams;
- private Setting setting;
- private Method method;
-
- @BeforeEach
- void setUp() {
- dockerConfigParams = new SettingDockerConfigParams();
- setting = new Setting();
- }
-
- @Test
- void verifyUserNameTest()
- throws NoSuchMethodException, InvocationTargetException,
IllegalAccessException {
- dockerConfigParams.setUsername(setting);
- initVerifyMethod("verifyUserName");
-
- setting.setSettingValue("Aa111111");
- Assertions.assertTrue((boolean) method.invoke(dockerConfigParams));
-
- setting.setSettingValue("Aa111111@");
- Assertions.assertFalse((boolean) method.invoke(dockerConfigParams));
-
- setting.setSettingValue("Aa@aa_");
- Assertions.assertFalse((boolean) method.invoke(dockerConfigParams));
-
- setting.setSettingValue("test");
- Assertions.assertFalse((boolean) method.invoke(dockerConfigParams));
-
- setting.setSettingValue("eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee");
- Assertions.assertFalse((boolean) method.invoke(dockerConfigParams));
-
- setting.setSettingValue(null);
- Assertions.assertFalse((boolean) method.invoke(dockerConfigParams));
- }
-
- @Test
- void verifyPassWordTest()
- throws NoSuchMethodException, InvocationTargetException,
IllegalAccessException {
- dockerConfigParams.setPassword(setting);
- initVerifyMethod("verifyPassWord");
-
- setting.setSettingValue("AaaAaa");
- Assertions.assertTrue((boolean) method.invoke(dockerConfigParams));
-
- setting.setSettingValue("AaAa");
- Assertions.assertFalse((boolean) method.invoke(dockerConfigParams));
-
- setting.setSettingValue("eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee");
- Assertions.assertFalse((boolean) method.invoke(dockerConfigParams));
-
- setting.setSettingValue("123456789");
- Assertions.assertFalse((boolean) method.invoke(dockerConfigParams));
-
- setting.setSettingValue(null);
- Assertions.assertFalse((boolean) method.invoke(dockerConfigParams));
- }
-
- @Test
- void verifyAddressTest()
- throws NoSuchMethodException, InvocationTargetException,
IllegalAccessException {
- dockerConfigParams.setAddress(setting);
- initVerifyMethod("verifyAddress");
-
- setting.setSettingValue("https://www.google.com/");
- Assertions.assertTrue((boolean) method.invoke(dockerConfigParams));
-
- setting.setSettingValue("http://www.google.com/");
- Assertions.assertTrue((boolean) method.invoke(dockerConfigParams));
-
- setting.setSettingValue("www.google.com");
- Assertions.assertFalse((boolean) method.invoke(dockerConfigParams));
-
- setting.setSettingValue("2001:0db8:85a3:0000:0000:8a2e:0370:7334");
- Assertions.assertTrue((boolean) method.invoke(dockerConfigParams));
-
- setting.setSettingValue("127.0.0.1");
- Assertions.assertTrue((boolean) method.invoke(dockerConfigParams));
-
- setting.setSettingValue("htp://www.google.com");
- Assertions.assertFalse((boolean) method.invoke(dockerConfigParams));
-
- setting.setSettingValue("ww.google.com");
- Assertions.assertFalse((boolean) method.invoke(dockerConfigParams));
-
- setting.setSettingValue("localhost");
- Assertions.assertFalse((boolean) method.invoke(dockerConfigParams));
-
- setting.setSettingValue("0.0.0");
- Assertions.assertFalse((boolean) method.invoke(dockerConfigParams));
-
- setting.setSettingValue(null);
- Assertions.assertFalse((boolean) method.invoke(dockerConfigParams));
- }
-
- @Test
- void verifyNameSpaceTest()
- throws NoSuchMethodException, InvocationTargetException,
IllegalAccessException {
- dockerConfigParams.setAddress(setting);
- initVerifyMethod("verifyNameSpace");
-
- setting.setSettingValue("dom.mod");
- Assertions.assertFalse((boolean) method.invoke(dockerConfigParams));
-
- setting.setSettingValue(null);
- Assertions.assertFalse((boolean) method.invoke(dockerConfigParams));
- }
-
- void initVerifyMethod(final String methodName) throws NoSuchMethodException {
- Class<SettingDockerConfigParams> clazz = SettingDockerConfigParams.class;
- method = clazz.getDeclaredMethod(methodName);
- method.setAccessible(true);
- }
-}
diff --git
a/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/core/service/SettingServiceTest.java
b/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/core/service/SettingServiceTest.java
index 17f839ff6..b8232e9b5 100644
---
a/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/core/service/SettingServiceTest.java
+++
b/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/core/service/SettingServiceTest.java
@@ -18,113 +18,68 @@
package org.apache.streampark.console.core.service;
import org.apache.streampark.console.SpringTestBase;
-import org.apache.streampark.console.core.bean.SettingAlertEmailConfigParams;
-import org.apache.streampark.console.core.bean.SettingDockerConfigParams;
-import org.apache.streampark.console.core.entity.Setting;
+import org.apache.streampark.console.core.bean.DockerConfig;
+import org.apache.streampark.console.core.bean.SenderEmail;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
-import java.util.Arrays;
-import java.util.List;
-
class SettingServiceTest extends SpringTestBase {
- private final SettingDockerConfigParams dockerConfigParams = new
SettingDockerConfigParams();
- private final SettingAlertEmailConfigParams alertEmailConfigParams =
- new SettingAlertEmailConfigParams();
@Autowired SettingService settingService;
- /*docker config*/
- void initDockerConfigParams(SettingDockerConfigParams params) {
- Setting address = settingService.get("docker.register.address");
- address.setSettingValue("test-address-setting-value");
- Setting username = settingService.get("docker.register.user");
- username.setSettingValue("test-username-setting-value");
- Setting password = settingService.get("docker.register.password");
- password.setSettingValue("test-password-setting-value");
- Setting namespace = settingService.get("docker.register.namespace");
- namespace.setSettingValue("test-namespace-setting-value");
- params.setAddress(address);
- params.setUsername(username);
- params.setPassword(password);
- params.setNamespace(namespace);
- }
-
@Test
void testUpdateDockerConfigTest() {
- initDockerConfigParams(dockerConfigParams);
- List<Setting> settings =
- Arrays.asList(
- dockerConfigParams.getAddress(),
- dockerConfigParams.getNamespace(),
- dockerConfigParams.getUsername(),
- dockerConfigParams.getPassword());
- settingService.updateSettings(settings);
+ DockerConfig dockerConfig = new DockerConfig();
+ dockerConfig.setUserName("test-username-setting-value");
+ dockerConfig.setPassword("test-password-setting-value");
+ dockerConfig.setNamespace("test-namespace-setting-value");
+ dockerConfig.setAddress("test-address-setting-value");
+
+ settingService.updateDocker(dockerConfig);
Assertions.assertEquals(
"test-address-setting-value",
- settingService.get("docker.register.address").getSettingValue());
+
settingService.get(SettingService.KEY_DOCKER_REGISTER_ADDRESS).getSettingValue());
Assertions.assertEquals(
"test-username-setting-value",
- settingService.get("docker.register.user").getSettingValue());
+
settingService.get(SettingService.KEY_DOCKER_REGISTER_USER).getSettingValue());
Assertions.assertEquals(
"test-password-setting-value",
- settingService.get("docker.register.password").getSettingValue());
+
settingService.get(SettingService.KEY_DOCKER_REGISTER_PASSWORD).getSettingValue());
Assertions.assertEquals(
"test-namespace-setting-value",
- settingService.get("docker.register.namespace").getSettingValue());
- }
-
- /*alert email config*/
- void initAlertEmailConfigParams(SettingAlertEmailConfigParams params) {
- Setting host = settingService.get("alert.email.host");
- host.setSettingValue("test-host-setting-value");
- Setting port = settingService.get("alert.email.port");
- port.setSettingValue("test-port-setting-value");
- Setting from = settingService.get("alert.email.from");
- from.setSettingValue("test-from-setting-value");
- Setting username = settingService.get("alert.email.userName");
- username.setSettingValue("test-username-setting-value");
- Setting password = settingService.get("alert.email.password");
- password.setSettingValue("test-password-setting-value");
- Setting ssl = settingService.get("alert.email.ssl");
- ssl.setSettingValue("test-ssl-setting-value");
- params.setHost(host);
- params.setPort(port);
- params.setFrom(from);
- params.setUsername(username);
- params.setPassword(password);
- params.setSsl(ssl);
+
settingService.get(SettingService.KEY_DOCKER_REGISTER_NAMESPACE).getSettingValue());
}
@Test
void testUpdateAlertEmailConfigTest() {
- initAlertEmailConfigParams(alertEmailConfigParams);
- List<Setting> settings =
- Arrays.asList(
- alertEmailConfigParams.getHost(),
- alertEmailConfigParams.getPort(),
- alertEmailConfigParams.getFrom(),
- alertEmailConfigParams.getUsername(),
- alertEmailConfigParams.getPassword(),
- alertEmailConfigParams.getSsl());
- settingService.updateSettings(settings);
+ SenderEmail senderEmail = new SenderEmail();
+ senderEmail.setHost("test-host-setting-value");
+ senderEmail.setUserName("test-username-setting-value");
+ senderEmail.setPassword("test-password-setting-value");
+ senderEmail.setFrom("test-from-setting-value");
+ senderEmail.setSsl(true);
+ senderEmail.setPort(456);
+
+ settingService.updateEmail(senderEmail);
Assertions.assertEquals(
- "test-host-setting-value",
settingService.get("alert.email.host").getSettingValue());
- Assertions.assertEquals(
- "test-port-setting-value",
settingService.get("alert.email.port").getSettingValue());
+ "test-host-setting-value",
+
settingService.get(SettingService.KEY_ALERT_EMAIL_HOST).getSettingValue());
Assertions.assertEquals(
- "test-from-setting-value",
settingService.get("alert.email.from").getSettingValue());
+ "test-from-setting-value",
+
settingService.get(SettingService.KEY_ALERT_EMAIL_FROM).getSettingValue());
Assertions.assertEquals(
"test-username-setting-value",
- settingService.get("alert.email.userName").getSettingValue());
+
settingService.get(SettingService.KEY_ALERT_EMAIL_USERNAME).getSettingValue());
Assertions.assertEquals(
"test-password-setting-value",
- settingService.get("alert.email.password").getSettingValue());
+
settingService.get(SettingService.KEY_ALERT_EMAIL_PASSWORD).getSettingValue());
+ Assertions.assertEquals(
+ "456",
settingService.get(SettingService.KEY_ALERT_EMAIL_PORT).getSettingValue());
Assertions.assertEquals(
- "test-ssl-setting-value",
settingService.get("alert.email.ssl").getSettingValue());
+ "true",
settingService.get(SettingService.KEY_ALERT_EMAIL_SSL).getSettingValue());
}
}
diff --git
a/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/core/service/alert/AlertServiceTest.java
b/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/core/service/alert/AlertServiceTest.java
index 4bc4762cd..348a2f604 100644
---
a/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/core/service/alert/AlertServiceTest.java
+++
b/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/core/service/alert/AlertServiceTest.java
@@ -91,9 +91,9 @@ class AlertServiceTest {
senderEmail.setFrom("****@domain.com");
senderEmail.setUserName("******");
senderEmail.setPassword("******");
- senderEmail.setSmtpPort(465);
+ senderEmail.setPort(465);
senderEmail.setSsl(true);
- senderEmail.setSmtpHost("smtp.exmail.qq.com");
+ senderEmail.setHost("smtp.exmail.qq.com");
}
void before2() {
@@ -232,15 +232,15 @@ class AlertServiceTest {
private void sendEmail(String subject, String html, String... mails) throws
EmailException {
HtmlEmail htmlEmail = new HtmlEmail();
htmlEmail.setCharset("UTF-8");
- htmlEmail.setHostName(this.senderEmail.getSmtpHost());
+ htmlEmail.setHostName(this.senderEmail.getHost());
htmlEmail.setAuthentication(this.senderEmail.getUserName(),
this.senderEmail.getPassword());
htmlEmail.setFrom(this.senderEmail.getFrom());
if (this.senderEmail.isSsl()) {
htmlEmail.setSSLOnConnect(true);
- htmlEmail.setSslSmtpPort(this.senderEmail.getSmtpPort().toString());
+ htmlEmail.setSslSmtpPort(this.senderEmail.getPort().toString());
} else {
- htmlEmail.setSmtpPort(this.senderEmail.getSmtpPort());
+ htmlEmail.setSmtpPort(this.senderEmail.getPort());
}
htmlEmail.setSubject(subject);
htmlEmail.setHtmlMsg(html);
diff --git
a/streampark-console/streampark-console-webapp/src/api/flink/setting/index.ts
b/streampark-console/streampark-console-webapp/src/api/flink/setting/index.ts
index a463e738f..f12e09378 100644
---
a/streampark-console/streampark-console-webapp/src/api/flink/setting/index.ts
+++
b/streampark-console/streampark-console-webapp/src/api/flink/setting/index.ts
@@ -60,19 +60,18 @@ export function fetchCheckHadoop(): Promise<boolean> {
});
}
-//TODO: Getting docker configuration through the backend interface
/**
* get docker setting info
*/
export function fetchDockerConfig() {
- return defHttp.post({ url: '/flink/setting/all' });
+ return defHttp.post({ url: '/flink/setting/docker' });
}
/**
* get alert setting info
*/
-export function fetchAlertConfig() {
- return defHttp.post({ url: '/flink/setting/all' });
+export function fetchEmailConfig() {
+ return defHttp.post({ url: '/flink/setting/email' });
}
/**
@@ -90,7 +89,7 @@ export function fetchDockerUpdate(data: Recordable):
Promise<boolean> {
* Update alert setting
* @returns {Promise<Boolean>}
*/
-export function fetchAlertUpdate(data: Recordable): Promise<boolean> {
+export function fetchEmailUpdate(data: Recordable): Promise<boolean> {
return defHttp.post({
url: SETTING_APi.UPDATE_ALERT,
data,
diff --git
a/streampark-console/streampark-console-webapp/src/views/setting/System/SettingForm.vue
b/streampark-console/streampark-console-webapp/src/views/setting/System/SettingForm.vue
index ff2af114c..03f0c1527 100644
---
a/streampark-console/streampark-console-webapp/src/views/setting/System/SettingForm.vue
+++
b/streampark-console/streampark-console-webapp/src/views/setting/System/SettingForm.vue
@@ -21,8 +21,8 @@
import { BasicModal, useModalInner } from '/@/components/Modal';
import { SystemSetting } from '/@/api/flink/setting/types/setting.type';
import {
- fetchAlertConfig,
- fetchAlertUpdate,
+ fetchEmailConfig,
+ fetchEmailUpdate,
fetchDockerConfig,
fetchDockerUpdate,
} from '/@/api/flink/setting';
@@ -39,7 +39,7 @@
const type = ref('docker');
const title = computed(() => {
if (type.value == 'docker') return
t('setting.system.systemSettingItems.dockerSetting.name');
- if (type.value == 'alert') return
t('setting.system.systemSettingItems.emailSetting.name');
+ if (type.value == 'email') return
t('setting.system.systemSettingItems.emailSetting.name');
return '';
});
const [registerModal, { closeModal, changeLoading }] = useModalInner(async
(data) => {
@@ -49,17 +49,16 @@
let res: any;
type.value = data.type;
- //TODO Separate requests for interfaces based on type
if (data.type === 'docker') {
res = await fetchDockerConfig();
- } else if (data.type === 'docker') {
- res = await fetchAlertConfig();
+ } else if (data.type === 'email') {
+ res = await fetchEmailConfig();
}
settings.value = res
?.filter((i) => i.settingKey.startsWith(data.type))
?.sort((a, b) => a.orderNum - b.orderNum);
- setFieldsValue(
+ await setFieldsValue(
data.settings.reduce((pre, cur) => {
if (!isNullOrUnDef(cur.settingValue)) pre[cur.settingKey] =
cur.settingValue;
return pre;
@@ -90,12 +89,11 @@
: 'Input'
: 'Switch';
- //TODO Build the form schema data based on the data returned by the
interface.
const getField = () => {
if (type.value == 'docker') {
return item.settingKey.replaceAll('docker.register.', '');
}
- if (type.value == 'alert') {
+ if (type.value == 'email') {
return item.settingKey.replaceAll('alert.email.', '');
}
return item.settingKey;
@@ -124,7 +122,7 @@
try {
const formData = await validate();
if (type.value === 'docker') await fetchDockerUpdate(formData);
- if (type.value === 'alert') await fetchAlertUpdate(formData);
+ if (type.value === 'email') await fetchEmailUpdate(formData);
createMessage.success(t('setting.system.update.success'));
closeModal();
emit('success');
diff --git
a/streampark-console/streampark-console-webapp/src/views/setting/System/SettingList.vue
b/streampark-console/streampark-console-webapp/src/views/setting/System/SettingList.vue
index 3a9775732..0a8c3db3d 100644
---
a/streampark-console/streampark-console-webapp/src/views/setting/System/SettingList.vue
+++
b/streampark-console/streampark-console-webapp/src/views/setting/System/SettingList.vue
@@ -69,7 +69,7 @@
});
} else if (record.settingKey.startsWith('alert.email')) {
openModal(true, {
- type: 'alert',
+ type: 'email',
});
} else {
if (!record.editable) {