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

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


The following commit(s) were added to refs/heads/dev by this push:
     new 89606672f [Fix-3681] DockerConfig setting error (#3847)
89606672f is described below

commit 89606672fc8719c902379b3def4f9648b35276db
Author: xiangzihao <[email protected]>
AuthorDate: Tue Jul 9 22:18:07 2024 +0800

    [Fix-3681] DockerConfig setting error (#3847)
    
    * fix 3681
---
 .../streampark/console/core/bean/DockerConfig.java | 29 ----------------------
 .../console/core/controller/SettingController.java |  2 +-
 .../console/core/mapper/SettingMapper.java         |  6 +++++
 .../core/service/impl/SettingServiceImpl.java      | 27 +++++++++++++++++++-
 .../main/resources/mapper/core/SettingMapper.xml   | 14 +++++++++++
 .../console/core/service/SettingServiceTest.java   | 16 ++++++++++++
 6 files changed, 63 insertions(+), 31 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 52771cdc0..c802f99c7 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
@@ -42,35 +42,6 @@ public class DockerConfig {
     private String password;
     private String namespace;
 
-    public static DockerConfig fromSetting() {
-        try {
-            DockerConfig dockerConfig = new DockerConfig();
-
-            dockerConfig.setAddress(
-                SettingService.SETTINGS
-                    .get(SettingService.KEY_DOCKER_REGISTER_ADDRESS)
-                    .getSettingValue());
-
-            dockerConfig.setUsername(
-                
SettingService.SETTINGS.get(SettingService.KEY_DOCKER_REGISTER_USER).getSettingValue());
-
-            dockerConfig.setPassword(
-                SettingService.SETTINGS
-                    .get(SettingService.KEY_DOCKER_REGISTER_PASSWORD)
-                    .getSettingValue());
-
-            dockerConfig.setNamespace(
-                SettingService.SETTINGS
-                    .get(SettingService.KEY_DOCKER_REGISTER_NAMESPACE)
-                    .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 9eecade72..4b3c751f4 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 f07beb5e5..79b1727d7 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,7 +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;
 
+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/impl/SettingServiceImpl.java
 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/SettingServiceImpl.java
index 6a0a7b79d..0ee24f259 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
@@ -47,6 +47,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;
@@ -100,7 +101,31 @@ public class SettingServiceImpl extends 
ServiceImpl<SettingMapper, Setting>
 
     @Override
     public DockerConfig getDockerConfig() {
-        return DockerConfig.fromSetting();
+        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
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 d0c683f19..858d147a9 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
@@ -114,4 +114,20 @@ class SettingServiceTest extends SpringUnitTestBase {
         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