水木接口添加
This commit is contained in:
parent
19e4bd819a
commit
5949b36c75
@ -5,6 +5,7 @@ import cd.casic.ci.process.dto.req.shuimu.ShuiMuProjectCreateReq;
|
|||||||
import cd.casic.ci.process.dto.req.shuimu.ShuiMuTestProblemReq;
|
import cd.casic.ci.process.dto.req.shuimu.ShuiMuTestProblemReq;
|
||||||
import cd.casic.ci.process.dto.req.shuimu.ShuiMuUpdateWFuzzJsonReq;
|
import cd.casic.ci.process.dto.req.shuimu.ShuiMuUpdateWFuzzJsonReq;
|
||||||
import cd.casic.ci.process.dto.resp.shuimu.ShuiMuProjectInfoResp;
|
import cd.casic.ci.process.dto.resp.shuimu.ShuiMuProjectInfoResp;
|
||||||
|
import cd.casic.ci.process.dto.resp.shuimu.ShuiMuProjectReportResp;
|
||||||
import cd.casic.ci.process.dto.resp.shuimu.ShuiMuProjectVersionResp;
|
import cd.casic.ci.process.dto.resp.shuimu.ShuiMuProjectVersionResp;
|
||||||
import cd.casic.ci.process.dto.resp.shuimu.ShuiMuTestProblemResp;
|
import cd.casic.ci.process.dto.resp.shuimu.ShuiMuTestProblemResp;
|
||||||
import cd.casic.ci.process.process.service.shuimu.ShuiMuService;
|
import cd.casic.ci.process.process.service.shuimu.ShuiMuService;
|
||||||
@ -69,4 +70,8 @@ public class ShuiMuController {
|
|||||||
public CommonResult<List<ShuiMuTestProblemResp>> problemsOfTest(@RequestBody ShuiMuTestProblemReq req){
|
public CommonResult<List<ShuiMuTestProblemResp>> problemsOfTest(@RequestBody ShuiMuTestProblemReq req){
|
||||||
return CommonResult.success(shuiMuService.problemsOfTest(req));
|
return CommonResult.success(shuiMuService.problemsOfTest(req));
|
||||||
}
|
}
|
||||||
|
@GetMapping("/getProjectReport")
|
||||||
|
public CommonResult<ShuiMuProjectReportResp> getProjectReport(@RequestParam String projectId){
|
||||||
|
return CommonResult.success(shuiMuService.getProjectReport(projectId));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,4 +18,5 @@ public class ShuiMuUrlConstant {
|
|||||||
public static final String executeAllEntrypointsTest ="/api/driverGeneration/executeAllEntrypointsTest";
|
public static final String executeAllEntrypointsTest ="/api/driverGeneration/executeAllEntrypointsTest";
|
||||||
|
|
||||||
public static final String problemsOfTest = "/api/test/problemsOfTest";
|
public static final String problemsOfTest = "/api/test/problemsOfTest";
|
||||||
|
public static final String getProjectReport = "/api/project";
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,22 @@
|
|||||||
|
package cd.casic.ci.process.dto.resp.shuimu;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class ShuiMuProjectReportResp {
|
||||||
|
private String id;
|
||||||
|
private String name;
|
||||||
|
private String language;
|
||||||
|
private String description;
|
||||||
|
private String product;
|
||||||
|
private String ownerId;
|
||||||
|
private String createBy;
|
||||||
|
private String createAt;
|
||||||
|
private String updateAt;
|
||||||
|
private String deleteAt;
|
||||||
|
private String projectRunning;
|
||||||
|
private String problemsCount;
|
||||||
|
private String fixedProblemsCount;
|
||||||
|
private String noFixedProblemsCount;
|
||||||
|
private String projectFlag;
|
||||||
|
}
|
@ -5,6 +5,7 @@ import cd.casic.ci.process.dto.resp.context.TreeRunContextResp;
|
|||||||
import cd.casic.ci.process.engine.constant.EngineRuntimeConstant;
|
import cd.casic.ci.process.engine.constant.EngineRuntimeConstant;
|
||||||
import cd.casic.ci.process.engine.enums.ContextStateEnum;
|
import cd.casic.ci.process.engine.enums.ContextStateEnum;
|
||||||
import cd.casic.ci.process.engine.manager.LoggerManager;
|
import cd.casic.ci.process.engine.manager.LoggerManager;
|
||||||
|
import cd.casic.ci.process.engine.manager.PostHandlerManager;
|
||||||
import cd.casic.ci.process.engine.manager.RunContextManager;
|
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;
|
||||||
@ -46,11 +47,11 @@ public class DefaultRunContextManager implements RunContextManager {
|
|||||||
@Resource
|
@Resource
|
||||||
private LoggerManager loggerManager;
|
private LoggerManager loggerManager;
|
||||||
@Resource
|
@Resource
|
||||||
private PipTaskDao taskDao;
|
|
||||||
@Resource
|
|
||||||
private PipPipelineHisInstanceDao hisInstanceDao;
|
private PipPipelineHisInstanceDao hisInstanceDao;
|
||||||
@Resource
|
@Resource
|
||||||
private PipelineService pipelineService;
|
private PipelineService pipelineService;
|
||||||
|
@Resource
|
||||||
|
private PostHandlerManager postHandlerManager;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Boolean stopPipeline(String pipelineId) {
|
public Boolean stopPipeline(String pipelineId) {
|
||||||
@ -194,6 +195,8 @@ public class DefaultRunContextManager implements RunContextManager {
|
|||||||
pipPipelineHisInstance.setTargetVersionName("");
|
pipPipelineHisInstance.setTargetVersionName("");
|
||||||
pipPipelineHisInstance.setTargetVersionId(pipeline.getTargetVersionId());
|
pipPipelineHisInstance.setTargetVersionId(pipeline.getTargetVersionId());
|
||||||
hisInstanceDao.insert(pipPipelineHisInstance);
|
hisInstanceDao.insert(pipPipelineHisInstance);
|
||||||
|
// 执行后置处理逻辑
|
||||||
|
postHandlerManager.executePostHandler(pipPipelineHisInstance);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package cd.casic.ci.process.engine.worker.afl;
|
package cd.casic.ci.process.engine.worker.afl;
|
||||||
|
|
||||||
import cd.casic.ci.process.common.WorkAtom;
|
import cd.casic.ci.process.common.WorkAtom;
|
||||||
|
import cd.casic.ci.process.dto.req.aflManager.AflManagerReq;
|
||||||
import cd.casic.ci.process.dto.req.resource.ResourceQueryReq;
|
import cd.casic.ci.process.dto.req.resource.ResourceQueryReq;
|
||||||
import cd.casic.ci.process.dto.resp.resource.ResourceFindResp;
|
import cd.casic.ci.process.dto.resp.resource.ResourceFindResp;
|
||||||
import cd.casic.ci.process.dto.resp.taskResource.TaskResourceFindResp;
|
import cd.casic.ci.process.dto.resp.taskResource.TaskResourceFindResp;
|
||||||
@ -13,6 +14,9 @@ import cd.casic.ci.process.engine.worker.base.DockerWorker;
|
|||||||
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.target.TargetVersion;
|
import cd.casic.ci.process.process.dataObject.target.TargetVersion;
|
||||||
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.aflManager.AflInfoService;
|
||||||
|
import cd.casic.ci.process.process.service.aflManager.AflPlotInfoService;
|
||||||
|
import cd.casic.ci.process.process.service.aflManager.AflSeedInfoService;
|
||||||
import cd.casic.ci.process.process.service.target.TargetVersionService;
|
import cd.casic.ci.process.process.service.target.TargetVersionService;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@ -49,6 +53,7 @@ public class AFLWorker extends DockerWorker {
|
|||||||
String commandEnd = taskProperties.get(COMMAND_END) instanceof String ? ((String) taskProperties.get(COMMAND_END)) : null;
|
String commandEnd = taskProperties.get(COMMAND_END) instanceof String ? ((String) taskProperties.get(COMMAND_END)) : null;
|
||||||
String imageName = getVariableNearby(context,IMAGE_NAME) instanceof String ? ((String) getVariableNearby(context,IMAGE_NAME)) : null;
|
String imageName = getVariableNearby(context,IMAGE_NAME) instanceof String ? ((String) getVariableNearby(context,IMAGE_NAME)) : null;
|
||||||
String executableName = taskProperties.get(EXECUTABLE_NAME) instanceof String ? ((String) taskProperties.get(EXECUTABLE_NAME)) : null;
|
String executableName = taskProperties.get(EXECUTABLE_NAME) instanceof String ? ((String) taskProperties.get(EXECUTABLE_NAME)) : null;
|
||||||
|
putGlobalVariable(context, EXECUTABLE_NAME_KEY,imageName);
|
||||||
// 代码编译目录
|
// 代码编译目录
|
||||||
String workDir = (String)getGlobalVariable(context,AFL_DOCKER_WORK_DIR_KEY);
|
String workDir = (String)getGlobalVariable(context,AFL_DOCKER_WORK_DIR_KEY);
|
||||||
// 入参目录
|
// 入参目录
|
||||||
@ -102,20 +107,33 @@ public class AFLWorker extends DockerWorker {
|
|||||||
toBadEnding();
|
toBadEnding();
|
||||||
}
|
}
|
||||||
localVariables.put(DIYImageExecuteCommandConstant.STATUS_CODE, statusCode);
|
localVariables.put(DIYImageExecuteCommandConstant.STATUS_CODE, statusCode);
|
||||||
putGlobalVariable(context, EXECUTABLE_NAME_KEY,imageName);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public String cdSourceName(String fileName){
|
private String cdSourceName(String fileName){
|
||||||
int dotIndex = fileName.lastIndexOf(".");
|
int dotIndex = fileName.lastIndexOf(".");
|
||||||
if (dotIndex!=-1) {
|
if (dotIndex!=-1) {
|
||||||
return "cd "+fileName.substring(0, dotIndex)+"\n";
|
return "cd "+fileName.substring(0, dotIndex)+"\n";
|
||||||
}
|
}
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
public Long getRunningTime(Double runningTimeHours){
|
private Long getRunningTime(Double runningTimeHours){
|
||||||
if (runningTimeHours!=null && runningTimeHours >0) {
|
if (runningTimeHours!=null && runningTimeHours >0) {
|
||||||
return (long)(runningTimeHours*60*60*1000);
|
return (long)(runningTimeHours*60*60*1000);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@Resource
|
||||||
|
private AflInfoService aflInfoService;
|
||||||
|
@Resource
|
||||||
|
private AflSeedInfoService aflSeedInfoService;
|
||||||
|
@Resource
|
||||||
|
private AflPlotInfoService aflPlotInfoService;
|
||||||
|
private void afterTaskExecute(){
|
||||||
|
AflManagerReq aflManagerReq = new AflManagerReq();
|
||||||
|
aflInfoService.saveAflInfo();
|
||||||
|
}
|
||||||
|
private void afterPipelineExecute(){
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,7 @@ import cd.casic.ci.process.engine.constant.PipelineBehaviorConstant;
|
|||||||
import cd.casic.ci.process.engine.context.ConstantContext;
|
import cd.casic.ci.process.engine.context.ConstantContext;
|
||||||
import cd.casic.ci.process.engine.enums.ContextStateEnum;
|
import cd.casic.ci.process.engine.enums.ContextStateEnum;
|
||||||
import cd.casic.ci.process.engine.manager.LoggerManager;
|
import cd.casic.ci.process.engine.manager.LoggerManager;
|
||||||
|
import cd.casic.ci.process.engine.manager.PostHandlerManager;
|
||||||
import cd.casic.ci.process.engine.manager.RunContextManager;
|
import cd.casic.ci.process.engine.manager.RunContextManager;
|
||||||
import cd.casic.ci.process.engine.runContext.BaseRunContext;
|
import cd.casic.ci.process.engine.runContext.BaseRunContext;
|
||||||
|
|
||||||
@ -50,7 +51,8 @@ public abstract class BaseWorker implements Runnable{
|
|||||||
protected LoggerManager loggerManager;
|
protected LoggerManager loggerManager;
|
||||||
@Resource
|
@Resource
|
||||||
protected ResourceManagerService resourceManagerService;
|
protected ResourceManagerService resourceManagerService;
|
||||||
|
@Resource
|
||||||
|
protected PostHandlerManager postHandlerManager;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
|
@ -4,10 +4,7 @@ import cd.casic.ci.process.dto.req.shuimu.ShuiMuBuildAndSaveReq;
|
|||||||
import cd.casic.ci.process.dto.req.shuimu.ShuiMuProjectCreateReq;
|
import cd.casic.ci.process.dto.req.shuimu.ShuiMuProjectCreateReq;
|
||||||
import cd.casic.ci.process.dto.req.shuimu.ShuiMuTestProblemReq;
|
import cd.casic.ci.process.dto.req.shuimu.ShuiMuTestProblemReq;
|
||||||
import cd.casic.ci.process.dto.req.shuimu.ShuiMuUpdateWFuzzJsonReq;
|
import cd.casic.ci.process.dto.req.shuimu.ShuiMuUpdateWFuzzJsonReq;
|
||||||
import cd.casic.ci.process.dto.resp.shuimu.ShuiMuProjectInfoResp;
|
import cd.casic.ci.process.dto.resp.shuimu.*;
|
||||||
import cd.casic.ci.process.dto.resp.shuimu.ShuiMuProjectResourceResp;
|
|
||||||
import cd.casic.ci.process.dto.resp.shuimu.ShuiMuProjectVersionResp;
|
|
||||||
import cd.casic.ci.process.dto.resp.shuimu.ShuiMuTestProblemResp;
|
|
||||||
import cd.casic.framework.commons.pojo.CommonResult;
|
import cd.casic.framework.commons.pojo.CommonResult;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
|
||||||
@ -38,4 +35,7 @@ public interface ShuiMuService {
|
|||||||
ShuiMuProjectResourceResp getProjectResource(String projectId);
|
ShuiMuProjectResourceResp getProjectResource(String projectId);
|
||||||
|
|
||||||
List<ShuiMuTestProblemResp> problemsOfTest(ShuiMuTestProblemReq req);
|
List<ShuiMuTestProblemResp> problemsOfTest(ShuiMuTestProblemReq req);
|
||||||
|
|
||||||
|
ShuiMuProjectReportResp getProjectReport(String projectId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -24,6 +24,7 @@ import org.apache.commons.lang3.StringUtils;
|
|||||||
import org.springframework.core.io.FileSystemResource;
|
import org.springframework.core.io.FileSystemResource;
|
||||||
import org.springframework.http.*;
|
import org.springframework.http.*;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
import org.springframework.util.LinkedMultiValueMap;
|
import org.springframework.util.LinkedMultiValueMap;
|
||||||
import org.springframework.util.MultiValueMap;
|
import org.springframework.util.MultiValueMap;
|
||||||
import org.springframework.web.client.RestTemplate;
|
import org.springframework.web.client.RestTemplate;
|
||||||
@ -296,6 +297,28 @@ public class ShuiMuServiceImpl implements ShuiMuService {
|
|||||||
String data = jsonObject.getString("data");
|
String data = jsonObject.getString("data");
|
||||||
return JSONArray.parseArray(data, ShuiMuTestProblemResp.class);
|
return JSONArray.parseArray(data, ShuiMuTestProblemResp.class);
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
public ShuiMuProjectReportResp getProjectReport(String projectId) {
|
||||||
|
HttpEntity<String> entity = new HttpEntity<>(null,getHeaders());
|
||||||
|
String uriString = UriComponentsBuilder.fromUriString(shuiMuProperties.getBaseUrl() + getProjectReport )
|
||||||
|
.queryParam("skip",0)
|
||||||
|
.queryParam("limit",1)
|
||||||
|
.queryParam("product","code")
|
||||||
|
.queryParam("projectId",projectId)
|
||||||
|
.queryParam("showMine",0)
|
||||||
|
.toUriString();
|
||||||
|
ResponseEntity<String> exchange = restTemplate.exchange(uriString, HttpMethod.GET, entity, String.class, new HashMap<>());
|
||||||
|
if (exchange.getStatusCode().isError()) {
|
||||||
|
throw new ServiceException(GlobalErrorCodeConstants.PIPELINE_ERROR.getCode(),"保存并且构建失败");
|
||||||
|
}
|
||||||
|
String data = JSON.parseObject(exchange.getBody()).getString("data");
|
||||||
|
|
||||||
|
List<ShuiMuProjectReportResp> list = JSON.parseArray(data, ShuiMuProjectReportResp.class);
|
||||||
|
if (CollectionUtils.isEmpty(list)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return list.get(0);
|
||||||
|
}
|
||||||
|
|
||||||
private HttpHeaders getHeaders(){
|
private HttpHeaders getHeaders(){
|
||||||
HttpHeaders httpHeaders = new HttpHeaders();
|
HttpHeaders httpHeaders = new HttpHeaders();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user