فهرست منبع

应用打包只提供 docker 类型, 且 PackerConfig 强依赖 DockerRegistry

reghao 1 سال پیش
والد
کامیت
4b1881b5e3

+ 1 - 0
common/src/main/java/cn/reghao/devops/common/msg/constant/PackType.java

@@ -7,6 +7,7 @@ package cn.reghao.devops.common.msg.constant;
  * @date 2019-11-15 21:59:35
  */
 public enum PackType {
+    //docker, zip;
     docker, zip;
 
     public String getName() {

+ 1 - 1
web/src/main/java/cn/reghao/devops/web/mgr/builds/controller/PackerConfigController.java

@@ -29,7 +29,7 @@ public class PackerConfigController {
     @ApiOperation(value = "添加/修改应用打包配置")
     @PostMapping(produces = MediaType.APPLICATION_JSON_VALUE)
     public String addOrModifyPackConfig(@Validated PackerConfig packerConfig) {
-        Result result = packerConfigService.addOrModify(packerConfig);;
+        Result result = packerConfigService.addOrModify(packerConfig);
         return WebResult.result(result);
     }
 

+ 16 - 1
web/src/main/java/cn/reghao/devops/web/mgr/builds/controller/page/PackerPageController.java

@@ -1,6 +1,8 @@
 package cn.reghao.devops.web.mgr.builds.controller.page;
 
+import cn.reghao.devops.web.mgr.builds.db.repository.DockerRegistryRepository;
 import cn.reghao.devops.web.mgr.builds.db.repository.PackerConfigRepository;
+import cn.reghao.devops.web.mgr.builds.model.po.DockerRegistry;
 import cn.reghao.devops.web.mgr.builds.model.po.PackerConfig;
 import cn.reghao.devops.web.mgr.app.model.vo.KeyValue;
 import cn.reghao.devops.web.util.PageSort;
@@ -19,6 +21,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @author reghao
@@ -30,9 +33,11 @@ import java.util.List;
 @RequestMapping("/build/packer")
 public class PackerPageController {
     private final PackerConfigRepository packerConfigRepository;
+    private final DockerRegistryRepository dockerRegistryRepository;
 
-    public PackerPageController(PackerConfigRepository packerConfigRepository) {
+    public PackerPageController(PackerConfigRepository packerConfigRepository, DockerRegistryRepository dockerRegistryRepository) {
         this.packerConfigRepository = packerConfigRepository;
+        this.dockerRegistryRepository = dockerRegistryRepository;
     }
 
     @ApiOperation(value = "打包配置页面")
@@ -48,7 +53,17 @@ public class PackerPageController {
 
     @GetMapping("/add")
     public String addPackerPage(Model model) {
+        List<KeyValue> registryList = dockerRegistryRepository.findAll()
+                .stream()
+                .map(dockerRegistry -> {
+                    Integer id = dockerRegistry.getId();
+                    String registryUrl = dockerRegistry.getRegistryUrl();
+                    return new KeyValue(String.valueOf(id), registryUrl);
+                })
+                .collect(Collectors.toList());
+
         setPackerModel(model);
+        model.addAttribute("registryList", registryList);
         return "/devops/build/packer/add";
     }
 

+ 6 - 9
web/src/main/java/cn/reghao/devops/web/mgr/builds/service/impl/PackerConfigServiceImpl.java

@@ -3,6 +3,7 @@ package cn.reghao.devops.web.mgr.builds.service.impl;
 import cn.reghao.devops.web.mgr.app.db.query.AppConfigQuery;
 import cn.reghao.devops.web.mgr.builds.db.repository.PackerConfigRepository;
 import cn.reghao.devops.web.mgr.app.model.po.config.AppConfig;
+import cn.reghao.devops.web.mgr.builds.model.po.DockerRegistry;
 import cn.reghao.devops.web.mgr.builds.model.po.PackerConfig;
 import cn.reghao.devops.web.mgr.build.chain.BuildTools;
 import cn.reghao.devops.common.msg.constant.PackType;
@@ -35,6 +36,11 @@ public class PackerConfigServiceImpl implements PackerConfigService {
             packerConfig.setTargetPath("/");
         }
 
+        DockerRegistry dockerRegistry = packerConfig.getDockerRegistry();
+        if (dockerRegistry == null) {
+            return Result.result(ResultStatus.FAIL, "DockerRegistry 不存在");
+        }
+
         String name = packerConfig.getName();
         PackerConfig entity = packerConfigRepository.findByName(name);
         if (entity == null) {
@@ -43,15 +49,6 @@ public class PackerConfigServiceImpl implements PackerConfigService {
         }
 
         packerConfig.setEntity(entity);
-        Result result = checkBeforeUpdate(packerConfig);
-        if (result.getCode() == ResultStatus.SUCCESS.getCode()) {
-            packerConfigRepository.save(packerConfig);
-        }
-
-        return result;
-    }
-
-    public Result checkBeforeUpdate(PackerConfig packerConfig) {
         BuildTools.removeCodePacker(packerConfig.getName());
         packerConfigRepository.save(packerConfig);
         return Result.result(ResultStatus.SUCCESS);

+ 1 - 1
web/src/main/resources/templates/devops/build/docker/index.html

@@ -12,7 +12,7 @@
         <div class="layui-row timo-card-screen put-row">
             <div class="pull-right screen-btn-group">
                 <div class="btn-group-right">
-                    <button class="layui-btn open-popup" data-title="添加 Docker Registry" th:attr="data-url=@{/app/config/docker/registry/add}"
+                    <button class="layui-btn open-popup" data-title="添加 Docker Registry" th:attr="data-url=@{/docker/registry/add}"
                             data-size="640,480">
                         <i class="fa fa-plus"></i> 添加
                     </button>

+ 8 - 0
web/src/main/resources/templates/devops/build/packer/add.html

@@ -14,6 +14,14 @@
                 </select>
             </div>
         </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label required">RegistryUrl</label>
+            <div class="layui-input-inline">
+                <select name="dockerRegistry">
+                    <option th:each="item : ${registryList}" th:value="${item.key}">[[${item.value}]]</option>
+                </select>
+            </div>
+        </div>
         <div class="layui-form-item">
             <label class="layui-form-label required">打包名字</label>
             <div class="layui-input-inline">