水木接口添加
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.ShuiMuUpdateWFuzzJsonReq;
|
||||
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.ShuiMuTestProblemResp;
|
||||
import cd.casic.ci.process.process.service.shuimu.ShuiMuService;
|
||||
@ -69,4 +70,8 @@ public class ShuiMuController {
|
||||
public CommonResult<List<ShuiMuTestProblemResp>> problemsOfTest(@RequestBody ShuiMuTestProblemReq 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 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.enums.ContextStateEnum;
|
||||
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.runContext.BaseRunContext;
|
||||
import cd.casic.ci.process.engine.runContext.PipelineRunContext;
|
||||
@ -46,11 +47,11 @@ public class DefaultRunContextManager implements RunContextManager {
|
||||
@Resource
|
||||
private LoggerManager loggerManager;
|
||||
@Resource
|
||||
private PipTaskDao taskDao;
|
||||
@Resource
|
||||
private PipPipelineHisInstanceDao hisInstanceDao;
|
||||
@Resource
|
||||
private PipelineService pipelineService;
|
||||
@Resource
|
||||
private PostHandlerManager postHandlerManager;
|
||||
|
||||
@Override
|
||||
public Boolean stopPipeline(String pipelineId) {
|
||||
@ -194,6 +195,8 @@ public class DefaultRunContextManager implements RunContextManager {
|
||||
pipPipelineHisInstance.setTargetVersionName("");
|
||||
pipPipelineHisInstance.setTargetVersionId(pipeline.getTargetVersionId());
|
||||
hisInstanceDao.insert(pipPipelineHisInstance);
|
||||
// 执行后置处理逻辑
|
||||
postHandlerManager.executePostHandler(pipPipelineHisInstance);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
package cd.casic.ci.process.engine.worker.afl;
|
||||
|
||||
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.resp.resource.ResourceFindResp;
|
||||
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.target.TargetVersion;
|
||||
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 jakarta.annotation.Resource;
|
||||
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 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;
|
||||
putGlobalVariable(context, EXECUTABLE_NAME_KEY,imageName);
|
||||
// 代码编译目录
|
||||
String workDir = (String)getGlobalVariable(context,AFL_DOCKER_WORK_DIR_KEY);
|
||||
// 入参目录
|
||||
@ -102,20 +107,33 @@ public class AFLWorker extends DockerWorker {
|
||||
toBadEnding();
|
||||
}
|
||||
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(".");
|
||||
if (dotIndex!=-1) {
|
||||
return "cd "+fileName.substring(0, dotIndex)+"\n";
|
||||
}
|
||||
return "";
|
||||
}
|
||||
public Long getRunningTime(Double runningTimeHours){
|
||||
private Long getRunningTime(Double runningTimeHours){
|
||||
if (runningTimeHours!=null && runningTimeHours >0) {
|
||||
return (long)(runningTimeHours*60*60*1000);
|
||||
}
|
||||
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.enums.ContextStateEnum;
|
||||
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.runContext.BaseRunContext;
|
||||
|
||||
@ -50,7 +51,8 @@ public abstract class BaseWorker implements Runnable{
|
||||
protected LoggerManager loggerManager;
|
||||
@Resource
|
||||
protected ResourceManagerService resourceManagerService;
|
||||
|
||||
@Resource
|
||||
protected PostHandlerManager postHandlerManager;
|
||||
|
||||
@Override
|
||||
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.ShuiMuTestProblemReq;
|
||||
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.ShuiMuProjectResourceResp;
|
||||
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.*;
|
||||
import cd.casic.framework.commons.pojo.CommonResult;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
||||
@ -38,4 +35,7 @@ public interface ShuiMuService {
|
||||
ShuiMuProjectResourceResp getProjectResource(String projectId);
|
||||
|
||||
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.http.*;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.LinkedMultiValueMap;
|
||||
import org.springframework.util.MultiValueMap;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
@ -296,6 +297,28 @@ public class ShuiMuServiceImpl implements ShuiMuService {
|
||||
String data = jsonObject.getString("data");
|
||||
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(){
|
||||
HttpHeaders httpHeaders = new HttpHeaders();
|
||||
|
Loading…
x
Reference in New Issue
Block a user