From 0c0803fdc54b32066e667d1e512c9ebcb438fa7a Mon Sep 17 00:00:00 2001 From: HopeLi <1278288511@qq.com> Date: Wed, 18 Jun 2025 11:11:53 +0800 Subject: [PATCH] =?UTF-8?q?0618=20ljc=20=20=20report=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ci/api/TaskResourceManagerController.java | 61 +--- .../taskResource/TaskResourceQueryReq.java | 19 +- .../taskResource/TaskResourceFindResp.java | 62 +--- .../dao/taskResource/ResourceCloudDao.java | 14 + .../ResourceDockerEndpointDao.java | 14 + .../dao/taskResource/ResourceK8SDao.java | 14 + .../dao/taskResource/ResourceMachineDao.java | 14 + .../dao/taskResource/ResourceManagerDao.java | 14 + .../taskResource/ResourceCloud.java | 113 +++++++ .../taskResource/ResourceDockerEndpoint.java | 55 +++ .../dataObject/taskResource/ResourceK8S.java | 12 + .../taskResource/ResourceMachine.java | 73 ++++ .../taskResource/ResourceManager.java | 40 +++ .../TaskResourceManagerService.java | 22 +- .../impl/TaskResourceManagerServiceImpl.java | 313 +++--------------- 15 files changed, 426 insertions(+), 414 deletions(-) create mode 100644 modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dao/taskResource/ResourceCloudDao.java create mode 100644 modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dao/taskResource/ResourceDockerEndpointDao.java create mode 100644 modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dao/taskResource/ResourceK8SDao.java create mode 100644 modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dao/taskResource/ResourceMachineDao.java create mode 100644 modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dao/taskResource/ResourceManagerDao.java create mode 100644 modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/taskResource/ResourceCloud.java create mode 100644 modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/taskResource/ResourceDockerEndpoint.java create mode 100644 modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/taskResource/ResourceK8S.java create mode 100644 modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/taskResource/ResourceMachine.java create mode 100644 modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/taskResource/ResourceManager.java diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/api/TaskResourceManagerController.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/api/TaskResourceManagerController.java index 220456a0..07ebe08d 100644 --- a/modules/module-ci-process-api/src/main/java/cd/casic/ci/api/TaskResourceManagerController.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/api/TaskResourceManagerController.java @@ -1,22 +1,15 @@ package cd.casic.ci.api; -import cd.casic.ci.process.dto.req.resource.ResourceQueryReq; -import cd.casic.ci.process.dto.req.resource.ResourceReq; -import cd.casic.ci.process.dto.resp.resource.ResourceFindResp; -import cd.casic.ci.process.process.dataObject.base.BaseIdReq; +import cd.casic.ci.process.dto.req.taskResource.TaskResourceQueryReq; +import cd.casic.ci.process.dto.resp.taskResource.TaskResourceFindResp; import cd.casic.ci.process.process.service.taskResource.TaskResourceManagerService; 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 @@ -32,56 +25,12 @@ public class TaskResourceManagerController { @Resource private TaskResourceManagerService 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){ + public CommonResult findResourceList(@RequestBody @Valid TaskResourceQueryReq req){ - List ResourceFindRespList = resourceManagerService.findResourceList(req); + TaskResourceFindResp ResourceFindResp = 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); + return CommonResult.success(ResourceFindResp); } } diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dto/req/taskResource/TaskResourceQueryReq.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dto/req/taskResource/TaskResourceQueryReq.java index 9d41e193..90e868aa 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dto/req/taskResource/TaskResourceQueryReq.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dto/req/taskResource/TaskResourceQueryReq.java @@ -15,24 +15,9 @@ public class TaskResourceQueryReq extends PageParam { private List idList; /** - * docker镜像服务器信息id + * 资源类型 */ - private String dockerId; - - /** - * k8s服务器信息id - */ - private String k8sId; - - /** - * 机器服务器信息id - */ - private String machineId; - - /** - * 弹性云服务器信息id - */ - private String cloudId; + private String type; /** * 资源名称 diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dto/resp/taskResource/TaskResourceFindResp.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dto/resp/taskResource/TaskResourceFindResp.java index 30cfcefa..ad835f17 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dto/resp/taskResource/TaskResourceFindResp.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dto/resp/taskResource/TaskResourceFindResp.java @@ -1,63 +1,21 @@ package cd.casic.ci.process.dto.resp.taskResource; -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.module.execute.docker.dataobject.dto.DockerEndpointDo; +import cd.casic.ci.process.process.dataObject.taskResource.ResourceCloud; +import cd.casic.ci.process.process.dataObject.taskResource.ResourceDockerEndpoint; +import cd.casic.ci.process.process.dataObject.taskResource.ResourceK8S; +import cd.casic.ci.process.process.dataObject.taskResource.ResourceMachine; import lombok.Data; +import java.util.List; + @Data public class TaskResourceFindResp { - /** - * 主键id - */ - private String id; + private List resourceMachineList; - /** - * docker镜像服务器信息id - */ - private String dockerId; + private List dockerEndpointList; - /** - * k8s服务器信息id - */ - private String k8sId; + private List resourceK8SList; - /** - * 机器服务器信息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 DockerEndpointDo dockerEndpoint; - - private PipResourceK8S pipResourceK8S; - - private PipResourceCloud pipResourceCloud; + private List resourceCloudList; } diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dao/taskResource/ResourceCloudDao.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dao/taskResource/ResourceCloudDao.java new file mode 100644 index 00000000..74b42ebc --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dao/taskResource/ResourceCloudDao.java @@ -0,0 +1,14 @@ +package cd.casic.ci.process.process.dao.taskResource; + +import cd.casic.ci.process.process.dataObject.taskResource.ResourceCloud; +import cd.casic.framework.mybatis.core.mapper.BaseMapperX; + +/** + * @author HopeLi + * @version v1.0 + * @ClassName PipResourceMachineDao + * @Date: 2025/5/13 14:39 + * @Description: + */ +public interface ResourceCloudDao extends BaseMapperX { +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dao/taskResource/ResourceDockerEndpointDao.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dao/taskResource/ResourceDockerEndpointDao.java new file mode 100644 index 00000000..37f6d95f --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dao/taskResource/ResourceDockerEndpointDao.java @@ -0,0 +1,14 @@ +package cd.casic.ci.process.process.dao.taskResource; + +import cd.casic.ci.process.process.dataObject.taskResource.ResourceDockerEndpoint; +import cd.casic.framework.mybatis.core.mapper.BaseMapperX; + +/** + * @author HopeLi + * @version v1.0 + * @ClassName PipResourceDockerEndpointDao + * @Date: 2025/5/13 14:39 + * @Description: + */ +public interface ResourceDockerEndpointDao extends BaseMapperX { +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dao/taskResource/ResourceK8SDao.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dao/taskResource/ResourceK8SDao.java new file mode 100644 index 00000000..f0e9ebda --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dao/taskResource/ResourceK8SDao.java @@ -0,0 +1,14 @@ +package cd.casic.ci.process.process.dao.taskResource; + +import cd.casic.ci.process.process.dataObject.taskResource.ResourceK8S; +import cd.casic.framework.mybatis.core.mapper.BaseMapperX; + +/** + * @author HopeLi + * @version v1.0 + * @ClassName PipResourceK8SDao + * @Date: 2025/5/13 14:39 + * @Description: + */ +public interface ResourceK8SDao extends BaseMapperX { +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dao/taskResource/ResourceMachineDao.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dao/taskResource/ResourceMachineDao.java new file mode 100644 index 00000000..84d3944c --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dao/taskResource/ResourceMachineDao.java @@ -0,0 +1,14 @@ +package cd.casic.ci.process.process.dao.taskResource; + +import cd.casic.ci.process.process.dataObject.taskResource.ResourceMachine; +import cd.casic.framework.mybatis.core.mapper.BaseMapperX; + +/** + * @author HopeLi + * @version v1.0 + * @ClassName PipResourceMachineDao + * @Date: 2025/5/13 14:39 + * @Description: + */ +public interface ResourceMachineDao extends BaseMapperX { +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dao/taskResource/ResourceManagerDao.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dao/taskResource/ResourceManagerDao.java new file mode 100644 index 00000000..50c2ea64 --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dao/taskResource/ResourceManagerDao.java @@ -0,0 +1,14 @@ +package cd.casic.ci.process.process.dao.taskResource; + +import cd.casic.ci.process.process.dataObject.taskResource.ResourceManager; +import cd.casic.framework.mybatis.core.mapper.BaseMapperX; + +/** + * @author HopeLi + * @version v1.0 + * @ClassName PipResourceDao + * @Date: 2025/5/13 14:39 + * @Description: + */ +public interface ResourceManagerDao extends BaseMapperX { +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/taskResource/ResourceCloud.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/taskResource/ResourceCloud.java new file mode 100644 index 00000000..aabf4b9b --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/taskResource/ResourceCloud.java @@ -0,0 +1,113 @@ +package cd.casic.ci.process.process.dataObject.taskResource; + +import cd.casic.ci.process.process.dataObject.base.PipBaseElement; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @ClassName PipResourceCloud + * @Author hopeli + * @Date 2025/5/31 22:19 + * @Version 1.0 + */ +@Data + @EqualsAndHashCode(callSuper = true) +public class ResourceCloud extends PipBaseElement { + + private String TaskId; + + /** + * 虚拟机类型 + */ + private String vmType; + + /** + * 虚拟机名称 + */ + private String vmName; + + /** + * 到期释放时间 + */ + private String expirationTime; + + /** + * 数量 + */ + private String sum; + + /** + * 平台 + */ + private String platform; + + /** + * cpu架构 + */ + private String cpuFramework; + + /** + * 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; +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/taskResource/ResourceDockerEndpoint.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/taskResource/ResourceDockerEndpoint.java new file mode 100644 index 00000000..de4ec9e4 --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/taskResource/ResourceDockerEndpoint.java @@ -0,0 +1,55 @@ +package cd.casic.ci.process.process.dataObject.taskResource; + +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 ResourceDockerEndpoint extends PipBaseElement { + + private String TaskId; + + /** + * 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/dataObject/taskResource/ResourceK8S.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/taskResource/ResourceK8S.java new file mode 100644 index 00000000..aa8b0a47 --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/taskResource/ResourceK8S.java @@ -0,0 +1,12 @@ +package cd.casic.ci.process.process.dataObject.taskResource; + +import cd.casic.ci.process.process.dataObject.base.PipBaseElement; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@EqualsAndHashCode(callSuper = true) +@Data +public class ResourceK8S extends PipBaseElement { + + private String TaskId; +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/taskResource/ResourceMachine.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/taskResource/ResourceMachine.java new file mode 100644 index 00000000..f3f841f2 --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/taskResource/ResourceMachine.java @@ -0,0 +1,73 @@ +package cd.casic.ci.process.process.dataObject.taskResource; + +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 ResourceMachine extends PipBaseElement { + + private String TaskId; + + /** + * 主机地址 + */ + 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/taskResource/ResourceManager.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/taskResource/ResourceManager.java new file mode 100644 index 00000000..59068b0b --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/taskResource/ResourceManager.java @@ -0,0 +1,40 @@ +package cd.casic.ci.process.process.dataObject.taskResource; + +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 ResourceManager 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/service/taskResource/TaskResourceManagerService.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/taskResource/TaskResourceManagerService.java index e9f2a1fc..6a107afb 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/taskResource/TaskResourceManagerService.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/taskResource/TaskResourceManagerService.java @@ -1,15 +1,11 @@ package cd.casic.ci.process.process.service.taskResource; -import cd.casic.ci.process.dto.req.resource.ResourceQueryReq; -import cd.casic.ci.process.dto.req.resource.ResourceReq; -import cd.casic.ci.process.dto.resp.resource.ResourceFindResp; -import cd.casic.ci.process.process.dataObject.resource.PipResourceManager; -import cd.casic.framework.commons.pojo.PageResult; +import cd.casic.ci.process.dto.req.taskResource.TaskResourceQueryReq; +import cd.casic.ci.process.dto.resp.taskResource.TaskResourceFindResp; +import cd.casic.ci.process.process.dataObject.taskResource.ResourceManager; import com.baomidou.mybatisplus.extension.service.IService; import jakarta.validation.Valid; -import java.util.List; - /** * @author HopeLi * @version v1.0 @@ -17,16 +13,8 @@ import java.util.List; * @Date: 2025/5/13 10:27 * @Description: */ -public interface TaskResourceManagerService extends IService { - String createResource(@Valid ResourceReq resourceReq); +public interface TaskResourceManagerService extends IService { - void deleteResource(String id); + TaskResourceFindResp findResourceList(@Valid TaskResourceQueryReq req); - 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/taskResource/impl/TaskResourceManagerServiceImpl.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/taskResource/impl/TaskResourceManagerServiceImpl.java index 60c93913..d0eace68 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/taskResource/impl/TaskResourceManagerServiceImpl.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/taskResource/impl/TaskResourceManagerServiceImpl.java @@ -1,36 +1,19 @@ package cd.casic.ci.process.process.service.taskResource.impl; -import cd.casic.ci.process.dto.req.resource.ResourceQueryReq; -import cd.casic.ci.process.dto.req.resource.ResourceReq; -import cd.casic.ci.process.dto.resp.resource.ResourceFindResp; -import cd.casic.ci.process.process.converter.ResourceConverter; -import cd.casic.ci.process.process.dao.pipeline.PipResourceCloudDao; -import cd.casic.ci.process.process.dao.pipeline.PipResourceK8SDao; -import cd.casic.ci.process.process.dao.pipeline.PipResourceMachineDao; -import cd.casic.ci.process.process.dao.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.service.resource.ResourceManagerService; +import cd.casic.ci.process.dto.req.taskResource.TaskResourceQueryReq; +import cd.casic.ci.process.dto.resp.taskResource.TaskResourceFindResp; +import cd.casic.ci.process.process.dao.taskResource.*; +import cd.casic.ci.process.process.dataObject.taskResource.*; +import cd.casic.ci.process.process.service.taskResource.TaskResourceManagerService; 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 cd.casic.module.execute.docker.dao.DockerEndpointDao; -import cd.casic.module.execute.docker.dataobject.dto.DockerEndpointDo; 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.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; -import java.util.ArrayList; import java.util.List; /** @@ -42,271 +25,57 @@ import java.util.List; */ //@Service @Slf4j -public class TaskResourceManagerServiceImpl extends ServiceImpl implements ResourceManagerService { - @Resource - private PipResourceManagerDao resourceManagerDao; +public class TaskResourceManagerServiceImpl extends ServiceImpl implements TaskResourceManagerService { @Resource - private PipResourceMachineDao machineDao; + private ResourceMachineDao machineDao; @Resource - private DockerEndpointDao dockerEndpointDao; + private ResourceDockerEndpointDao dockerEndpointDao; @Resource - private PipResourceK8SDao k8SDao; + private ResourceK8SDao k8SDao; @Resource - private PipResourceCloudDao cloudDao; - - @Resource - private AdminUserServiceImpl adminUserService; - - - @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())) { - DockerEndpointDo 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())) { - DockerEndpointDo 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; - } + private ResourceCloudDao cloudDao; @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); + public TaskResourceFindResp findResourceList(TaskResourceQueryReq query) { + TaskResourceFindResp taskResourceFindResp = new TaskResourceFindResp(); - if (ObjectUtils.isEmpty(pipResourceManagerList)){ - return new ArrayList<>(0); + if (StringUtils.isEmpty(query.getType())){ + throw new ServiceException(GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR.getCode(),"资源类型不可为空"); } - List respList = ResourceConverter.INSTANCE.toRespList(pipResourceManagerList); - - //对资源进行赋值 - respList.forEach(this::setResource); - respList.forEach(this::setUserName); - - return respList; - } - - @Override - public PageResult findResourcePage(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()); - } - 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); - - PageResult pageResult = new PageResult<>(respList,pipResourceTempPage.getTotal(),pipResourceTempPage.getCurrent(),pipResourceTempPage.getSize()); - 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())) { - DockerEndpointDo 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()); - } + switch (query.getType()) { + case "docker": + List resourceDockerEndpoints = dockerEndpointDao.selectList(new QueryWrapper<>()); + if (!ObjectUtils.isEmpty(resourceDockerEndpoints)){ + taskResourceFindResp.setDockerEndpointList(resourceDockerEndpoints); + } + return taskResourceFindResp; + case "k8s": + List resourceK8S = k8SDao.selectList(new QueryWrapper<>()); + if (!ObjectUtils.isEmpty(resourceK8S)){ + taskResourceFindResp.setResourceK8SList(resourceK8S); + } + return taskResourceFindResp; + case "machine": + List resourceMachines = machineDao.selectList(new QueryWrapper<>()); + if (!ObjectUtils.isEmpty(resourceMachines)){ + taskResourceFindResp.setResourceMachineList(resourceMachines); + } + return taskResourceFindResp; + case "cloud": + List resourceClouds = cloudDao.selectList(new QueryWrapper<>()); + if (!ObjectUtils.isEmpty(resourceClouds)){ + taskResourceFindResp.setResourceCloudList(resourceClouds); + } + return taskResourceFindResp; + default: + throw new ServiceException(GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR.getCode(),"资源类型错误"); } } }