diff --git a/modules/module-ci-process-biz/pom.xml b/modules/module-ci-process-biz/pom.xml index 343f38a9..2cec1377 100644 --- a/modules/module-ci-process-biz/pom.xml +++ b/modules/module-ci-process-biz/pom.xml @@ -90,6 +90,10 @@ httpclient5 5.2.1 + + cd.casic.boot + module-infra-biz + cd.casic.boot module-ci-execute diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dal/req/resource/ResourceQueryReq.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dal/req/resource/ResourceQueryReq.java index 136cc33b..ef1db4bf 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dal/req/resource/ResourceQueryReq.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dal/req/resource/ResourceQueryReq.java @@ -1,127 +1,47 @@ package cd.casic.ci.process.dal.req.resource; +import cd.casic.framework.commons.pojo.PageParam; import lombok.Data; -import java.time.LocalDateTime; +import java.util.List; @Data -public class ResourceQueryReq { +public class ResourceQueryReq extends PageParam { /** * 主键id */ private String id; - /** - * 虚拟机类型 - */ - private String vmType; + private List idList; /** - * 虚拟机名称 + * docker镜像服务器信息id */ - private String vmName; + private String dockerId; /** - * 到期释放时间 + * k8s服务器信息id */ - private String expirationTime; + private String k8sId; /** - * 数量 + * 机器服务器信息id */ - private String sum; + private String machineId; /** - * 平台 + * 弹性云服务器信息id */ - private String platform; + private String cloudId; /** - * cpu架构 + * 资源名称 */ - private String cpuFramework; + private String resourceName; - /** - * GPU配置状态 - */ - private String gpuStatus; - - /** - * cpu内核数量 - */ - private String cpuCoreSum; - - /** - * 内存 - */ - private String internalStorage; - - /** - * 操作系统 - */ - private String os; - - /** - * 系统盘类型 - */ - private String systemDiskType; - - /** - * 系统盘内存大小 - */ - private String systemDiskInternalStorage; - - /** - * 管理员账号 - */ - private String managerAccount; - - /** - * 管理员密码 - */ - private String managerPassword; - - /** - * 安全组 - */ - private String securityGroup; - - /** - * 调度策略 - */ - private String schedulingPolicy; - - /** - * 引导方式 - */ - private String bootMethod; - - /** - * 备份机 - */ - private String backup; - - /** - * 反亲和组 - */ - private String antiAffinityGroup; - - /** - * 流水线id - */ - private String pipelineId; /** * 创建人用户id */ - private Long createUserId; - - private Long updateUserId; - - /** - * 创建时间 - */ - private LocalDateTime createTime; - - private LocalDateTime updateTime; + private String creator; } diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dal/req/resource/ResourceReq.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dal/req/resource/ResourceReq.java index 5bc44d66..115910e2 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dal/req/resource/ResourceReq.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dal/req/resource/ResourceReq.java @@ -1,111 +1,44 @@ package cd.casic.ci.process.dal.req.resource; +import cd.casic.ci.process.process.dataObject.resource.PipResourceCloud; +import cd.casic.ci.process.process.dataObject.resource.PipResourceK8S; +import cd.casic.ci.process.process.dataObject.resource.PipResourceMachine; +import cd.casic.ci.process.process.dataObject.resource.PipelineDockerEndpoint; import lombok.Data; @Data public class ResourceReq { - /** - * 主键id - */ private String id; + /** + * docker镜像服务器信息id + */ + private String dockerId; /** - * 虚拟机类型 + * k8s服务器信息id */ - private String vmType; + private String k8sId; /** - * 虚拟机名称 + * 机器服务器信息id */ - private String vmName; + private String machineId; /** - * 到期释放时间 + * 弹性云服务器信息id */ - private String expirationTime; + private String cloudId; /** - * 数量 + * 资源名称 */ - private String sum; + private String resourceName; - /** - * 平台 - */ - private String platform; + private PipResourceMachine resourceMachine; - /** - * cpu架构 - */ - private String cpuFramework; + private PipelineDockerEndpoint dockerEndpoint; - /** - * GPU配置状态 - */ - private String gpuStatus; + private PipResourceK8S pipResourceK8S; - /** - * cpu内核数量 - */ - private String cpuCoreSum; - - /** - * 内存 - */ - private String internalStorage; - - /** - * 操作系统 - */ - private String os; - - /** - * 系统盘类型 - */ - private String systemDiskType; - - /** - * 系统盘内存大小 - */ - private String systemDiskInternalStorage; - - /** - * 管理员账号 - */ - private String managerAccount; - - /** - * 管理员密码 - */ - private String managerPassword; - - /** - * 安全组 - */ - private String securityGroup; - - /** - * 调度策略 - */ - private String schedulingPolicy; - - /** - * 引导方式 - */ - private String bootMethod; - - /** - * 备份机 - */ - private String backup; - - /** - * 反亲和组 - */ - private String antiAffinityGroup; - - /** - * 流水线id - */ - private String pipelineId; + private PipResourceCloud pipResourceCloud; } diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dal/req/target/TargetUploadReq.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dal/req/target/TargetUploadReq.java new file mode 100644 index 00000000..d74abaf4 --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dal/req/target/TargetUploadReq.java @@ -0,0 +1,21 @@ +package cd.casic.ci.process.dal.req.target; + +import lombok.Data; + +import java.io.File; + +/** + * @ClassName PipelineQueryReq + * @Author hopeli + * @Date 2025/5/10 9:54 + * @Version 1.0 + */ +@Data +public class TargetUploadReq{ + + private File file; + + private String remoteFilePath; + + private String fileType; +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dal/resp/resource/ResourceFindResp.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dal/resp/resource/ResourceFindResp.java new file mode 100644 index 00000000..f1614ef4 --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dal/resp/resource/ResourceFindResp.java @@ -0,0 +1,63 @@ +package cd.casic.ci.process.dal.resp.resource; + +import cd.casic.ci.process.process.dataObject.resource.PipResourceCloud; +import cd.casic.ci.process.process.dataObject.resource.PipResourceK8S; +import cd.casic.ci.process.process.dataObject.resource.PipResourceMachine; +import cd.casic.ci.process.process.dataObject.resource.PipelineDockerEndpoint; +import lombok.Data; + +@Data +public class ResourceFindResp { + /** + * 主键id + */ + private String id; + + /** + * docker镜像服务器信息id + */ + private String dockerId; + + /** + * k8s服务器信息id + */ + private String k8sId; + + /** + * 机器服务器信息id + */ + private String machineId; + + /** + * 弹性云服务器信息id + */ + private String cloudId; + + /** + * 资源名称 + */ + private String resourceName; + + //创建人id + private String creator; + + //创建人姓名 + private String creatorName; + + //最后修改人id + private String updater; + + //最后修改人姓名 + private String updaterName; + + private String remark; + + private PipResourceMachine resourceMachine; + + private PipelineDockerEndpoint dockerEndpoint; + + private PipResourceK8S pipResourceK8S; + + private PipResourceCloud pipResourceCloud; + +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dal/resp/resource/ResourceResp.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dal/resp/resource/ResourceResp.java index 6d72dc66..3f0d016b 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dal/resp/resource/ResourceResp.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dal/resp/resource/ResourceResp.java @@ -1,9 +1,10 @@ package cd.casic.ci.process.dal.resp.resource; +import cd.casic.ci.process.process.dataObject.resource.PipResourceK8S; +import cd.casic.ci.process.process.dataObject.resource.PipResourceMachine; +import cd.casic.ci.process.process.dataObject.resource.PipelineDockerEndpoint; import lombok.Data; -import java.time.LocalDateTime; - @Data public class ResourceResp { /** @@ -12,116 +13,48 @@ public class ResourceResp { private String id; /** - * 虚拟机类型 + * docker镜像服务器信息id */ - private String vmType; + private String dockerId; /** - * 虚拟机名称 + * k8s服务器信息id */ - private String vmName; + private String k8sId; /** - * 到期释放时间 + * 机器服务器信息id */ - private String expirationTime; + private String machineId; /** - * 数量 + * 弹性云服务器信息id */ - private String sum; + private String cloudId; /** - * 平台 + * 资源名称 */ - private String platform; + private String resourceName; - /** - * cpu架构 - */ - private String cpuFramework; + //创建人id + private String creator; - /** - * GPU配置状态 - */ - private String gpuStatus; + //创建人姓名 + private String creatorName; - /** - * cpu内核数量 - */ - private String cpuCoreSum; + //最后修改人id + private String updater; - /** - * 内存 - */ - private String internalStorage; + //最后修改人姓名 + private String updaterName; - /** - * 操作系统 - */ - private String os; + private String remark; - /** - * 系统盘类型 - */ - private String systemDiskType; + private PipResourceMachine resourceMachine; - /** - * 系统盘内存大小 - */ - private String systemDiskInternalStorage; + private PipelineDockerEndpoint dockerEndpoint; - /** - * 管理员账号 - */ - private String managerAccount; + private PipResourceK8S pipResourceK8S; - /** - * 管理员密码 - */ - private String managerPassword; - - /** - * 安全组 - */ - private String securityGroup; - - /** - * 调度策略 - */ - private String schedulingPolicy; - - /** - * 引导方式 - */ - private String bootMethod; - - /** - * 备份机 - */ - private String backup; - - /** - * 反亲和组 - */ - private String antiAffinityGroup; - - /** - * 流水线id - */ - private String pipelineId; - - /** - * 创建人用户id - */ - private Long createUserId; - - private Long updateUserId; - - /** - * 创建时间 - */ - private LocalDateTime createTime; - - private LocalDateTime updateTime; } diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/enums/ResourceTypeEnum.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/enums/ResourceTypeEnum.java new file mode 100644 index 00000000..5b1c1b51 --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/enums/ResourceTypeEnum.java @@ -0,0 +1,29 @@ +package cd.casic.ci.process.enums; + +import lombok.Getter; + +import java.util.HashMap; +import java.util.Map; + +@Getter +public enum ResourceTypeEnum { + DOCKER("docker","镜像"), + K8S("k8s","k8s服务器"), + MACHINE("machine","定向机器"), + CLOUD("cloud","弹性云"), + ; + private final String code; + private final String msg; + + ResourceTypeEnum(String code, String msg) { + this.code = code; + this.msg = msg; + } + public static Map getCodeMap(){ + Map map = new HashMap<>(); + for (ResourceTypeEnum value : values()) { + map.put(value.code, value); + } + return map; + } +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/converter/ResourceConverter.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/converter/ResourceConverter.java new file mode 100644 index 00000000..b37b4bed --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/converter/ResourceConverter.java @@ -0,0 +1,27 @@ +package cd.casic.ci.process.process.converter; + +import cd.casic.ci.process.dal.req.resource.ResourceReq; +import cd.casic.ci.process.dal.resp.resource.ResourceFindResp; +import cd.casic.ci.process.process.dataObject.resource.PipResourceManager; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +/** + * @author HopeLi + * @version v1.0 + * @ClassName PipelineConverter + * @Date: 2025/5/13 14:39 + * @Description: + */ +@Mapper(componentModel = "spring") +public interface ResourceConverter { + ResourceConverter INSTANCE = Mappers.getMapper(ResourceConverter.class); + + ResourceFindResp toResp(PipResourceManager req); + List toRespList(List pipResourceManagers); + + + PipResourceManager toBean(ResourceReq req); +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dal/pipeline/PipResourceCloudDao.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dal/pipeline/PipResourceCloudDao.java new file mode 100644 index 00000000..0a445ef4 --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dal/pipeline/PipResourceCloudDao.java @@ -0,0 +1,14 @@ +package cd.casic.ci.process.process.dal.pipeline; + +import cd.casic.ci.process.process.dataObject.resource.PipResourceCloud; +import cd.casic.framework.mybatis.core.mapper.BaseMapperX; + +/** + * @author HopeLi + * @version v1.0 + * @ClassName PipResourceMachineDao + * @Date: 2025/5/13 14:39 + * @Description: + */ +public interface PipResourceCloudDao extends BaseMapperX { +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dal/pipeline/PipResourceDockerEndpointDao.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dal/pipeline/PipResourceDockerEndpointDao.java new file mode 100644 index 00000000..e954751e --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dal/pipeline/PipResourceDockerEndpointDao.java @@ -0,0 +1,14 @@ +package cd.casic.ci.process.process.dal.pipeline; + +import cd.casic.ci.process.process.dataObject.resource.PipelineDockerEndpoint; +import cd.casic.framework.mybatis.core.mapper.BaseMapperX; + +/** + * @author HopeLi + * @version v1.0 + * @ClassName PipResourceDockerEndpointDao + * @Date: 2025/5/13 14:39 + * @Description: + */ +public interface PipResourceDockerEndpointDao extends BaseMapperX { +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dal/pipeline/PipResourceK8SDao.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dal/pipeline/PipResourceK8SDao.java new file mode 100644 index 00000000..2864aa5a --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dal/pipeline/PipResourceK8SDao.java @@ -0,0 +1,14 @@ +package cd.casic.ci.process.process.dal.pipeline; + +import cd.casic.ci.process.process.dataObject.resource.PipResourceK8S; +import cd.casic.framework.mybatis.core.mapper.BaseMapperX; + +/** + * @author HopeLi + * @version v1.0 + * @ClassName PipResourceK8SDao + * @Date: 2025/5/13 14:39 + * @Description: + */ +public interface PipResourceK8SDao extends BaseMapperX { +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dal/pipeline/PipResourceMachineDao.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dal/pipeline/PipResourceMachineDao.java new file mode 100644 index 00000000..68cd0b78 --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dal/pipeline/PipResourceMachineDao.java @@ -0,0 +1,14 @@ +package cd.casic.ci.process.process.dal.pipeline; + +import cd.casic.ci.process.process.dataObject.resource.PipResourceMachine; +import cd.casic.framework.mybatis.core.mapper.BaseMapperX; + +/** + * @author HopeLi + * @version v1.0 + * @ClassName PipResourceMachineDao + * @Date: 2025/5/13 14:39 + * @Description: + */ +public interface PipResourceMachineDao extends BaseMapperX { +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dal/pipeline/PipResourceDao.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dal/pipeline/PipResourceManagerDao.java similarity index 76% rename from modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dal/pipeline/PipResourceDao.java rename to modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dal/pipeline/PipResourceManagerDao.java index cfa6e58d..0793df7f 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dal/pipeline/PipResourceDao.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dal/pipeline/PipResourceManagerDao.java @@ -1,6 +1,6 @@ package cd.casic.ci.process.process.dal.pipeline; -import cd.casic.ci.process.process.dataObject.resource.PipResource; +import cd.casic.ci.process.process.dataObject.resource.PipResourceManager; import cd.casic.framework.mybatis.core.mapper.BaseMapperX; /** @@ -10,5 +10,5 @@ import cd.casic.framework.mybatis.core.mapper.BaseMapperX; * @Date: 2025/5/13 14:39 * @Description: */ -public interface PipResourceDao extends BaseMapperX { +public interface PipResourceManagerDao extends BaseMapperX { } diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/resource/PipResource.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/resource/PipResourceCloud.java similarity index 82% rename from modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/resource/PipResource.java rename to modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/resource/PipResourceCloud.java index 52da9d4c..40574a0d 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/resource/PipResource.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/resource/PipResourceCloud.java @@ -1,18 +1,18 @@ package cd.casic.ci.process.process.dataObject.resource; import cd.casic.ci.process.process.dataObject.base.PipBaseElement; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; import lombok.Data; +import lombok.EqualsAndHashCode; +/** + * @ClassName PipResourceCloud + * @Author hopeli + * @Date 2025/5/31 22:19 + * @Version 1.0 + */ @Data -public class PipResource extends PipBaseElement { - /** - * 主键id - */ - @TableId(type = IdType.ASSIGN_ID) - private String id; - + @EqualsAndHashCode(callSuper = true) +public class PipResourceCloud extends PipBaseElement { /** * 虚拟机类型 */ @@ -107,9 +107,4 @@ public class PipResource extends PipBaseElement { * 反亲和组 */ private String antiAffinityGroup; - - /** - * 流水线id - */ - private String pipelineId; } diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/resource/PipResourceK8S.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/resource/PipResourceK8S.java new file mode 100644 index 00000000..c6512114 --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/resource/PipResourceK8S.java @@ -0,0 +1,11 @@ +package cd.casic.ci.process.process.dataObject.resource; + +import cd.casic.ci.process.process.dataObject.base.PipBaseElement; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@EqualsAndHashCode(callSuper = true) +@Data +public class PipResourceK8S extends PipBaseElement { + +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/resource/PipResourceMachine.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/resource/PipResourceMachine.java new file mode 100644 index 00000000..b539f4ab --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/resource/PipResourceMachine.java @@ -0,0 +1,70 @@ +package cd.casic.ci.process.process.dataObject.resource; + +import cd.casic.ci.process.process.dataObject.base.PipBaseElement; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @ClassName PipResourceMachine + * @Author hopeli + * @Date 2025/31 21:48 + * @Version 1.0 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class PipResourceMachine extends PipBaseElement { + /** + * 主机地址 + */ + private String machineHost; + + /** + * 描述 + */ + private String description; + + /** + * 机器状态 + */ + private String machineStatus; + + /** + * 登录用户名 + */ + private String username; + + /** + * SSH 端口 + */ + private String sshPort; + + /** + * 密码 + */ + private String password; + + /** + * 秘钥 ID + */ + private Long secretKeyId; + + /** + * 代理 ID + */ + private Long proxyId; + + /** + * 认证类型编码 + */ + private Integer authenticationTypeCode; + + /** + * 认证类型 + */ + private String authType; + + /** + * 操作系统 + */ + private String osSystem; +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/resource/PipResourceManager.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/resource/PipResourceManager.java new file mode 100644 index 00000000..0be43d3f --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/resource/PipResourceManager.java @@ -0,0 +1,40 @@ +package cd.casic.ci.process.process.dataObject.resource; + +import cd.casic.ci.process.process.dataObject.base.PipBaseElement; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @ClassName PipResourceTmp + * @Author hopeli + * @Date 2025/31 21:40 + * @Version 1.0 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class PipResourceManager extends PipBaseElement { + /** + * docker镜像服务器信息id + */ + private String dockerId; + + /** + * k8s服务器信息id + */ + private String k8sId; + + /** + * 机器服务器信息id + */ + private String machineId; + + /** + * 弹性云服务器信息id + */ + private String cloudId; + + /** + * 资源名称 + */ + private String resourceName; +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/resource/PipelineDockerEndpoint.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/resource/PipelineDockerEndpoint.java new file mode 100644 index 00000000..66237b31 --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/resource/PipelineDockerEndpoint.java @@ -0,0 +1,52 @@ +package cd.casic.ci.process.process.dataObject.resource; + +import cd.casic.ci.process.process.dataObject.base.PipBaseElement; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.time.LocalDateTime; + +/** + * @ClassName PipelineDockerEndpoint + * @Author hopeli + * @Date 2025/5/31 21:54 + * @Version 1.0 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class PipelineDockerEndpoint extends PipBaseElement { + /** + * Docker 类型:远程/本地 + */ + private String dockerType; + + /** + * Docker 状态(参考 DockerEndpointStateEnum) + */ + private String state; + + /** + * 主机地址 + */ + private String host; + + /** + * 端口 + */ + private String port; + + /** + * 最近测试时间 + */ + private LocalDateTime latestTestTime; + + /** + * 名称 + */ + private String name; + + /** + * 类型(可能用于扩展分类) + */ + private String type; +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/pipeline/impl/PipelineServiceImpl.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/pipeline/impl/PipelineServiceImpl.java index b2692c23..177585af 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/pipeline/impl/PipelineServiceImpl.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/pipeline/impl/PipelineServiceImpl.java @@ -14,16 +14,13 @@ import cd.casic.ci.process.engine.manager.RunContextManager; import cd.casic.ci.process.engine.runContext.BaseRunContext; import cd.casic.ci.process.engine.runContext.PipelineRunContext; import cd.casic.ci.process.process.converter.PipelineConverter; -import cd.casic.ci.process.process.dal.pipeline.PipResourceDao; import cd.casic.ci.process.process.dal.pipeline.PipStageDao; import cd.casic.ci.process.process.dal.pipeline.PipTaskDao; import cd.casic.ci.process.process.dal.pipeline.PipelineDao; import cd.casic.ci.process.process.dataObject.pipeline.PipPipeline; -import cd.casic.ci.process.process.dataObject.resource.PipResource; import cd.casic.ci.process.process.dataObject.stage.PipStage; import cd.casic.ci.process.process.dataObject.task.PipTask; import cd.casic.ci.process.process.service.pipeline.PipelineService; -import cd.casic.ci.process.process.service.resource.impl.ResourceServiceImpl; import cd.casic.ci.process.process.service.stage.impl.StageServiceImpl; import cd.casic.ci.process.process.service.task.impl.TaskServiceImpl; import cd.casic.ci.process.process.service.template.impl.TemplateManagerServiceImpl; @@ -47,7 +44,11 @@ import org.springframework.util.ObjectUtils; import java.time.Duration; import java.time.LocalDateTime; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; /** * @author HopeLi @@ -65,9 +66,6 @@ public class PipelineServiceImpl extends ServiceImpl i @Resource private TaskServiceImpl taskService; - @Resource - private ResourceServiceImpl resourceService; - @Resource private PipelineDao pipelineDao; @@ -77,9 +75,6 @@ public class PipelineServiceImpl extends ServiceImpl i @Resource private PipTaskDao pipTaskDao; - @Resource - private PipResourceDao pipResourceDao; - @Resource private AdminUserServiceImpl adminUserService; @Resource @@ -105,17 +100,6 @@ public class PipelineServiceImpl extends ServiceImpl i pipeline.setState(1); pipeline.setMachineId("1"); - //新增对应的配置类数据 - if (!ObjectUtils.isEmpty(pipelineReq.getResourceReq())){ - PipResource resource = new PipResource(); - BeanUtils.copyProperties(pipelineReq.getResourceReq(),resource); - resource.setCreator(pipeline.getCreator()); - resource.setCreateTime(LocalDateTime.now()); - resourceService.save(resource); - - pipeline.setResourceId(resource.getId()); - } - this.save(pipeline); //根据模板ID初始化 @@ -286,15 +270,6 @@ public class PipelineServiceImpl extends ServiceImpl i List list = task.stream().map(PipTask::getId).toList(); pipTaskDao.deleteByIds(list); } - - //删除resource表数据 - if (StringUtils.isNotEmpty(pipeline.getResourceId())){ - PipResource pipResource = pipResourceDao.selectById(pipeline.getResourceId()); - - if (!ObjectUtils.isEmpty(pipResource)){ - pipResourceDao.deleteById(pipeline.getResourceId()); - } - } } @Override diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/resource/ResourceManagerService.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/resource/ResourceManagerService.java new file mode 100644 index 00000000..28f3e6ba --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/resource/ResourceManagerService.java @@ -0,0 +1,32 @@ +package cd.casic.ci.process.process.service.resource; + +import cd.casic.ci.process.dal.req.resource.ResourceQueryReq; +import cd.casic.ci.process.dal.req.resource.ResourceReq; +import cd.casic.ci.process.dal.resp.resource.ResourceFindResp; +import cd.casic.ci.process.process.dataObject.resource.PipResourceManager; +import cd.casic.framework.commons.pojo.PageResult; +import com.baomidou.mybatisplus.extension.service.IService; +import jakarta.validation.Valid; + +import java.util.List; + +/** + * @author HopeLi + * @version v1.0 + * @ClassName ResourceService + * @Date: 2025/5/13 10:27 + * @Description: + */ +public interface ResourceManagerService extends IService { + String createResource(@Valid ResourceReq resourceReq); + + void deleteResource(String id); + + void updateResource(@Valid ResourceReq resourceReq); + + ResourceFindResp findResourceById(String id); + + List findResourceList(@Valid ResourceQueryReq req); + + PageResult findResourcePage(@Valid ResourceQueryReq req); +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/resource/ResourceService.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/resource/ResourceService.java deleted file mode 100644 index bc0a88d4..00000000 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/resource/ResourceService.java +++ /dev/null @@ -1,14 +0,0 @@ -package cd.casic.ci.process.process.service.resource; - -import cd.casic.ci.process.process.dataObject.resource.PipResource; -import com.baomidou.mybatisplus.extension.service.IService; - -/** - * @author HopeLi - * @version v1.0 - * @ClassName ResourceService - * @Date: 2025/5/13 10:27 - * @Description: - */ -public interface ResourceService extends IService { -} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/resource/impl/ResourceManagerServiceImpl.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/resource/impl/ResourceManagerServiceImpl.java new file mode 100644 index 00000000..d08887cf --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/resource/impl/ResourceManagerServiceImpl.java @@ -0,0 +1,320 @@ +package cd.casic.ci.process.process.service.resource.impl; + +import cd.casic.ci.process.dal.req.resource.ResourceQueryReq; +import cd.casic.ci.process.dal.req.resource.ResourceReq; +import cd.casic.ci.process.dal.resp.resource.ResourceFindResp; +import cd.casic.ci.process.process.converter.ResourceConverter; +import cd.casic.ci.process.process.dal.pipeline.PipResourceCloudDao; +import cd.casic.ci.process.process.dal.pipeline.PipResourceDockerEndpointDao; +import cd.casic.ci.process.process.dal.pipeline.PipResourceK8SDao; +import cd.casic.ci.process.process.dal.pipeline.PipResourceMachineDao; +import cd.casic.ci.process.process.dal.pipeline.PipResourceManagerDao; +import cd.casic.ci.process.process.dataObject.resource.PipResourceCloud; +import cd.casic.ci.process.process.dataObject.resource.PipResourceK8S; +import cd.casic.ci.process.process.dataObject.resource.PipResourceMachine; +import cd.casic.ci.process.process.dataObject.resource.PipResourceManager; +import cd.casic.ci.process.process.dataObject.resource.PipelineDockerEndpoint; +import cd.casic.ci.process.process.service.resource.ResourceManagerService; +import cd.casic.framework.commons.exception.ServiceException; +import cd.casic.framework.commons.exception.enums.GlobalErrorCodeConstants; +import cd.casic.framework.commons.pojo.PageResult; +import cd.casic.framework.security.dal.user.AdminUserDO; +import cd.casic.framework.tenant.core.service.AdminUserServiceImpl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.ObjectUtils; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author HopeLi + * @version v1.0 + * @ClassName ResourceServiceImpl + * @Date: 2025/5/13 10:31 + * @Description: + */ +@Service +@Slf4j +public class ResourceManagerServiceImpl extends ServiceImpl implements ResourceManagerService { + @Resource + private PipResourceManagerDao resourceManagerDao; + + @Resource + private PipResourceMachineDao machineDao; + + @Resource + private PipResourceDockerEndpointDao dockerEndpointDao; + + @Resource + private PipResourceK8SDao k8SDao; + + @Resource + private PipResourceCloudDao cloudDao; + + @Resource + private AdminUserServiceImpl adminUserService; + @Autowired + private PipResourceDockerEndpointDao pipResourceDockerEndpointDao; + + + @Override + @Transactional(rollbackFor = Exception.class) + public String createResource(ResourceReq resourceReq) { + + PipResourceManager pipResourceManager = ResourceConverter.INSTANCE.toBean(resourceReq); + + //如果资源类型不属于弹性云,则新增,如果属于弹性云,则走申请流程 + if (!ObjectUtils.isEmpty(resourceReq.getResourceMachine())){ + PipResourceMachine resourceMachine = resourceReq.getResourceMachine(); + machineDao.insert(resourceMachine); + + pipResourceManager.setMachineId(resourceMachine.getId()); + } + if (!ObjectUtils.isEmpty(resourceReq.getPipResourceK8S())) { + PipResourceK8S pipResourceK8S = resourceReq.getPipResourceK8S(); + k8SDao.insert(pipResourceK8S); + + pipResourceManager.setK8sId(pipResourceK8S.getId()); + } + if (!ObjectUtils.isEmpty(resourceReq.getDockerEndpoint())) { + PipelineDockerEndpoint dockerEndpoint = resourceReq.getDockerEndpoint(); + dockerEndpointDao.insert(dockerEndpoint); + + pipResourceManager.setDockerId(dockerEndpoint.getId()); + } + + if (!ObjectUtils.isEmpty(resourceReq.getPipResourceCloud())) { + PipResourceCloud pipResourceCloud = resourceReq.getPipResourceCloud(); + cloudDao.insert(pipResourceCloud); + + pipResourceManager.setCloudId(pipResourceCloud.getId()); + } + + resourceManagerDao.insert(pipResourceManager); + return pipResourceManager.getId(); + } + + @Override + public void deleteResource(String id) { + PipResourceManager pipResourceManager = resourceManagerDao.selectById(id); + if (!StringUtils.isEmpty(pipResourceManager.getMachineId())){ + machineDao.deleteById(pipResourceManager.getMachineId()); + } + if (!StringUtils.isEmpty(pipResourceManager.getK8sId())){ + k8SDao.deleteById(pipResourceManager.getK8sId()); + } + if (!StringUtils.isEmpty(pipResourceManager.getDockerId())){ + dockerEndpointDao.deleteById(pipResourceManager.getDockerId()); + } + if (!StringUtils.isEmpty(pipResourceManager.getCloudId())){ + cloudDao.deleteById(pipResourceManager.getCloudId()); + } + resourceManagerDao.deleteById(id); + } + + @Override + public void updateResource(ResourceReq resourceReq) { + PipResourceManager temp = resourceManagerDao.selectById(resourceReq.getId()); + temp.setResourceName(resourceReq.getResourceName()); + + //先删除旧的资源信息 + if (!StringUtils.isEmpty(temp.getMachineId())){ + machineDao.deleteById(temp.getMachineId()); + } + + + if (!StringUtils.isEmpty(temp.getK8sId())){ + k8SDao.deleteById(temp.getK8sId()); + + } + + if (!StringUtils.isEmpty(temp.getDockerId())){ + dockerEndpointDao.deleteById(temp.getDockerId()); + + } + + if (!StringUtils.isEmpty(temp.getCloudId())){ + cloudDao.deleteById(temp.getCloudId()); + + } + + + //根据新资源信息新增 + if (!ObjectUtils.isEmpty(resourceReq.getResourceMachine())){ + PipResourceMachine resourceMachine = resourceReq.getResourceMachine(); + machineDao.insert(resourceMachine); + + temp.setMachineId(resourceMachine.getId()); + } + if (!ObjectUtils.isEmpty(resourceReq.getPipResourceK8S())) { + PipResourceK8S pipResourceK8S = resourceReq.getPipResourceK8S(); + k8SDao.insert(pipResourceK8S); + + temp.setK8sId(pipResourceK8S.getId()); + } + if (!ObjectUtils.isEmpty(resourceReq.getDockerEndpoint())) { + PipelineDockerEndpoint dockerEndpoint = resourceReq.getDockerEndpoint(); + dockerEndpointDao.insert(dockerEndpoint); + + temp.setDockerId(dockerEndpoint.getId()); + } + + if (!ObjectUtils.isEmpty(resourceReq.getPipResourceCloud())) { + PipResourceCloud pipResourceCloud = resourceReq.getPipResourceCloud(); + cloudDao.insert(pipResourceCloud); + + temp.setCloudId(pipResourceCloud.getId()); + } + resourceManagerDao.updateById(temp); + } + + @Override + public ResourceFindResp findResourceById(String id) { + PipResourceManager pipResourceManager = resourceManagerDao.selectById(id); + if (ObjectUtils.isEmpty(pipResourceManager)){ + throw new ServiceException(GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR.getCode(),"资源不存在"); + } + ResourceFindResp resp = ResourceConverter.INSTANCE.toResp(pipResourceManager); + + setResource(resp); + setUserName(resp); + return resp; + } + + + + @Override + public List findResourceList(ResourceQueryReq query) { + QueryWrapper wrapper = new QueryWrapper<>(); + if (!ObjectUtils.isEmpty(query.getId())){ + wrapper.eq("id",query.getId()); + } + if (!ObjectUtils.isEmpty(query.getIdList())){ + wrapper.in("id",query.getId()); + } + if (!ObjectUtils.isEmpty(query.getResourceName())){ + wrapper.like("resource_name",query.getResourceName()); + } + if (!ObjectUtils.isEmpty(query.getMachineId())){ + wrapper.eq("machine_id",query.getMachineId()); + } + if (!ObjectUtils.isEmpty(query.getK8sId())){ + wrapper.eq("k8s_id",query.getK8sId()); + } + if (!ObjectUtils.isEmpty(query.getDockerId())){ + wrapper.eq("docker_id",query.getDockerId()); + } + if (!ObjectUtils.isEmpty(query.getCloudId())){ + wrapper.eq("cloud_id",query.getCloudId()); + } + if (!ObjectUtils.isEmpty(query.getCreator())){ + wrapper.eq("creator",query.getCreator()); + } + List pipResourceManagerList = resourceManagerDao.selectList(wrapper); + + if (ObjectUtils.isEmpty(pipResourceManagerList)){ + return new ArrayList<>(0); + } + + List respList = ResourceConverter.INSTANCE.toRespList(pipResourceManagerList); + + //对资源进行赋值 + respList.forEach(this::setResource); + respList.forEach(this::setUserName); + + return respList; + } + + @Override + public PageResult findResourcePage(ResourceQueryReq query) { + Page respPage = new Page<>(); + + QueryWrapper wrapper = new QueryWrapper<>(); + if (!ObjectUtils.isEmpty(query.getId())){ + wrapper.eq("id",query.getId()); + } + if (!ObjectUtils.isEmpty(query.getIdList())){ + wrapper.in("id",query.getId()); + } + if (!ObjectUtils.isEmpty(query.getResourceName())){ + wrapper.like("resource_name",query.getResourceName()); + } + if (!ObjectUtils.isEmpty(query.getMachineId())){ + wrapper.eq("machine_id",query.getMachineId()); + } + if (!ObjectUtils.isEmpty(query.getK8sId())){ + wrapper.eq("k8s_id",query.getK8sId()); + } + if (!ObjectUtils.isEmpty(query.getDockerId())){ + wrapper.eq("docker_id",query.getDockerId()); + } + if (!ObjectUtils.isEmpty(query.getCloudId())){ + wrapper.eq("cloud_id",query.getCloudId()); + } + if (!ObjectUtils.isEmpty(query.getCreator())){ + wrapper.eq("creator",query.getCreator()); + } + Page pipResourceTempPage = resourceManagerDao.selectPage(new Page<>(query.getPageNo(), query.getPageSize()), wrapper); + + if (ObjectUtils.isEmpty(pipResourceTempPage)){ + return new PageResult<>(); + } + + List respList = ResourceConverter.INSTANCE.toRespList(pipResourceTempPage.getRecords()); + + //对资源进行赋值 + respList.forEach(this::setResource); + respList.forEach(this::setUserName); + + respPage.setRecords(respList); + respPage.setTotal(pipResourceTempPage.getTotal()); + respPage.setCurrent(pipResourceTempPage.getCurrent()); + respPage.setSize(pipResourceTempPage.getSize()); + PageResult pageResult = new PageResult<>(respList,pipResourceTempPage.getTotal()); + return pageResult; + } + + private void setResource(ResourceFindResp resourceFindResp) { + if (!StringUtils.isEmpty(resourceFindResp.getMachineId())){ + PipResourceMachine resourceMachine = machineDao.selectById(resourceFindResp.getMachineId()); + resourceFindResp.setResourceMachine(resourceMachine); + } + if (!StringUtils.isEmpty(resourceFindResp.getK8sId())) { + PipResourceK8S pipResourceK8S = k8SDao.selectById(resourceFindResp.getK8sId()); + resourceFindResp.setPipResourceK8S(pipResourceK8S); + } + if (!StringUtils.isEmpty(resourceFindResp.getDockerId())) { + PipelineDockerEndpoint dockerEndpoint = dockerEndpointDao.selectById(resourceFindResp.getDockerId()); + resourceFindResp.setDockerEndpoint(dockerEndpoint); + } + if (!StringUtils.isEmpty(resourceFindResp.getCloudId())) { + PipResourceCloud resourceCloud = cloudDao.selectById(resourceFindResp.getCloudId()); + resourceFindResp.setPipResourceCloud(resourceCloud); + } + } + + + private void setUserName(ResourceFindResp resp) { + if (!StringUtils.isEmpty(resp.getCreator())){ + AdminUserDO user = adminUserService.getUser(Long.valueOf(resp.getCreator())); + if (!ObjectUtils.isEmpty(user)){ + resp.setCreatorName(user.getUsername()); + } + } + + if (!StringUtils.isEmpty(resp.getUpdater())){ + AdminUserDO user = adminUserService.getUser(Long.valueOf(resp.getUpdater())); + if (!ObjectUtils.isEmpty(user)){ + resp.setUpdaterName(user.getUsername()); + } + } + } +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/resource/impl/ResourceServiceImpl.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/resource/impl/ResourceServiceImpl.java deleted file mode 100644 index 5eafa065..00000000 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/resource/impl/ResourceServiceImpl.java +++ /dev/null @@ -1,29 +0,0 @@ -package cd.casic.ci.process.process.service.resource.impl; - -import cd.casic.ci.process.process.dal.pipeline.PipResourceDao; -import cd.casic.ci.process.process.dataObject.resource.PipResource; -import cd.casic.ci.process.process.service.resource.ResourceService; -import cd.casic.ci.process.process.service.stage.impl.StageServiceImpl; -import cd.casic.ci.process.process.service.task.impl.TaskServiceImpl; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import jakarta.annotation.Resource; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; - -/** - * @author HopeLi - * @version v1.0 - * @ClassName ResourceServiceImpl - * @Date: 2025/5/13 10:31 - * @Description: - */ -@Service -@Slf4j -public class ResourceServiceImpl extends ServiceImpl implements ResourceService { - @Resource - private StageServiceImpl stageService; - - @Resource - private TaskServiceImpl taskService; - -} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/target/TargetManagerService.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/target/TargetManagerService.java index d950533b..983403f7 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/target/TargetManagerService.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/target/TargetManagerService.java @@ -4,6 +4,7 @@ package cd.casic.ci.process.process.service.target; import cd.casic.ci.process.dal.req.target.TargetManagerCreateReq; import cd.casic.ci.process.dal.req.target.TargetManagerUpdateReq; import cd.casic.ci.process.dal.req.target.TargetQueryReq; +import cd.casic.ci.process.dal.req.target.TargetUploadReq; import cd.casic.ci.process.dal.resp.target.TargetManagerResp; import cd.casic.ci.process.process.dataObject.base.BaseIdReq; import cd.casic.ci.process.process.dataObject.target.TargetManager; @@ -30,4 +31,6 @@ public interface TargetManagerService extends IService { PageResult findTargetPage(@Valid TargetQueryReq query); List findTargetList(@Valid TargetQueryReq query); + + String fileUpload(@Valid TargetUploadReq req); } diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/target/impl/TargetManagerServiceImpl.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/target/impl/TargetManagerServiceImpl.java index f76c4827..b6138f50 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/target/impl/TargetManagerServiceImpl.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/target/impl/TargetManagerServiceImpl.java @@ -4,6 +4,7 @@ package cd.casic.ci.process.process.service.target.impl; import cd.casic.ci.process.dal.req.target.TargetManagerCreateReq; import cd.casic.ci.process.dal.req.target.TargetManagerUpdateReq; import cd.casic.ci.process.dal.req.target.TargetQueryReq; +import cd.casic.ci.process.dal.req.target.TargetUploadReq; import cd.casic.ci.process.dal.resp.target.TargetManagerResp; import cd.casic.ci.process.process.converter.TargetConverter; import cd.casic.ci.process.process.dal.pipeline.TargetManagerDao; @@ -17,7 +18,10 @@ import cd.casic.framework.commons.exception.enums.GlobalErrorCodeConstants; import cd.casic.framework.commons.pojo.PageResult; import cd.casic.framework.commons.util.object.BeanUtils; import cd.casic.framework.commons.util.util.WebFrameworkUtils; +import cd.casic.module.infra.framework.file.core.client.ftp.FtpFileClient; +import cd.casic.module.infra.framework.file.core.client.ftp.FtpFileClientConfig; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.extra.ftp.FtpMode; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -26,8 +30,11 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.FileCopyUtils; import org.springframework.util.ObjectUtils; +import java.io.FileInputStream; +import java.io.IOException; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; @@ -177,4 +184,32 @@ public class TargetManagerServiceImpl extends ServiceImpl createResource(@RequestBody @NotNull @Valid ResourceReq resourceReq){ - -// String pipelineAuthHostId = envService.createEnv(env); - - String resourceId = "1"; - return CommonResult.success(resourceId); - } - - - @PostMapping(path="/deleteResource") - public CommonResult deleteResource(@NotNull String resourceId){ - -// envService.deleteEnv(envId); - - return CommonResult.success(); - } - - @PostMapping(path="/findResourceList") - public CommonResult> findResourceList(@NotNull ResourceQueryReq query){ - -// List envList = envService.findEnvList(envQuery); - List resourceRespList = new ArrayList<>(0); - ResourceResp resourceResp = new ResourceResp(); - resourceRespList.add(resourceResp); - - return CommonResult.success(resourceRespList); - } - - - - @PostMapping(path="/updateResource") - public CommonResult updateResource(@RequestBody @NotNull @Valid ResourceReq resourceReq){ - -// this.envService.updateEnv(env); - - return CommonResult.success(); - } - - - @PostMapping(path="/findResourcePage") - public CommonResult> findResourcePage(@RequestBody @NotNull @Valid ResourceQueryReq query){ - -// Pagination envPage = envService.findEnvPage(envQuery); - Page respPage = new Page<>(); - List resourceRespList = new ArrayList<>(0); - ResourceResp resourceResp = new ResourceResp(); - resourceResp.setId("1"); - resourceRespList.add(resourceResp); - respPage.setRecords(resourceRespList); - return CommonResult.success(respPage); - } - -} diff --git a/ops-server/src/main/java/cd/casic/server/controller/ResourceManagerController.java b/ops-server/src/main/java/cd/casic/server/controller/ResourceManagerController.java new file mode 100644 index 00000000..940b4c9d --- /dev/null +++ b/ops-server/src/main/java/cd/casic/server/controller/ResourceManagerController.java @@ -0,0 +1,87 @@ +package cd.casic.server.controller; + + +import cd.casic.ci.process.dal.req.resource.ResourceQueryReq; +import cd.casic.ci.process.dal.req.resource.ResourceReq; +import cd.casic.ci.process.dal.resp.resource.ResourceFindResp; +import cd.casic.ci.process.process.dataObject.base.BaseIdReq; +import cd.casic.ci.process.process.service.resource.ResourceManagerService; +import cd.casic.framework.commons.pojo.CommonResult; +import cd.casic.framework.commons.pojo.PageResult; +import jakarta.annotation.Resource; +import jakarta.validation.Valid; +import org.jetbrains.annotations.NotNull; +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.List; + +/** + * @ClassName ResourceController + * @Author hopeli + * @Date 2025/5/10 10:57 + * @Version 1.0 + */ + +@RestController +@RequestMapping("/resource") +public class ResourceManagerController { + + @Resource + private ResourceManagerService resourceManagerService; + + @PostMapping(path="/createResource") + public CommonResult createResource(@RequestBody @Valid ResourceReq resourceReq){ + + String resourceId = resourceManagerService.createResource(resourceReq); + + return CommonResult.success(resourceId); + } + + + @PostMapping(path="/deleteResource") + public CommonResult deleteResource(@RequestBody @Valid BaseIdReq req){ + + resourceManagerService.deleteResource(req.getId()); + + return CommonResult.success(); + } + + @PostMapping(path="/findResourceList") + public CommonResult> findResourceList(@RequestBody @Valid ResourceQueryReq req){ + + List ResourceFindRespList = resourceManagerService.findResourceList(req); + + return CommonResult.success(ResourceFindRespList); + } + + + + @PostMapping(path="/updateResource") + public CommonResult updateResource(@RequestBody @NotNull @Valid ResourceReq resourceReq){ + + resourceManagerService.updateResource(resourceReq); + + return CommonResult.success(); + } + + + @PostMapping(path="/findResourcePage") + public CommonResult> findResourcePage(@RequestBody @NotNull @Valid ResourceQueryReq req){ + + PageResult respPage = resourceManagerService.findResourcePage(req); + return CommonResult.success(respPage); + } + + + @PostMapping(path="/findResourceById") + public CommonResult findResourceById(@RequestBody @Valid BaseIdReq req){ + + ResourceFindResp resp = resourceManagerService.findResourceById(req.getId()); + + return CommonResult.success(resp); + } + +} diff --git a/ops-server/src/main/java/cd/casic/server/controller/TargetController.java b/ops-server/src/main/java/cd/casic/server/controller/TargetController.java index 5e69ffe6..8a520159 100644 --- a/ops-server/src/main/java/cd/casic/server/controller/TargetController.java +++ b/ops-server/src/main/java/cd/casic/server/controller/TargetController.java @@ -4,6 +4,7 @@ package cd.casic.server.controller; import cd.casic.ci.process.dal.req.target.TargetManagerCreateReq; import cd.casic.ci.process.dal.req.target.TargetManagerUpdateReq; import cd.casic.ci.process.dal.req.target.TargetQueryReq; +import cd.casic.ci.process.dal.req.target.TargetUploadReq; import cd.casic.ci.process.dal.resp.target.TargetManagerResp; import cd.casic.ci.process.process.dataObject.base.BaseIdReq; import cd.casic.ci.process.process.dataObject.target.TargetVersion; @@ -88,4 +89,13 @@ public class TargetController { return CommonResult.success(respList); } + + + @PostMapping(path="/fileUpload") + public CommonResult fileUpload(@RequestBody @Valid TargetUploadReq req){ + + String filePath = targetManagerService.fileUpload(req); + + return CommonResult.success(filePath); + } }