0601 ljc resource模块基础功能开发
This commit is contained in:
parent
1eb28acf44
commit
aca9ff8b47
@ -1,127 +1,37 @@
|
|||||||
package cd.casic.ci.process.dal.req.resource;
|
package cd.casic.ci.process.dal.req.resource;
|
||||||
|
|
||||||
|
import cd.casic.framework.commons.pojo.PageParam;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.util.List;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class ResourceQueryReq {
|
public class ResourceQueryReq extends PageParam {
|
||||||
/**
|
/**
|
||||||
* 主键id
|
* 主键id
|
||||||
*/
|
*/
|
||||||
private String id;
|
private String id;
|
||||||
|
|
||||||
/**
|
private List<String> idList;
|
||||||
* 虚拟机类型
|
|
||||||
*/
|
|
||||||
private String vmType;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 虚拟机名称
|
* 资源类型 docker, k8s, machine,cloud
|
||||||
*/
|
*/
|
||||||
private String vmName;
|
private String resourceType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 到期释放时间
|
* 其他资源表 ID
|
||||||
*/
|
*/
|
||||||
private String expirationTime;
|
private String resourceId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 数量
|
* 资源名称
|
||||||
*/
|
*/
|
||||||
private String sum;
|
private String resourceName;
|
||||||
|
|
||||||
/**
|
|
||||||
* 平台
|
|
||||||
*/
|
|
||||||
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;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 流水线id
|
|
||||||
*/
|
|
||||||
private String pipelineId;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建人用户id
|
* 创建人用户id
|
||||||
*/
|
*/
|
||||||
private Long createUserId;
|
private String creator;
|
||||||
|
|
||||||
private Long updateUserId;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 创建时间
|
|
||||||
*/
|
|
||||||
private LocalDateTime createTime;
|
|
||||||
|
|
||||||
private LocalDateTime updateTime;
|
|
||||||
}
|
}
|
||||||
|
@ -1,111 +1,34 @@
|
|||||||
package cd.casic.ci.process.dal.req.resource;
|
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;
|
import lombok.Data;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class ResourceReq {
|
public class ResourceReq {
|
||||||
/**
|
|
||||||
* 主键id
|
|
||||||
*/
|
|
||||||
private String id;
|
private String id;
|
||||||
|
/**
|
||||||
|
* 资源类型 docker, k8s, machine,cloud
|
||||||
|
*/
|
||||||
|
private String resourceType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 虚拟机类型
|
* 其他资源表 ID
|
||||||
*/
|
*/
|
||||||
private String vmType;
|
private String resourceId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 虚拟机名称
|
* 资源名称
|
||||||
*/
|
*/
|
||||||
private String vmName;
|
private String resourceName;
|
||||||
|
|
||||||
/**
|
private PipResourceMachine resourceMachine;
|
||||||
* 到期释放时间
|
|
||||||
*/
|
|
||||||
private String expirationTime;
|
|
||||||
|
|
||||||
/**
|
private PipelineDockerEndpoint dockerEndpoint;
|
||||||
* 数量
|
|
||||||
*/
|
|
||||||
private String sum;
|
|
||||||
|
|
||||||
/**
|
private PipResourceK8S pipResourceK8S;
|
||||||
* 平台
|
|
||||||
*/
|
|
||||||
private String platform;
|
|
||||||
|
|
||||||
/**
|
private PipResourceCloud pipResourceCloud;
|
||||||
* 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;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 流水线id
|
|
||||||
*/
|
|
||||||
private String pipelineId;
|
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,53 @@
|
|||||||
|
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, k8s, machine
|
||||||
|
*/
|
||||||
|
private String resourceType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 其他资源表 ID
|
||||||
|
*/
|
||||||
|
private String resourceId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 资源名称
|
||||||
|
*/
|
||||||
|
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;
|
||||||
|
|
||||||
|
}
|
@ -1,9 +1,10 @@
|
|||||||
package cd.casic.ci.process.dal.resp.resource;
|
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 lombok.Data;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class ResourceResp {
|
public class ResourceResp {
|
||||||
/**
|
/**
|
||||||
@ -12,116 +13,38 @@ public class ResourceResp {
|
|||||||
private String id;
|
private String id;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 虚拟机类型
|
* 资源类型 docker, k8s, machine
|
||||||
*/
|
*/
|
||||||
private String vmType;
|
private String resourceType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 虚拟机名称
|
* 其他资源表 ID
|
||||||
*/
|
*/
|
||||||
private String vmName;
|
private String resourceId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 到期释放时间
|
* 资源名称
|
||||||
*/
|
*/
|
||||||
private String expirationTime;
|
private String resourceName;
|
||||||
|
|
||||||
/**
|
//创建人id
|
||||||
* 数量
|
private String creator;
|
||||||
*/
|
|
||||||
private String sum;
|
|
||||||
|
|
||||||
/**
|
//创建人姓名
|
||||||
* 平台
|
private String creatorName;
|
||||||
*/
|
|
||||||
private String platform;
|
|
||||||
|
|
||||||
/**
|
//最后修改人id
|
||||||
* cpu架构
|
private String updater;
|
||||||
*/
|
|
||||||
private String cpuFramework;
|
|
||||||
|
|
||||||
/**
|
//最后修改人姓名
|
||||||
* GPU配置状态
|
private String updaterName;
|
||||||
*/
|
|
||||||
private String gpuStatus;
|
|
||||||
|
|
||||||
/**
|
private String remark;
|
||||||
* cpu内核数量
|
|
||||||
*/
|
|
||||||
private String cpuCoreSum;
|
|
||||||
|
|
||||||
/**
|
private PipResourceMachine resourceMachine;
|
||||||
* 内存
|
|
||||||
*/
|
|
||||||
private String internalStorage;
|
|
||||||
|
|
||||||
/**
|
private PipelineDockerEndpoint dockerEndpoint;
|
||||||
* 操作系统
|
|
||||||
*/
|
|
||||||
private String os;
|
|
||||||
|
|
||||||
/**
|
private PipResourceK8S pipResourceK8S;
|
||||||
* 系统盘类型
|
|
||||||
*/
|
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
@ -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<String, ResourceTypeEnum> getCodeMap(){
|
||||||
|
Map<String, ResourceTypeEnum> map = new HashMap<>();
|
||||||
|
for (ResourceTypeEnum value : values()) {
|
||||||
|
map.put(value.code, value);
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,24 @@
|
|||||||
|
package cd.casic.ci.process.process.converter;
|
||||||
|
|
||||||
|
import cd.casic.ci.process.dal.resp.resource.ResourceFindResp;
|
||||||
|
import cd.casic.ci.process.process.dataObject.resource.PipResourceTemp;
|
||||||
|
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 toBean(PipResourceTemp req);
|
||||||
|
List<ResourceFindResp> toRespList(List<PipResourceTemp> pipResourceTemps);
|
||||||
|
|
||||||
|
}
|
@ -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<PipResourceCloud> {
|
||||||
|
}
|
@ -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<PipelineDockerEndpoint> {
|
||||||
|
}
|
@ -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<PipResourceK8S> {
|
||||||
|
}
|
@ -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<PipResourceMachine> {
|
||||||
|
}
|
@ -1,6 +1,6 @@
|
|||||||
package cd.casic.ci.process.process.dal.pipeline;
|
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.PipResourceTemp;
|
||||||
import cd.casic.framework.mybatis.core.mapper.BaseMapperX;
|
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
|
* @Date: 2025/5/13 14:39
|
||||||
* @Description:
|
* @Description:
|
||||||
*/
|
*/
|
||||||
public interface PipResourceDao extends BaseMapperX<PipResource> {
|
public interface PipResourceTempDao extends BaseMapperX<PipResourceTemp> {
|
||||||
}
|
}
|
@ -1,18 +1,18 @@
|
|||||||
package cd.casic.ci.process.process.dataObject.resource;
|
package cd.casic.ci.process.process.dataObject.resource;
|
||||||
|
|
||||||
import cd.casic.ci.process.process.dataObject.base.PipBaseElement;
|
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.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ClassName PipResourceCloud
|
||||||
|
* @Author hopeli
|
||||||
|
* @Date 2025/5/31 22:19
|
||||||
|
* @Version 1.0
|
||||||
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class PipResource extends PipBaseElement {
|
@EqualsAndHashCode(callSuper = true)
|
||||||
/**
|
public class PipResourceCloud extends PipBaseElement {
|
||||||
* 主键id
|
|
||||||
*/
|
|
||||||
@TableId(type = IdType.ASSIGN_ID)
|
|
||||||
private String id;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 虚拟机类型
|
* 虚拟机类型
|
||||||
*/
|
*/
|
||||||
@ -107,9 +107,4 @@ public class PipResource extends PipBaseElement {
|
|||||||
* 反亲和组
|
* 反亲和组
|
||||||
*/
|
*/
|
||||||
private String antiAffinityGroup;
|
private String antiAffinityGroup;
|
||||||
|
|
||||||
/**
|
|
||||||
* 流水线id
|
|
||||||
*/
|
|
||||||
private String pipelineId;
|
|
||||||
}
|
}
|
@ -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 {
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
}
|
@ -0,0 +1,30 @@
|
|||||||
|
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 PipResourceTemp extends PipBaseElement {
|
||||||
|
/**
|
||||||
|
* 资源类型 docker, k8s, machine
|
||||||
|
*/
|
||||||
|
private String resourceType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 其他资源表 ID
|
||||||
|
*/
|
||||||
|
private String resourceId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 资源名称
|
||||||
|
*/
|
||||||
|
private String resourceName;
|
||||||
|
}
|
@ -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;
|
||||||
|
}
|
@ -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.BaseRunContext;
|
||||||
import cd.casic.ci.process.engine.runContext.PipelineRunContext;
|
import cd.casic.ci.process.engine.runContext.PipelineRunContext;
|
||||||
import cd.casic.ci.process.process.converter.PipelineConverter;
|
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.PipStageDao;
|
||||||
import cd.casic.ci.process.process.dal.pipeline.PipTaskDao;
|
import cd.casic.ci.process.process.dal.pipeline.PipTaskDao;
|
||||||
import cd.casic.ci.process.process.dal.pipeline.PipelineDao;
|
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.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.stage.PipStage;
|
||||||
import cd.casic.ci.process.process.dataObject.task.PipTask;
|
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.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.stage.impl.StageServiceImpl;
|
||||||
import cd.casic.ci.process.process.service.task.impl.TaskServiceImpl;
|
import cd.casic.ci.process.process.service.task.impl.TaskServiceImpl;
|
||||||
import cd.casic.ci.process.process.service.template.impl.TemplateManagerServiceImpl;
|
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.Duration;
|
||||||
import java.time.LocalDateTime;
|
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
|
* @author HopeLi
|
||||||
@ -65,9 +66,6 @@ public class PipelineServiceImpl extends ServiceImpl<PipelineDao, PipPipeline> i
|
|||||||
@Resource
|
@Resource
|
||||||
private TaskServiceImpl taskService;
|
private TaskServiceImpl taskService;
|
||||||
|
|
||||||
@Resource
|
|
||||||
private ResourceServiceImpl resourceService;
|
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private PipelineDao pipelineDao;
|
private PipelineDao pipelineDao;
|
||||||
|
|
||||||
@ -77,9 +75,6 @@ public class PipelineServiceImpl extends ServiceImpl<PipelineDao, PipPipeline> i
|
|||||||
@Resource
|
@Resource
|
||||||
private PipTaskDao pipTaskDao;
|
private PipTaskDao pipTaskDao;
|
||||||
|
|
||||||
@Resource
|
|
||||||
private PipResourceDao pipResourceDao;
|
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private AdminUserServiceImpl adminUserService;
|
private AdminUserServiceImpl adminUserService;
|
||||||
@Resource
|
@Resource
|
||||||
@ -105,17 +100,6 @@ public class PipelineServiceImpl extends ServiceImpl<PipelineDao, PipPipeline> i
|
|||||||
pipeline.setState(1);
|
pipeline.setState(1);
|
||||||
pipeline.setMachineId("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);
|
this.save(pipeline);
|
||||||
|
|
||||||
//根据模板ID初始化
|
//根据模板ID初始化
|
||||||
@ -286,15 +270,6 @@ public class PipelineServiceImpl extends ServiceImpl<PipelineDao, PipPipeline> i
|
|||||||
List<String> list = task.stream().map(PipTask::getId).toList();
|
List<String> list = task.stream().map(PipTask::getId).toList();
|
||||||
pipTaskDao.deleteByIds(list);
|
pipTaskDao.deleteByIds(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
//删除resource表数据
|
|
||||||
if (StringUtils.isNotEmpty(pipeline.getResourceId())){
|
|
||||||
PipResource pipResource = pipResourceDao.selectById(pipeline.getResourceId());
|
|
||||||
|
|
||||||
if (!ObjectUtils.isEmpty(pipResource)){
|
|
||||||
pipResourceDao.deleteById(pipeline.getResourceId());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1,7 +1,14 @@
|
|||||||
package cd.casic.ci.process.process.service.resource;
|
package cd.casic.ci.process.process.service.resource;
|
||||||
|
|
||||||
import cd.casic.ci.process.process.dataObject.resource.PipResource;
|
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.PipResourceTemp;
|
||||||
|
import cd.casic.framework.commons.pojo.PageResult;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import jakarta.validation.Valid;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author HopeLi
|
* @author HopeLi
|
||||||
@ -10,5 +17,16 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
|||||||
* @Date: 2025/5/13 10:27
|
* @Date: 2025/5/13 10:27
|
||||||
* @Description:
|
* @Description:
|
||||||
*/
|
*/
|
||||||
public interface ResourceService extends IService<PipResource> {
|
public interface ResourceService extends IService<PipResourceTemp> {
|
||||||
|
String createResource(@Valid ResourceReq resourceReq);
|
||||||
|
|
||||||
|
void deleteResource(String id);
|
||||||
|
|
||||||
|
void updateResource(@Valid ResourceReq resourceReq);
|
||||||
|
|
||||||
|
ResourceFindResp findResourceById(String id);
|
||||||
|
|
||||||
|
List<ResourceFindResp> findResourceList(@Valid ResourceQueryReq req);
|
||||||
|
|
||||||
|
PageResult<ResourceFindResp> findResourcePage(@Valid ResourceQueryReq req);
|
||||||
}
|
}
|
||||||
|
@ -1,14 +1,39 @@
|
|||||||
package cd.casic.ci.process.process.service.resource.impl;
|
package cd.casic.ci.process.process.service.resource.impl;
|
||||||
|
|
||||||
import cd.casic.ci.process.process.dal.pipeline.PipResourceDao;
|
import cd.casic.ci.process.dal.req.resource.ResourceQueryReq;
|
||||||
import cd.casic.ci.process.process.dataObject.resource.PipResource;
|
import cd.casic.ci.process.dal.req.resource.ResourceReq;
|
||||||
|
import cd.casic.ci.process.dal.resp.resource.ResourceFindResp;
|
||||||
|
import cd.casic.ci.process.enums.ResourceTypeEnum;
|
||||||
|
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.PipResourceTempDao;
|
||||||
|
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.PipResourceTemp;
|
||||||
|
import cd.casic.ci.process.process.dataObject.resource.PipelineDockerEndpoint;
|
||||||
import cd.casic.ci.process.process.service.resource.ResourceService;
|
import cd.casic.ci.process.process.service.resource.ResourceService;
|
||||||
import cd.casic.ci.process.process.service.stage.impl.StageServiceImpl;
|
import cd.casic.framework.commons.exception.ServiceException;
|
||||||
import cd.casic.ci.process.process.service.task.impl.TaskServiceImpl;
|
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 com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
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.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.util.ObjectUtils;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author HopeLi
|
* @author HopeLi
|
||||||
@ -19,11 +44,299 @@ import org.springframework.stereotype.Service;
|
|||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class ResourceServiceImpl extends ServiceImpl<PipResourceDao, PipResource> implements ResourceService {
|
public class ResourceServiceImpl extends ServiceImpl<PipResourceTempDao, PipResourceTemp> implements ResourceService {
|
||||||
@Resource
|
@Resource
|
||||||
private StageServiceImpl stageService;
|
private PipResourceTempDao tempDao;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private TaskServiceImpl taskService;
|
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) {
|
||||||
|
if (ObjectUtils.isEmpty(resourceReq.getResourceName())){
|
||||||
|
throw new ServiceException(GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR.getCode(),"资源类型不可为空");
|
||||||
|
}
|
||||||
|
|
||||||
|
PipResourceTemp pipResourceTemp = new PipResourceTemp();
|
||||||
|
pipResourceTemp.setResourceName(resourceReq.getResourceName());
|
||||||
|
pipResourceTemp.setResourceType(resourceReq.getResourceType());
|
||||||
|
|
||||||
|
//如果资源类型不属于弹性云,则新增,如果属于弹性云,则走申请流程
|
||||||
|
if (resourceReq.getResourceType().equals(ResourceTypeEnum.MACHINE.getCode())){
|
||||||
|
|
||||||
|
if (!ObjectUtils.isEmpty(resourceReq.getResourceMachine())){
|
||||||
|
PipResourceMachine resourceMachine = resourceReq.getResourceMachine();
|
||||||
|
machineDao.insert(resourceMachine);
|
||||||
|
|
||||||
|
pipResourceTemp.setResourceId(resourceMachine.getId());
|
||||||
|
}
|
||||||
|
tempDao.insert(pipResourceTemp);
|
||||||
|
|
||||||
|
}else if (resourceReq.getResourceType().equals(ResourceTypeEnum.K8S.getCode())) {
|
||||||
|
|
||||||
|
if (!ObjectUtils.isEmpty(resourceReq.getPipResourceK8S())) {
|
||||||
|
PipResourceK8S pipResourceK8S = resourceReq.getPipResourceK8S();
|
||||||
|
k8SDao.insert(pipResourceK8S);
|
||||||
|
|
||||||
|
pipResourceTemp.setResourceId(pipResourceK8S.getId());
|
||||||
|
}
|
||||||
|
tempDao.insert(pipResourceTemp);
|
||||||
|
|
||||||
|
}else if (resourceReq.getResourceType().equals(ResourceTypeEnum.DOCKER.getCode())) {
|
||||||
|
|
||||||
|
if (!ObjectUtils.isEmpty(resourceReq.getDockerEndpoint())) {
|
||||||
|
PipelineDockerEndpoint dockerEndpoint = resourceReq.getDockerEndpoint();
|
||||||
|
dockerEndpointDao.insert(dockerEndpoint);
|
||||||
|
|
||||||
|
pipResourceTemp.setResourceId(dockerEndpoint.getId());
|
||||||
|
}
|
||||||
|
tempDao.insert(pipResourceTemp);
|
||||||
|
|
||||||
|
}else if (resourceReq.getResourceType().equals(ResourceTypeEnum.CLOUD.getCode())){
|
||||||
|
PipResourceCloud pipResourceCloud = resourceReq.getPipResourceCloud();
|
||||||
|
cloudDao.insert(pipResourceCloud);
|
||||||
|
|
||||||
|
pipResourceTemp.setResourceId(pipResourceCloud.getId());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return pipResourceTemp.getId();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deleteResource(String id) {
|
||||||
|
PipResourceTemp pipResourceTemp = tempDao.selectById(id);
|
||||||
|
if (pipResourceTemp.getResourceType().equals(ResourceTypeEnum.MACHINE.getCode())){
|
||||||
|
machineDao.deleteById(pipResourceTemp.getResourceId());
|
||||||
|
}else if (pipResourceTemp.getResourceType().equals(ResourceTypeEnum.K8S.getCode())) {
|
||||||
|
k8SDao.deleteById(pipResourceTemp.getResourceId());
|
||||||
|
}else if (pipResourceTemp.getResourceType().equals(ResourceTypeEnum.DOCKER.getCode())) {
|
||||||
|
dockerEndpointDao.deleteById(pipResourceTemp.getResourceId());
|
||||||
|
} else if (pipResourceTemp.getResourceType().equals(ResourceTypeEnum.CLOUD.getCode())) {
|
||||||
|
cloudDao.deleteById(pipResourceTemp.getResourceId());
|
||||||
|
}
|
||||||
|
tempDao.deleteById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateResource(ResourceReq resourceReq) {
|
||||||
|
if (ObjectUtils.isEmpty(resourceReq.getResourceType())){
|
||||||
|
throw new ServiceException(GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR.getCode(),"资源类型不可为空");
|
||||||
|
}
|
||||||
|
|
||||||
|
PipResourceTemp temp = tempDao.selectById(resourceReq.getId());
|
||||||
|
temp.setResourceName(resourceReq.getResourceName());
|
||||||
|
|
||||||
|
//先删除旧的资源信息
|
||||||
|
if (temp.getResourceType().equals(ResourceTypeEnum.MACHINE.getCode())){
|
||||||
|
machineDao.deleteById(temp.getResourceId());
|
||||||
|
|
||||||
|
}else if (temp.getResourceType().equals(ResourceTypeEnum.K8S.getCode())) {
|
||||||
|
k8SDao.deleteById(temp.getResourceId());
|
||||||
|
if (!ObjectUtils.isEmpty(resourceReq.getPipResourceK8S())) {
|
||||||
|
PipResourceK8S pipResourceK8S = resourceReq.getPipResourceK8S();
|
||||||
|
k8SDao.updateById(pipResourceK8S);
|
||||||
|
}
|
||||||
|
|
||||||
|
}else if (temp.getResourceType().equals(ResourceTypeEnum.DOCKER.getCode())) {
|
||||||
|
dockerEndpointDao.deleteById(temp.getResourceId());
|
||||||
|
if (!ObjectUtils.isEmpty(resourceReq.getDockerEndpoint())) {
|
||||||
|
PipelineDockerEndpoint dockerEndpoint = resourceReq.getDockerEndpoint();
|
||||||
|
dockerEndpointDao.updateById(dockerEndpoint);
|
||||||
|
}
|
||||||
|
|
||||||
|
}else if (temp.getResourceType().equals(ResourceTypeEnum.CLOUD.getCode())){
|
||||||
|
cloudDao.deleteById(temp.getResourceId());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//根据新资源信息新增
|
||||||
|
if (resourceReq.getResourceType().equals(ResourceTypeEnum.MACHINE.getCode())){
|
||||||
|
|
||||||
|
//新增
|
||||||
|
if (!ObjectUtils.isEmpty(resourceReq.getResourceMachine())){
|
||||||
|
PipResourceMachine resourceMachine = resourceReq.getResourceMachine();
|
||||||
|
machineDao.insert(resourceMachine);
|
||||||
|
temp.setResourceId(resourceMachine.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
}else if (resourceReq.getResourceType().equals(ResourceTypeEnum.K8S.getCode())){
|
||||||
|
|
||||||
|
//新增
|
||||||
|
if (!ObjectUtils.isEmpty(resourceReq.getPipResourceK8S())){
|
||||||
|
PipResourceK8S resourceK8S = resourceReq.getPipResourceK8S();
|
||||||
|
k8SDao.insert(resourceK8S);
|
||||||
|
temp.setResourceId(resourceK8S.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
}else if (resourceReq.getResourceType().equals(ResourceTypeEnum.DOCKER.getCode())){
|
||||||
|
|
||||||
|
//新增
|
||||||
|
if (!ObjectUtils.isEmpty(resourceReq.getDockerEndpoint())){
|
||||||
|
PipelineDockerEndpoint dockerEndpoint = resourceReq.getDockerEndpoint();
|
||||||
|
dockerEndpointDao.insert(dockerEndpoint);
|
||||||
|
temp.setResourceId(dockerEndpoint.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
}else if (resourceReq.getResourceType().equals(ResourceTypeEnum.CLOUD.getCode())){
|
||||||
|
|
||||||
|
//新增
|
||||||
|
if (!ObjectUtils.isEmpty(resourceReq.getPipResourceCloud())){
|
||||||
|
PipResourceCloud resourceCloud = resourceReq.getPipResourceCloud();
|
||||||
|
cloudDao.insert(resourceCloud);
|
||||||
|
temp.setResourceId(resourceCloud.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
temp.setResourceType(resourceReq.getResourceType());
|
||||||
|
tempDao.updateById(temp);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResourceFindResp findResourceById(String id) {
|
||||||
|
ResourceFindResp resp = new ResourceFindResp();
|
||||||
|
|
||||||
|
PipResourceTemp pipResourceTemp = tempDao.selectById(id);
|
||||||
|
if (ObjectUtils.isEmpty(pipResourceTemp)){
|
||||||
|
throw new ServiceException(GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR.getCode(),"资源不存在");
|
||||||
|
}
|
||||||
|
resp.setId(pipResourceTemp.getId());
|
||||||
|
resp.setResourceType(pipResourceTemp.getResourceType());
|
||||||
|
resp.setResourceId(pipResourceTemp.getResourceId());
|
||||||
|
resp.setResourceName(pipResourceTemp.getResourceName());
|
||||||
|
|
||||||
|
setResource(resp);
|
||||||
|
setUserName(resp);
|
||||||
|
return resp;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<ResourceFindResp> findResourceList(ResourceQueryReq query) {
|
||||||
|
QueryWrapper<PipResourceTemp> 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.getResourceId())){
|
||||||
|
wrapper.eq("resource_id",query.getResourceId());
|
||||||
|
}
|
||||||
|
if (!ObjectUtils.isEmpty(query.getResourceType())){
|
||||||
|
wrapper.eq("resource_type",query.getResourceType());
|
||||||
|
}
|
||||||
|
if (!ObjectUtils.isEmpty(query.getCreator())){
|
||||||
|
wrapper.eq("creator",query.getCreator());
|
||||||
|
}
|
||||||
|
List<PipResourceTemp> pipResourceTempList = tempDao.selectList(wrapper);
|
||||||
|
|
||||||
|
if (ObjectUtils.isEmpty(pipResourceTempList)){
|
||||||
|
return new ArrayList<>(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<ResourceFindResp> respList = ResourceConverter.INSTANCE.toRespList(pipResourceTempList);
|
||||||
|
|
||||||
|
//对资源进行赋值
|
||||||
|
respList.forEach(this::setResource);
|
||||||
|
respList.forEach(this::setUserName);
|
||||||
|
|
||||||
|
return respList;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResult<ResourceFindResp> findResourcePage(ResourceQueryReq query) {
|
||||||
|
Page<ResourceFindResp> respPage = new Page<>();
|
||||||
|
|
||||||
|
QueryWrapper<PipResourceTemp> 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.getResourceId())){
|
||||||
|
wrapper.eq("resource_id",query.getResourceId());
|
||||||
|
}
|
||||||
|
if (!ObjectUtils.isEmpty(query.getResourceType())){
|
||||||
|
wrapper.eq("resource_type",query.getResourceType());
|
||||||
|
}
|
||||||
|
if (!ObjectUtils.isEmpty(query.getCreator())){
|
||||||
|
wrapper.eq("creator",query.getCreator());
|
||||||
|
}
|
||||||
|
Page<PipResourceTemp> pipResourceTempPage = tempDao.selectPage(new Page<>(query.getPageNo(), query.getPageSize()), wrapper);
|
||||||
|
|
||||||
|
if (ObjectUtils.isEmpty(pipResourceTempPage)){
|
||||||
|
return new PageResult<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
List<ResourceFindResp> 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<ResourceFindResp> pageResult = new PageResult<>(respList,pipResourceTempPage.getTotal());
|
||||||
|
return pageResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setResource(ResourceFindResp resourceFindResp) {
|
||||||
|
if (resourceFindResp.getResourceType().equals(ResourceTypeEnum.MACHINE.getCode())){
|
||||||
|
PipResourceMachine resourceMachine = machineDao.selectById(resourceFindResp.getResourceId());
|
||||||
|
resourceFindResp.setResourceMachine(resourceMachine);
|
||||||
|
}else if (resourceFindResp.getResourceType().equals(ResourceTypeEnum.K8S.getCode())) {
|
||||||
|
PipResourceK8S pipResourceK8S = k8SDao.selectById(resourceFindResp.getResourceId());
|
||||||
|
resourceFindResp.setPipResourceK8S(pipResourceK8S);
|
||||||
|
}else if (resourceFindResp.getResourceType().equals(ResourceTypeEnum.DOCKER.getCode())) {
|
||||||
|
PipelineDockerEndpoint dockerEndpoint = dockerEndpointDao.selectById(resourceFindResp.getResourceId());
|
||||||
|
resourceFindResp.setDockerEndpoint(dockerEndpoint);
|
||||||
|
}else if (resourceFindResp.getResourceType().equals(ResourceTypeEnum.CLOUD.getCode())) {
|
||||||
|
PipResourceCloud resourceCloud = cloudDao.selectById(resourceFindResp.getResourceId());
|
||||||
|
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());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,9 +3,12 @@ package cd.casic.server.controller;
|
|||||||
|
|
||||||
import cd.casic.ci.process.dal.req.resource.ResourceQueryReq;
|
import cd.casic.ci.process.dal.req.resource.ResourceQueryReq;
|
||||||
import cd.casic.ci.process.dal.req.resource.ResourceReq;
|
import cd.casic.ci.process.dal.req.resource.ResourceReq;
|
||||||
import cd.casic.ci.process.dal.resp.resource.ResourceResp;
|
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.ResourceService;
|
||||||
import cd.casic.framework.commons.pojo.CommonResult;
|
import cd.casic.framework.commons.pojo.CommonResult;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import cd.casic.framework.commons.pojo.PageResult;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
@ -13,7 +16,6 @@ import org.springframework.web.bind.annotation.RequestBody;
|
|||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -27,33 +29,32 @@ import java.util.List;
|
|||||||
@RequestMapping("/resource")
|
@RequestMapping("/resource")
|
||||||
public class ResourceController {
|
public class ResourceController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ResourceService resourceService;
|
||||||
|
|
||||||
@PostMapping(path="/createResource")
|
@PostMapping(path="/createResource")
|
||||||
public CommonResult<String> createResource(@RequestBody @NotNull @Valid ResourceReq resourceReq){
|
public CommonResult<String> createResource(@RequestBody @Valid ResourceReq resourceReq){
|
||||||
|
|
||||||
// String pipelineAuthHostId = envService.createEnv(env);
|
String resourceId = resourceService.createResource(resourceReq);
|
||||||
|
|
||||||
String resourceId = "1";
|
|
||||||
return CommonResult.success(resourceId);
|
return CommonResult.success(resourceId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@PostMapping(path="/deleteResource")
|
@PostMapping(path="/deleteResource")
|
||||||
public CommonResult<Void> deleteResource(@NotNull String resourceId){
|
public CommonResult<Void> deleteResource(@RequestBody @Valid BaseIdReq req){
|
||||||
|
|
||||||
// envService.deleteEnv(envId);
|
resourceService.deleteResource(req.getId());
|
||||||
|
|
||||||
return CommonResult.success();
|
return CommonResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping(path="/findResourceList")
|
@PostMapping(path="/findResourceList")
|
||||||
public CommonResult<List<ResourceResp>> findResourceList(@NotNull ResourceQueryReq query){
|
public CommonResult<List<ResourceFindResp>> findResourceList(@RequestBody @Valid ResourceQueryReq req){
|
||||||
|
|
||||||
// List<Env> envList = envService.findEnvList(envQuery);
|
List<ResourceFindResp> ResourceFindRespList = resourceService.findResourceList(req);
|
||||||
List<ResourceResp> resourceRespList = new ArrayList<>(0);
|
|
||||||
ResourceResp resourceResp = new ResourceResp();
|
|
||||||
resourceRespList.add(resourceResp);
|
|
||||||
|
|
||||||
return CommonResult.success(resourceRespList);
|
return CommonResult.success(ResourceFindRespList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -61,23 +62,26 @@ public class ResourceController {
|
|||||||
@PostMapping(path="/updateResource")
|
@PostMapping(path="/updateResource")
|
||||||
public CommonResult<Void> updateResource(@RequestBody @NotNull @Valid ResourceReq resourceReq){
|
public CommonResult<Void> updateResource(@RequestBody @NotNull @Valid ResourceReq resourceReq){
|
||||||
|
|
||||||
// this.envService.updateEnv(env);
|
resourceService.updateResource(resourceReq);
|
||||||
|
|
||||||
return CommonResult.success();
|
return CommonResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@PostMapping(path="/findResourcePage")
|
@PostMapping(path="/findResourcePage")
|
||||||
public CommonResult<Page<ResourceResp>> findResourcePage(@RequestBody @NotNull @Valid ResourceQueryReq query){
|
public CommonResult<PageResult<ResourceFindResp>> findResourcePage(@RequestBody @NotNull @Valid ResourceQueryReq req){
|
||||||
|
|
||||||
// Pagination<Env> envPage = envService.findEnvPage(envQuery);
|
PageResult<ResourceFindResp> respPage = resourceService.findResourcePage(req);
|
||||||
Page<ResourceResp> respPage = new Page<>();
|
|
||||||
List<ResourceResp> resourceRespList = new ArrayList<>(0);
|
|
||||||
ResourceResp resourceResp = new ResourceResp();
|
|
||||||
resourceResp.setId("1");
|
|
||||||
resourceRespList.add(resourceResp);
|
|
||||||
respPage.setRecords(resourceRespList);
|
|
||||||
return CommonResult.success(respPage);
|
return CommonResult.success(respPage);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping(path="/findResourceById")
|
||||||
|
public CommonResult<ResourceFindResp> findResourceById(@RequestBody @Valid BaseIdReq req){
|
||||||
|
|
||||||
|
ResourceFindResp resp = resourceService.findResourceById(req.getId());
|
||||||
|
|
||||||
|
return CommonResult.success(resp);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user