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