资源管理暂时对接完毕。
This commit is contained in:
parent
0c1627c841
commit
cb6cbb069f
@ -2,10 +2,18 @@ package cd.casic.ci.api;
|
||||
|
||||
|
||||
|
||||
import cd.casic.ci.process.dto.req.resource.ResourceCreateReq;
|
||||
import cd.casic.ci.process.dto.req.resource.ResourceListReq;
|
||||
import cd.casic.ci.process.dto.req.resource.ResourcePageReq;
|
||||
import cd.casic.ci.process.dto.req.resource.ResourceUpdateReq;
|
||||
import cd.casic.ci.process.dto.resp.resource.ResourceDetailResp;
|
||||
import cd.casic.ci.process.dto.resp.resource.ResourceListResp;
|
||||
import cd.casic.ci.process.process.service.resource.ResourceManagerService;
|
||||
import cd.casic.framework.commons.pojo.CommonResult;
|
||||
import cd.casic.framework.commons.pojo.PageResult;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -22,7 +30,31 @@ public class ResourceManagerController {
|
||||
|
||||
@Resource
|
||||
private ResourceManagerService resourceManagerService;
|
||||
|
||||
@PostMapping("/createResource")
|
||||
public CommonResult<String> createResource(@RequestBody ResourceCreateReq req){
|
||||
return CommonResult.success(resourceManagerService.createResource(req));
|
||||
}
|
||||
@PostMapping("/updateResource")
|
||||
public CommonResult<String> updateResource(@RequestBody ResourceUpdateReq req){
|
||||
return CommonResult.success(resourceManagerService.updateResource(req));
|
||||
}
|
||||
@GetMapping("/findResourceDetailById/{resourceId}")
|
||||
public CommonResult<ResourceDetailResp> findResourceDetailById(@PathVariable String resourceId){
|
||||
return CommonResult.success(resourceManagerService.findResourceDetailById(resourceId));
|
||||
}
|
||||
@PostMapping("/list")
|
||||
public CommonResult<List<ResourceListResp>> list(@RequestBody ResourceListReq req){
|
||||
return CommonResult.success(resourceManagerService.list(req));
|
||||
}
|
||||
@PostMapping("/page")
|
||||
public CommonResult<PageResult<ResourceListResp>> page(@RequestBody ResourcePageReq req){
|
||||
return CommonResult.success(resourceManagerService.page(req));
|
||||
}
|
||||
@DeleteMapping("/deleteResource/{resourceId}")
|
||||
public CommonResult<Void> deleteResource(@PathVariable String resourceId){
|
||||
resourceManagerService.deleteResource(resourceId);
|
||||
return CommonResult.success();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -1,6 +1,5 @@
|
||||
package cd.casic.ci.api;
|
||||
|
||||
import cd.casic.ci.process.util.CryptogramUtil;
|
||||
import cd.casic.ci.process.util.SftpUploadUtil;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
@ -0,0 +1,8 @@
|
||||
package cd.casic.ci.process.dto.req.resource;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class ResourceListReq {
|
||||
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
package cd.casic.ci.process.dto.req.resource;
|
||||
|
||||
import cd.casic.framework.commons.pojo.PageParam;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class ResourcePageReq extends PageParam {
|
||||
}
|
@ -22,4 +22,6 @@ public class ResourceUpdateReq {
|
||||
* docker连接端口(选填)
|
||||
* */
|
||||
private Integer dockerPort;
|
||||
|
||||
private String cloudId;
|
||||
}
|
||||
|
@ -0,0 +1,38 @@
|
||||
package cd.casic.ci.process.dto.resp.resource;
|
||||
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class ResourceListResp {
|
||||
/**
|
||||
* docker镜像服务器信息id
|
||||
*/
|
||||
private String dockerId;
|
||||
|
||||
/**
|
||||
* k8s服务器信息id
|
||||
*/
|
||||
private String k8sId;
|
||||
|
||||
/**
|
||||
* 机器服务器信息id
|
||||
*/
|
||||
private Long machineId;
|
||||
|
||||
/**
|
||||
* 弹性云服务器信息id
|
||||
*/
|
||||
private String cloudId;
|
||||
|
||||
/**
|
||||
* 资源名称
|
||||
*/
|
||||
private String resourceName;
|
||||
/**
|
||||
* 资源类型ResourceConstant.RES_TYPE_*
|
||||
* */
|
||||
private String resourceType;
|
||||
|
||||
private String id;
|
||||
}
|
@ -1,6 +1,9 @@
|
||||
package cd.casic.ci.process.process.converter;
|
||||
|
||||
import cd.casic.ci.process.dto.req.resource.ResourceCreateReq;
|
||||
import cd.casic.ci.process.dto.req.resource.ResourceUpdateReq;
|
||||
import cd.casic.ci.process.dto.resp.resource.ResourceDetailResp;
|
||||
import cd.casic.ci.process.dto.resp.resource.ResourceListResp;
|
||||
import cd.casic.ci.process.process.dataObject.resource.PipResourceManager;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
@ -18,4 +21,7 @@ import java.util.List;
|
||||
public interface ResourceConverter {
|
||||
ResourceConverter INSTANCE = Mappers.getMapper(ResourceConverter.class);
|
||||
ResourceDetailResp converter(PipResourceManager manager);
|
||||
PipResourceManager converter(ResourceUpdateReq req);
|
||||
PipResourceManager converter(ResourceCreateReq req);
|
||||
List<ResourceListResp> converter(List<PipResourceManager> manager);
|
||||
}
|
||||
|
@ -41,4 +41,6 @@ public class PipResourceManager extends PipBaseElement {
|
||||
* 资源类型ResourceConstant.RES_TYPE_*
|
||||
* */
|
||||
private String resourceType;
|
||||
|
||||
private String state;
|
||||
}
|
||||
|
@ -1,12 +1,17 @@
|
||||
package cd.casic.ci.process.process.service.resource;
|
||||
|
||||
import cd.casic.ci.process.dto.req.resource.ResourceCreateReq;
|
||||
import cd.casic.ci.process.dto.req.resource.ResourceListReq;
|
||||
import cd.casic.ci.process.dto.req.resource.ResourcePageReq;
|
||||
import cd.casic.ci.process.dto.req.resource.ResourceUpdateReq;
|
||||
import cd.casic.ci.process.dto.resp.resource.ResourceDetailResp;
|
||||
import cd.casic.ci.process.dto.resp.resource.ResourceListResp;
|
||||
import cd.casic.ci.process.process.dataObject.resource.PipResourceManager;
|
||||
import cd.casic.framework.commons.pojo.PageResult;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
@ -20,8 +25,11 @@ public interface ResourceManagerService extends IService<PipResourceManager> {
|
||||
/**
|
||||
* 创建||申请 资源
|
||||
* */
|
||||
void createResource(ResourceCreateReq req);
|
||||
void updateResource(ResourceUpdateReq req);
|
||||
String createResource(ResourceCreateReq req);
|
||||
String updateResource(ResourceUpdateReq req);
|
||||
ResourceDetailResp findResourceDetailById(String resourceId);
|
||||
void deleteResource(String resourceId);
|
||||
PageResult<ResourceListResp> page(ResourcePageReq req);
|
||||
|
||||
List<ResourceListResp> list(ResourceListReq req);
|
||||
}
|
||||
|
@ -2,24 +2,32 @@ package cd.casic.ci.process.process.service.resource.impl;
|
||||
|
||||
import cd.casic.ci.process.constant.ResourceConstant;
|
||||
import cd.casic.ci.process.dto.req.resource.ResourceCreateReq;
|
||||
import cd.casic.ci.process.dto.req.resource.ResourceListReq;
|
||||
import cd.casic.ci.process.dto.req.resource.ResourcePageReq;
|
||||
import cd.casic.ci.process.dto.req.resource.ResourceUpdateReq;
|
||||
import cd.casic.ci.process.dto.resp.resource.ResourceDetailResp;
|
||||
import cd.casic.ci.process.dto.resp.resource.ResourceListResp;
|
||||
import cd.casic.ci.process.process.converter.ResourceConverter;
|
||||
import cd.casic.ci.process.process.dao.pipeline.PipResourceManagerDao;
|
||||
import cd.casic.ci.process.process.dataObject.resource.PipResourceManager;
|
||||
import cd.casic.ci.process.process.service.resource.ResourceManagerService;
|
||||
import cd.casic.framework.commons.pojo.PageResult;
|
||||
import cd.casic.module.execute.docker.dao.DockerEndpointDao;
|
||||
import cd.casic.module.execute.docker.dataobject.dto.DockerEndpointDo;
|
||||
import cd.casic.module.execute.docker.dataobject.model.DockerEndpoint;
|
||||
import cd.casic.module.machine.dal.dataobject.MachineInfoDO;
|
||||
import cd.casic.module.machine.service.MachineInfoService;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
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.apache.cxf.resource.ResourceManager;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
@ -42,7 +50,7 @@ public class ResourceManagerServiceImpl extends ServiceImpl<PipResourceManagerDa
|
||||
private ResourceConverter converter;
|
||||
|
||||
@Override
|
||||
public void createResource(ResourceCreateReq req) {
|
||||
public String createResource(ResourceCreateReq req) {
|
||||
String resourceType = req.getResourceType();
|
||||
PipResourceManager manager = new PipResourceManager();
|
||||
manager.setResourceName(req.getResourceName());
|
||||
@ -61,16 +69,20 @@ public class ResourceManagerServiceImpl extends ServiceImpl<PipResourceManagerDa
|
||||
dockerEndpointDao.insert(dockerEndpoint);
|
||||
manager.setDockerId(dockerEndpoint.getId());
|
||||
}
|
||||
pipResourceManagerDao.insert(manager);
|
||||
} else if(ResourceConstant.RES_TYPE_CLOUD.equals(resourceType)){
|
||||
// 入库。申请资源等操作
|
||||
}
|
||||
return manager.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateResource(ResourceUpdateReq req) {
|
||||
public String updateResource(ResourceUpdateReq req) {
|
||||
String resourceType = req.getResourceType();
|
||||
String id = req.getId();
|
||||
PipResourceManager manager = pipResourceManagerDao.selectById(id);
|
||||
manager.setResourceName(req.getResourceName());
|
||||
manager.setResourceType(req.getResourceType());
|
||||
// 同类型资源修改
|
||||
if (manager.getResourceType().equals(resourceType)) {
|
||||
if (ResourceConstant.RES_TYPE_CUSTOM.equals(resourceType)) {
|
||||
@ -83,18 +95,23 @@ public class ResourceManagerServiceImpl extends ServiceImpl<PipResourceManagerDa
|
||||
// 2.维护docker信息,之后需要修改
|
||||
// 3.之前维护了docker信息,之后不想维护了
|
||||
DockerEndpointDo dockerEndpoint = new DockerEndpointDo();
|
||||
dockerEndpoint.setName(machineInfoDO.getName());
|
||||
dockerEndpoint.setPort(req.getDockerPort());
|
||||
dockerEndpoint.setHost(machineInfoDO.getHostIp());
|
||||
dockerEndpoint.setType(DockerEndpoint.DockerEndpointTypeEnum.REMOTE);
|
||||
if (StringUtils.isEmpty(manager.getDockerId()) &&Objects.nonNull(req.getDockerPort())) {
|
||||
String dockerId = manager.getDockerId();
|
||||
if (StringUtils.isNotEmpty(dockerId)) {
|
||||
dockerEndpoint = dockerEndpointDao.selectById(dockerId);
|
||||
}
|
||||
if (dockerEndpoint!=null) {
|
||||
dockerEndpoint.setName(machineInfoDO.getName());
|
||||
dockerEndpoint.setPort(req.getDockerPort());
|
||||
dockerEndpoint.setHost(machineInfoDO.getHostIp());
|
||||
dockerEndpoint.setType(DockerEndpoint.DockerEndpointTypeEnum.REMOTE);
|
||||
}
|
||||
if (StringUtils.isEmpty(dockerId) &&Objects.nonNull(req.getDockerPort())) {
|
||||
dockerEndpointDao.insert(dockerEndpoint);
|
||||
manager.setDockerId(dockerEndpoint.getId());
|
||||
} else if (!StringUtils.isEmpty(manager.getDockerId()) &&Objects.nonNull(req.getDockerPort())) {
|
||||
} else if (!StringUtils.isEmpty(dockerId) &&Objects.nonNull(req.getDockerPort())) {
|
||||
dockerEndpointDao.updateById(dockerEndpoint);
|
||||
manager.setDockerId(dockerEndpoint.getId());
|
||||
} else if (!StringUtils.isEmpty(manager.getDockerId()) &&!Objects.nonNull(req.getDockerPort())) {
|
||||
String dockerId = manager.getDockerId();
|
||||
} else if (!StringUtils.isEmpty(dockerId) &&!Objects.nonNull(req.getDockerPort())) {
|
||||
dockerEndpointDao.deleteById(dockerId);
|
||||
manager.setDockerId(null);
|
||||
}
|
||||
@ -105,6 +122,7 @@ public class ResourceManagerServiceImpl extends ServiceImpl<PipResourceManagerDa
|
||||
//天河国云资源转机器资源是否需要销毁原本资源?还是说可以自由切换预留入口
|
||||
}
|
||||
pipResourceManagerDao.updateById(manager);
|
||||
return req.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -127,4 +145,20 @@ public class ResourceManagerServiceImpl extends ServiceImpl<PipResourceManagerDa
|
||||
}
|
||||
pipResourceManagerDao.deleteById(resourceId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<ResourceListResp> page(ResourcePageReq req) {
|
||||
LambdaQueryWrapper<PipResourceManager> wrapper = new LambdaQueryWrapper<>();
|
||||
Page<PipResourceManager> page = pipResourceManagerDao.selectPage(new Page<>(req.getPageNo(), req.getPageSize()), wrapper);
|
||||
List<ResourceListResp> list = converter.converter(page.getRecords());
|
||||
return new PageResult<>(list, page.getTotal(), page.getCurrent(), page.getSize());
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ResourceListResp> list(ResourceListReq req) {
|
||||
LambdaQueryWrapper<PipResourceManager> wrapper = new LambdaQueryWrapper<>();
|
||||
List<PipResourceManager> list = pipResourceManagerDao.selectList(wrapper);
|
||||
return converter.converter(list);
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,4 @@
|
||||
package cd.casic.server;
|
||||
import cd.casic.ci.process.util.CryptogramUtil;
|
||||
import com.github.dockerjava.api.DockerClient;
|
||||
import com.github.dockerjava.api.command.CreateContainerResponse;
|
||||
import com.github.dockerjava.api.command.ExecCreateCmdResponse;
|
||||
|
@ -1,7 +1,6 @@
|
||||
package cd.casic.server;
|
||||
|
||||
import cd.casic.ci.process.properties.TargetFileUploadProperties;
|
||||
import cd.casic.ci.process.util.CryptogramUtil;
|
||||
import cd.casic.ci.process.util.SftpUploadUtil;
|
||||
import com.jcraft.jsch.*;
|
||||
import jakarta.annotation.Resource;
|
||||
|
Loading…
x
Reference in New Issue
Block a user