This is an automated email from the ASF dual-hosted git repository. benjobs pushed a commit to branch issue-3583 in repository https://gitbox.apache.org/repos/asf/incubator-streampark.git
commit 1a83aeba96e1032f1264e96bb3636f5a3dee8f8b Author: benjobs <[email protected]> AuthorDate: Wed Feb 28 01:12:50 2024 +0800 [Improve][WIP] docker|email settings improvements --- .../streampark/console/core/bean/DockerConfig.java | 44 +++++-- .../streampark/console/core/bean/MavenConfig.java | 36 +++--- .../streampark/console/core/bean/SenderEmail.java | 38 +++++- .../core/bean/SettingAlertEmailConfigParams.java | 6 +- .../core/bean/SettingDockerConfigParams.java | 8 +- .../console/core/controller/SettingController.java | 55 ++++---- .../console/core/runner/EnvInitializer.java | 24 +--- .../console/core/service/SettingService.java | 26 +--- .../alert/impl/EmailAlertNotifyServiceImpl.java | 6 +- .../core/service/impl/AppBuildPipeServiceImpl.java | 10 +- .../core/service/impl/SettingServiceImpl.java | 76 +++-------- .../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 ++- 17 files changed, 203 insertions(+), 552 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..7bba34952 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. */ @@ -50,26 +52,23 @@ public class 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 +79,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..d6090d0ef 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,9 @@ 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.SenderEmail; import org.apache.streampark.console.core.entity.Setting; import org.apache.streampark.console.core.service.SettingService; @@ -34,11 +33,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 +72,35 @@ public class SettingController { return RestResponse.success(updated); } + @Operation(summary = "get Docker config") + @PostMapping("docker") + @RequiresPermissions("get") + public RestResponse docker() { + DockerConfig dockerConfig = DockerConfig.fromSetting(); + return RestResponse.success(dockerConfig); + } + @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("get") + 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 = "Update sender email") + @PostMapping("update/email") + @RequiresPermissions("setting:update") + public RestResponse updateAlertEmail(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..86a3f8c2e 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,8 @@ 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 mavenConfig = MavenConfig.fromSetting(); + mavenConfig.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..3812227ad 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,12 @@ package org.apache.streampark.console.core.service; +import org.apache.streampark.console.core.bean.DockerConfig; 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 +54,11 @@ 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 getDockerRegisterNamespace(); - String getIngressModeDefault(); } 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..d1fd33770 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 @@ -19,6 +19,7 @@ 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.SenderEmail; import org.apache.streampark.console.core.entity.Setting; import org.apache.streampark.console.core.mapper.SettingMapper; @@ -95,10 +96,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) { - boolean result = update(each); - if (!result) { + if (!update(each)) { + return false; + } + } + return true; + } + + @Override + public boolean updateEmail(SenderEmail senderEmail) { + List<Setting> settings = SenderEmail.toSettings(senderEmail); + for (Setting each : settings) { + if (!update(each)) { return false; } } @@ -116,8 +128,8 @@ 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); + senderEmail.setPort(Integer.parseInt(port)); senderEmail.setFrom(from); senderEmail.setUserName(userName); senderEmail.setPassword(password); @@ -129,60 +141,6 @@ public class SettingServiceImpl extends ServiceImpl<SettingMapper, Setting> return null; } - @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() { - return SETTINGS - .getOrDefault(SettingService.KEY_MAVEN_REPOSITORY, emptySetting) - .getSettingValue(); - } - - @Override - public String getMavenAuthUser() { - return SETTINGS - .getOrDefault(SettingService.KEY_MAVEN_AUTH_USER, emptySetting) - .getSettingValue(); - } - - @Override - public String getMavenAuthPassword() { - return SETTINGS - .getOrDefault(SettingService.KEY_MAVEN_AUTH_PASSWORD, emptySetting) - .getSettingValue(); - } - @Override public String getIngressModeDefault() { return SETTINGS 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..d42b20faa 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,70 @@ 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.setPort(456); + senderEmail.setUserName("test-username-setting-value"); + senderEmail.setPassword("test-password-setting-value"); + senderEmail.setFrom("test-from-setting-value"); + senderEmail.setSsl(true); + + settingService.updateEmail(senderEmail); Assertions.assertEquals( - "test-host-setting-value", settingService.get("alert.email.host").getSettingValue()); + "test-host-setting-value", + settingService.get(SettingService.KEY_ALERT_EMAIL_HOST).getSettingValue()); Assertions.assertEquals( - "test-port-setting-value", settingService.get("alert.email.port").getSettingValue()); + "test-port-setting-value", + settingService.get(SettingService.KEY_ALERT_EMAIL_PORT).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( - "test-ssl-setting-value", settingService.get("alert.email.ssl").getSettingValue()); + "test-ssl-setting-value", + 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');
