Просмотр исходного кода

调整构建配置相关接口

reghao 1 день назад
Родитель
Сommit
08bb6d5ba9

+ 4 - 0
mgr/src/main/java/cn/reghao/devops/mgr/ops/aliyun/model/vo/AliyunAccountVO.java

@@ -11,15 +11,19 @@ import lombok.NoArgsConstructor;
 @NoArgsConstructor
 @Data
 public class AliyunAccountVO {
+    private int id;
     private String type;
     private String name;
     private String endpoint;
     private String repoAuthName;
+    private int useCount;
 
     public AliyunAccountVO(AliyunAccount aliyunAccount) {
+        this.id = aliyunAccount.getId();
         this.type = aliyunAccount.getType();
         this.name = aliyunAccount.getName();
         this.endpoint = aliyunAccount.getEndpoint();
         this.repoAuthName = aliyunAccount.getRepoAuthConfig().getName();
+        this.useCount = 0;
     }
 }

+ 4 - 3
mgr/src/main/java/cn/reghao/devops/mgr/ops/build/controller/CompilerController.java

@@ -5,6 +5,7 @@ import cn.reghao.devops.mgr.ops.build.model.dto.CompilerArgDto;
 import cn.reghao.devops.mgr.ops.build.model.dto.CompilerBindDto;
 import cn.reghao.devops.mgr.ops.build.model.dto.CompilerEnvDto;
 import cn.reghao.devops.mgr.ops.build.model.po.CompilerConfig;
+import cn.reghao.devops.mgr.ops.build.model.vo.CompilerConfigVO;
 import cn.reghao.devops.mgr.ops.build.service.CompilerConfigService;
 import cn.reghao.devops.mgr.ops.build.model.constant.CompileType;
 import cn.reghao.devops.mgr.util.SelectOption;
@@ -73,15 +74,15 @@ public class CompilerController {
     public String compilerConfigPage(@RequestParam("pn") int pageNumber) {
         PageRequest pageRequest = PageRequest.of(pageNumber-1, pageSize);
         Page<CompilerConfig> page = compilerConfigRepository.findAll(pageRequest);
-        PageList<CompilerConfig> pageList = getPageList(page);
+        PageList<CompilerConfigVO> pageList = getPageList(page);
         return WebResult.success(pageList);
     }
 
-    private PageList<CompilerConfig> getPageList(Page<CompilerConfig> page) {
+    private PageList<CompilerConfigVO> getPageList(Page<CompilerConfig> page) {
         int pageNumber = page.getNumber() + 1;
         int pageSize = page.getSize();
         long total = page.getTotalElements();
-        List<CompilerConfig> list = page.getContent();
+        List<CompilerConfigVO> list = page.map(CompilerConfigVO::new).stream().toList();
         return PageList.pageList(pageNumber, pageSize, (int) total, list);
     }
 

+ 4 - 6
mgr/src/main/java/cn/reghao/devops/mgr/ops/build/controller/DockerRegistryController.java

@@ -1,7 +1,6 @@
 package cn.reghao.devops.mgr.ops.build.controller;
 
-import cn.reghao.devops.common.docker.model.DockerAuth;
-import cn.reghao.devops.mgr.ops.build.model.dto.DockerAuthDto;
+import cn.reghao.devops.mgr.ops.build.model.dto.DockerRegistryDto;
 import cn.reghao.devops.mgr.ops.build.model.vo.DockerRegistryVO;
 import cn.reghao.devops.mgr.ops.docker.db.repository.DockerRegistryRepository;
 import cn.reghao.devops.mgr.ops.build.model.po.DockerRegistry;
@@ -40,10 +39,9 @@ public class DockerRegistryController {
 
     @Operation(summary = "添加 DockerRegistry 配置", description = "N")
     @PostMapping(value = "/registry", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String addOrUpdateRepoConfig(@Validated DockerAuthDto dockerAuthDto) {
-        /*Result result = dockerRegistryService.addOrUpdate(dockerAuthDto);
-        return WebResult.result(result);*/
-        return WebResult.success();
+    public String addOrUpdateRepoConfig(@RequestBody @Validated DockerRegistryDto dockerRegistryDto) {
+        Result result = dockerRegistryService.addOrUpdate(dockerRegistryDto);
+        return WebResult.result(result);
     }
 
     @Operation(summary = "删除 DockerRegistry 配置", description = "N")

+ 5 - 4
mgr/src/main/java/cn/reghao/devops/mgr/ops/build/controller/RepoAuthController.java

@@ -2,6 +2,7 @@ package cn.reghao.devops.mgr.ops.build.controller;
 
 import cn.reghao.devops.mgr.ops.build.db.repository.RepoAuthConfigRepository;
 import cn.reghao.devops.mgr.ops.build.model.po.RepoAuthConfig;
+import cn.reghao.devops.mgr.ops.build.model.vo.RepoAuthVO;
 import cn.reghao.devops.mgr.ops.build.service.RepoAuthConfigService;
 import cn.reghao.devops.mgr.ops.build.model.constant.RepoAuthType;
 import cn.reghao.devops.mgr.ops.build.model.constant.RepoType;
@@ -59,15 +60,15 @@ public class RepoAuthController {
     public String repoAuthList(@RequestParam("pn") int pageNumber) {
         PageRequest pageRequest = PageRequest.of(pageNumber-1, pageSize);
         Page<RepoAuthConfig> page = repoAuthConfigRepository.findAll(pageRequest);
-        PageList<RepoAuthConfig> pageList = getPageList(page);
+        PageList<RepoAuthVO> pageList = getPageList(page);
         return WebResult.success(pageList);
     }
 
-    private PageList<RepoAuthConfig> getPageList(Page<RepoAuthConfig> page) {
+    private PageList<RepoAuthVO> getPageList(Page<RepoAuthConfig> page) {
         int pageNumber = page.getNumber() + 1;
         int pageSize = page.getSize();
         long total = page.getTotalElements();
-        List<RepoAuthConfig> list = page.getContent();
+        List<RepoAuthVO> list = page.map(RepoAuthVO::new).stream().toList();
         return PageList.pageList(pageNumber, pageSize, (int) total, list);
     }
 
@@ -90,7 +91,7 @@ public class RepoAuthController {
 
     @Operation(summary = "添加仓库认证配置", description = "N")
     @PostMapping(value = "", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String addOrUpdateRepoConfig(@Validated RepoAuthConfig repoAuth) {
+    public String addOrUpdateRepoConfig(@RequestBody @Validated RepoAuthConfig repoAuth) {
         Result result = repoAuthConfigService.addOrUpdate(repoAuth);
         return WebResult.result(result);
     }

+ 4 - 1
mgr/src/main/java/cn/reghao/devops/mgr/ops/build/model/dto/DockerAuthDto.java → mgr/src/main/java/cn/reghao/devops/mgr/ops/build/model/dto/DockerRegistryDto.java

@@ -11,11 +11,14 @@ import lombok.NoArgsConstructor;
  */
 @NoArgsConstructor
 @Data
-public class DockerAuthDto {
+public class DockerRegistryDto {
     @NotBlank(message = "repoAuthName 不能为空字符")
     @Size(max = 255, message = "repoAuthName 长度不能超过 255 个字符")
     private String repoAuthName;
     @NotBlank(message = "registryUrl 不能为空字符")
     @Size(max = 255, message = "registryUrl 不能超过 255 个字符")
     private String registryUrl;
+    @NotBlank(message = "registryNamespace 不能为空字符")
+    @Size(max = 255, message = "registryNamespace 不能超过 255 个字符")
+    private String registryNamespace;
 }

+ 8 - 1
mgr/src/main/java/cn/reghao/devops/mgr/ops/build/model/po/BuildDir.java

@@ -1,5 +1,6 @@
 package cn.reghao.devops.mgr.ops.build.model.po;
 
+import cn.reghao.devops.common.util.Machine;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 import lombok.Setter;
@@ -17,7 +18,7 @@ public class BuildDir {
     private String machineId;
     private String machineIpv4;
     // 本地目录,包含 local-repo, compile-dir 和 pack-dir 三个子目录
-    private String dirPath;
+    private String opsDir;
     private String mountedOn;
     // TODO 磁盘容量类型修改为 Long
     private long total;
@@ -26,4 +27,10 @@ public class BuildDir {
     private String usedStr;
     private long avail;
     private String availStr;
+
+    public BuildDir(String opsDir) {
+        this.opsDir = opsDir;
+        this.machineId = Machine.ID;
+        this.machineIpv4 = Machine.IPV4;
+    }
 }

+ 13 - 3
mgr/src/main/java/cn/reghao/devops/mgr/ops/build/model/po/DockerRegistry.java

@@ -1,5 +1,6 @@
 package cn.reghao.devops.mgr.ops.build.model.po;
 
+import cn.reghao.devops.mgr.ops.build.model.dto.DockerRegistryDto;
 import cn.reghao.devops.mgr.util.BaseEntity;
 import jakarta.persistence.*;
 import jakarta.validation.constraints.NotNull;
@@ -24,12 +25,21 @@ public class DockerRegistry extends BaseEntity {
     @JoinColumn(name = "repo_auth_config_id")
     private RepoAuthConfig repoAuthConfig;
 
-    @Column(nullable = false, unique = true)
+    @Column(nullable = false)
     @NotBlank(message = "docker registry 不能为空字符串")
     private String registryUrl;
+    @Column(nullable = false)
+    @NotBlank(message = "docker registry namespace 不能为空字符串")
+    private String registryNamespace;
 
-    public DockerRegistry(String registryUrl, RepoAuthConfig repoAuthConfig) {
+    public DockerRegistry(DockerRegistryDto dockerRegistryDto, RepoAuthConfig repoAuthConfig) {
         this.repoAuthConfig = repoAuthConfig;
-        this.registryUrl = registryUrl;
+        this.registryUrl = dockerRegistryDto.getRegistryUrl();
+        this.registryNamespace = dockerRegistryDto.getRegistryNamespace();
+    }
+
+    @Override
+    public String toString() {
+        return String.format("%s/%s", registryUrl, registryNamespace);
     }
 }

+ 25 - 0
mgr/src/main/java/cn/reghao/devops/mgr/ops/build/model/vo/CompilerConfigVO.java

@@ -0,0 +1,25 @@
+package cn.reghao.devops.mgr.ops.build.model.vo;
+
+import cn.reghao.devops.mgr.ops.build.model.po.CompilerConfig;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author reghao
+ * @date 2026-03-24 11:07:20
+ */
+@NoArgsConstructor
+@Data
+public class CompilerConfigVO {
+    private int id;
+    private String type;
+    private String name;
+    private int useCount;
+
+    public CompilerConfigVO(CompilerConfig compilerConfig) {
+        this.id = compilerConfig.getId();
+        this.type = compilerConfig.getType();
+        this.name = compilerConfig.getName();
+        this.useCount = 0;
+    }
+}

+ 6 - 0
mgr/src/main/java/cn/reghao/devops/mgr/ops/build/model/vo/DockerRegistryVO.java

@@ -11,11 +11,17 @@ import lombok.NoArgsConstructor;
 @NoArgsConstructor
 @Data
 public class DockerRegistryVO {
+    private int id;
     private String registryUrl;
+    private String registryNamespace;
     private String repoAuthName;
+    private int useCount;
 
     public DockerRegistryVO(DockerRegistry dockerRegistry) {
+        this.id = dockerRegistry.getId();
         this.registryUrl = dockerRegistry.getRegistryUrl();
+        this.registryNamespace = dockerRegistry.getRegistryNamespace();
         this.repoAuthName = dockerRegistry.getRepoAuthConfig().getName();
+        this.useCount = 0;
     }
 }

+ 6 - 0
mgr/src/main/java/cn/reghao/devops/mgr/ops/build/model/vo/PackerConfigVO.java

@@ -12,13 +12,19 @@ import lombok.NoArgsConstructor;
 @NoArgsConstructor
 @Data
 public class PackerConfigVO {
+    private int id;
     private String type;
     private String name;
     private String artifactPath;
+    private String dockerRegistry;
+    private int useCount;
 
     public PackerConfigVO(PackerConfig packerConfig) {
+        this.id = packerConfig.getId();
         this.type = packerConfig.getType();
         this.name = packerConfig.getName();
         this.artifactPath = packerConfig.getArtifactPath() == null ? NotAvailable.na.getDesc() : packerConfig.getArtifactPath();
+        this.dockerRegistry = packerConfig.getDockerRegistry() != null ? packerConfig.getDockerRegistry().toString() : NotAvailable.na.getDesc();
+        this.useCount = 0;
     }
 }

+ 31 - 0
mgr/src/main/java/cn/reghao/devops/mgr/ops/build/model/vo/RepoAuthVO.java

@@ -0,0 +1,31 @@
+package cn.reghao.devops.mgr.ops.build.model.vo;
+
+import cn.reghao.devops.mgr.ops.build.model.po.RepoAuthConfig;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author reghao
+ * @date 2026-03-24 11:01:25
+ */
+@NoArgsConstructor
+@Data
+public class RepoAuthVO {
+    private int id;
+    private String authType;
+    private String name;
+    private String type;
+    private String username;
+    private String password;
+    private int useCount;
+
+    public RepoAuthVO(RepoAuthConfig repoAuthConfig) {
+        this.id = repoAuthConfig.getId();
+        this.authType = repoAuthConfig.getAuthType();
+        this.name = repoAuthConfig.getName();
+        this.type = repoAuthConfig.getType();
+        this.username = repoAuthConfig.getUsername();
+        this.password = repoAuthConfig.getPassword();
+        this.useCount = 0;
+    }
+}

+ 5 - 5
mgr/src/main/java/cn/reghao/devops/mgr/ops/build/service/DockerRegistryService.java

@@ -3,7 +3,7 @@ package cn.reghao.devops.mgr.ops.build.service;
 import cn.reghao.devops.common.docker.DockerImpl;
 import cn.reghao.devops.common.docker.model.DockerAuth;
 import cn.reghao.devops.mgr.ops.build.db.repository.RepoAuthConfigRepository;
-import cn.reghao.devops.mgr.ops.build.model.dto.DockerAuthDto;
+import cn.reghao.devops.mgr.ops.build.model.dto.DockerRegistryDto;
 import cn.reghao.devops.mgr.ops.build.model.po.RepoAuthConfig;
 import cn.reghao.devops.mgr.ops.docker.db.repository.DockerRegistryRepository;
 import cn.reghao.devops.mgr.ops.build.model.po.DockerRegistry;
@@ -26,15 +26,15 @@ public class DockerRegistryService {
         this.repoAuthConfigRepository = repoAuthConfigRepository;
     }
 
-    public Result addOrUpdate(DockerAuthDto dockerAuthDto) {
-        String repoAuthName = dockerAuthDto.getRepoAuthName();
+    public Result addOrUpdate(DockerRegistryDto dockerRegistryDto) {
+        String repoAuthName = dockerRegistryDto.getRepoAuthName();
         RepoAuthConfig repoAuthConfig = repoAuthConfigRepository.findByName(repoAuthName);
         if (repoAuthConfig == null) {
             return Result.fail(String.format("RepoAuthName %s not exists", repoAuthName));
         }
 
         DockerAuth dockerAuth = new DockerAuth();
-        dockerAuth.setRegistryUrl(dockerAuthDto.getRegistryUrl());
+        dockerAuth.setRegistryUrl(dockerRegistryDto.getRegistryUrl());
         dockerAuth.setUsername(repoAuthConfig.getUsername());
         dockerAuth.setPassword(repoAuthConfig.getPassword());
         DockerImpl docker = new DockerImpl();
@@ -43,7 +43,7 @@ public class DockerRegistryService {
         String registryUrl = dockerAuth.getRegistryUrl();
         DockerRegistry dockerRegistry = dockerAuthRepository.findByRegistryUrl(registryUrl);
         if (dockerRegistry == null) {
-            dockerRegistry = new DockerRegistry(registryUrl, repoAuthConfig);
+            dockerRegistry = new DockerRegistry(dockerRegistryDto, repoAuthConfig);
             dockerAuthRepository.save(dockerRegistry);
             return Result.success();
         }