This is an automated email from the ASF dual-hosted git repository.

benjobs pushed a commit to branch dev-2.1.5
in repository https://gitbox.apache.org/repos/asf/incubator-streampark.git


The following commit(s) were added to refs/heads/dev-2.1.5 by this push:
     new a0c0cdd58 [Cherry-Pick-3847] DockerConfig setting error (#3858)
a0c0cdd58 is described below

commit a0c0cdd58b7136cd4c7ec3a9fcc6343a0d9d3052
Author: xiangzihao <[email protected]>
AuthorDate: Fri Jul 12 16:11:43 2024 +0800

    [Cherry-Pick-3847] DockerConfig setting error (#3858)
    
    * [Fix-3681] DockerConfig setting error (#3847)
    
    * fix 3681
    
    * cp issue 3847
---
 .../streampark/console/core/bean/DockerConfig.java | 32 ---------------------
 .../console/core/controller/SettingController.java |  2 +-
 .../console/core/mapper/SettingMapper.java         |  9 +++++-
 .../console/core/service/SettingService.java       |  2 ++
 .../core/service/impl/SettingServiceImpl.java      | 33 ++++++++++++++++++++++
 .../main/resources/mapper/core/SettingMapper.xml   | 14 +++++++++
 .../console/core/service/SettingServiceTest.java   | 16 +++++++++++
 7 files changed, 74 insertions(+), 34 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 870ad3056..c8beeef62 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
@@ -44,38 +44,6 @@ public class DockerConfig {
   private String password;
   private String namespace;
 
-  public static DockerConfig fromSetting() {
-    try {
-      DockerConfig dockerConfig = new DockerConfig();
-      Setting emptySetting = new Setting();
-
-      dockerConfig.setAddress(
-          SettingService.SETTINGS
-              .getOrDefault(SettingService.KEY_DOCKER_REGISTER_ADDRESS, 
emptySetting)
-              .getSettingValue());
-
-      dockerConfig.setUserName(
-          SettingService.SETTINGS
-              .getOrDefault(SettingService.KEY_DOCKER_REGISTER_USER, 
emptySetting)
-              .getSettingValue());
-
-      dockerConfig.setPassword(
-          SettingService.SETTINGS
-              .getOrDefault(SettingService.KEY_DOCKER_REGISTER_PASSWORD, 
emptySetting)
-              .getSettingValue());
-
-      dockerConfig.setNamespace(
-          SettingService.SETTINGS
-              .getOrDefault(SettingService.KEY_DOCKER_REGISTER_NAMESPACE, 
emptySetting)
-              .getSettingValue());
-
-      return dockerConfig;
-    } catch (Exception e) {
-      log.warn("Failed to create DockerConfig from settings", e);
-    }
-    return null;
-  }
-
   public static List<Setting> toSettings(DockerConfig dockerConfig) {
     Setting address = new Setting();
     address.setSettingKey(SettingService.KEY_DOCKER_REGISTER_ADDRESS);
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 bece4a832..a98f6234f 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
@@ -71,7 +71,7 @@ public class SettingController {
   @PostMapping("docker")
   @RequiresPermissions("setting:view")
   public RestResponse docker() {
-    DockerConfig dockerConfig = DockerConfig.fromSetting();
+    DockerConfig dockerConfig = settingService.getDockerConfig();
     return RestResponse.success(dockerConfig);
   }
 
diff --git 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/mapper/SettingMapper.java
 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/mapper/SettingMapper.java
index 785a3946a..a072b0ad8 100644
--- 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/mapper/SettingMapper.java
+++ 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/mapper/SettingMapper.java
@@ -19,6 +19,13 @@ package org.apache.streampark.console.core.mapper;
 
 import org.apache.streampark.console.core.entity.Setting;
 
+import org.apache.ibatis.annotations.Param;
+
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
-public interface SettingMapper extends BaseMapper<Setting> {}
+import java.util.List;
+
+public interface SettingMapper extends BaseMapper<Setting> {
+
+  List<Setting> querySettingByKeys(@Param("settingKeys") List<String> 
settingKeys);
+}
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 927bb287a..993ed370b 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
@@ -66,4 +66,6 @@ public interface SettingService extends IService<Setting> {
   ResponseResult checkDocker(DockerConfig dockerConfig);
 
   ResponseResult checkEmail(SenderEmail senderEmail);
+
+  DockerConfig getDockerConfig();
 }
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 de1f9b607..61bb30d65 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
@@ -48,6 +48,7 @@ import javax.mail.MessagingException;
 import javax.mail.Session;
 import javax.mail.Transport;
 
+import java.util.Arrays;
 import java.util.List;
 import java.util.Optional;
 import java.util.Properties;
@@ -152,6 +153,38 @@ public class SettingServiceImpl extends 
ServiceImpl<SettingMapper, Setting>
         .getSettingValue();
   }
 
+  @Override
+  public DockerConfig getDockerConfig() {
+    List<Setting> settingList =
+        baseMapper.querySettingByKeys(
+            Arrays.asList(
+                SettingService.KEY_DOCKER_REGISTER_ADDRESS,
+                SettingService.KEY_DOCKER_REGISTER_USER,
+                SettingService.KEY_DOCKER_REGISTER_PASSWORD,
+                SettingService.KEY_DOCKER_REGISTER_NAMESPACE));
+    DockerConfig dockerConfig = new DockerConfig();
+    settingList.forEach(
+        setting -> {
+          switch (setting.getSettingKey()) {
+            case SettingService.KEY_DOCKER_REGISTER_ADDRESS:
+              dockerConfig.setAddress(setting.getSettingValue());
+              break;
+            case SettingService.KEY_DOCKER_REGISTER_USER:
+              dockerConfig.setUserName(setting.getSettingValue());
+              break;
+            case SettingService.KEY_DOCKER_REGISTER_PASSWORD:
+              dockerConfig.setPassword(setting.getSettingValue());
+              break;
+            case SettingService.KEY_DOCKER_REGISTER_NAMESPACE:
+              dockerConfig.setNamespace(setting.getSettingValue());
+              break;
+            default:
+              break;
+          }
+        });
+    return dockerConfig;
+  }
+
   @Override
   public ResponseResult checkDocker(DockerConfig dockerConfig) {
     DockerClientConfig config =
diff --git 
a/streampark-console/streampark-console-service/src/main/resources/mapper/core/SettingMapper.xml
 
b/streampark-console/streampark-console-service/src/main/resources/mapper/core/SettingMapper.xml
index f8be597f7..f1269580e 100644
--- 
a/streampark-console/streampark-console-service/src/main/resources/mapper/core/SettingMapper.xml
+++ 
b/streampark-console/streampark-console-service/src/main/resources/mapper/core/SettingMapper.xml
@@ -25,4 +25,18 @@
         <result column="type" jdbcType="INTEGER" property="type"/>
         <result column="description" jdbcType="VARCHAR" 
property="description"/>
     </resultMap>
+
+    <sql id="baseSql">
+        order_num, setting_name, setting_key, setting_value, type
+    </sql>
+
+    <select id="querySettingByKeys" 
resultType="org.apache.streampark.console.core.entity.Setting">
+        SELECT
+            <include refid="baseSql"/>
+        FROM t_setting
+        WHERE setting_key IN
+        <foreach collection="settingKeys" item="key" open="(" separator="," 
close=")">
+            #{key}
+        </foreach>
+    </select>
 </mapper>
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 8d119a42c..325d35df7 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
@@ -113,4 +113,20 @@ class SettingServiceTest extends SpringTestBase {
     ResponseResult result = settingService.checkDocker(dockerConfig);
     Assertions.assertEquals(result.getStatus(), 200);
   }
+
+  @Test
+  void testGetDockerConfig() {
+    String username = "XXXXXXXX";
+    String password = "XXXXXXXX";
+
+    DockerConfig initDockerConfig = new DockerConfig();
+    initDockerConfig.setAddress("registry.cn-hangzhou.aliyuncs.com");
+    initDockerConfig.setUserName(username);
+    initDockerConfig.setPassword(password);
+    initDockerConfig.setNamespace("streampark");
+    settingService.updateDocker(initDockerConfig);
+
+    DockerConfig dockerConfig = settingService.getDockerConfig();
+    Assertions.assertEquals(dockerConfig, initDockerConfig);
+  }
 }

Reply via email to