From 760607fe26270f85f979fd39d969c472bc38f809 Mon Sep 17 00:00:00 2001 From: even <827656971@qq.com> Date: Thu, 5 Jun 2025 16:40:46 +0800 Subject: [PATCH 1/2] =?UTF-8?q?1.=E8=BF=90=E8=A1=8C=E5=8E=86=E5=8F=B2?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E4=BF=AE=E6=94=B9=E3=80=82=202.AFLworker?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cd/casic/ci/api/PipHistoryController.java | 13 ++++++------- .../main/java/cd/casic/ci/api/TestController.java | 10 +++++----- .../dal/req/history/PipelineHistoryQueryReq.java | 10 ++++++++++ .../manager/impl/DefaultRunContextManager.java | 7 ++++--- .../process/engine/runContext/BaseRunContext.java | 4 ---- .../casic/ci/process/engine/worker/AFLWorker.java | 2 +- .../ci/process/engine/worker/base/BaseWorker.java | 2 +- .../service/history/PipelineHistoryService.java | 4 +++- .../history/impl/PipelineHistoryServiceImpl.java | 12 ++++++++---- .../src/test/java/cd/casic/server/SftpTest.java | 2 +- 10 files changed, 39 insertions(+), 27 deletions(-) create mode 100644 modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dal/req/history/PipelineHistoryQueryReq.java diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/api/PipHistoryController.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/api/PipHistoryController.java index 0fc1cf9f..4048ccf0 100644 --- a/modules/module-ci-process-api/src/main/java/cd/casic/ci/api/PipHistoryController.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/api/PipHistoryController.java @@ -1,14 +1,14 @@ package cd.casic.ci.api; +import cd.casic.ci.process.dal.req.history.PipelineHistoryQueryReq; import cd.casic.ci.process.process.dataObject.history.PipPipelineHisInstance; import cd.casic.ci.process.process.dataObject.log.PipTaskLog; import cd.casic.ci.process.process.service.history.PipelineHistoryService; import cd.casic.ci.process.process.service.taskLog.TaskLogService; import cd.casic.framework.commons.pojo.CommonResult; +import cd.casic.framework.commons.pojo.PageResult; import jakarta.annotation.Resource; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.List; @@ -24,9 +24,8 @@ public class PipHistoryController { PipTaskLog byId = taskLogService.getById(id); return CommonResult.success(byId); } - @GetMapping("/list") - public CommonResult> list(String pipelineId){ - List list = pipelineHistoryService.list(); - return CommonResult.success(list); + @PostMapping("/list") + public CommonResult> list(@RequestBody PipelineHistoryQueryReq req){ + return CommonResult.success(pipelineHistoryService.getPageByPipelineId(req)); } } diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/api/TestController.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/api/TestController.java index f4f35055..c9602ec9 100644 --- a/modules/module-ci-process-api/src/main/java/cd/casic/ci/api/TestController.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/api/TestController.java @@ -10,10 +10,10 @@ public class TestController { @PostMapping("/upload") public void uploadTest(){ - try { - SftpUploadUtil.uploadFileViaSftp("175.6.27.228",22,"hnidc", CryptogramUtil.doDecrypt("cb2ee50ff663312808773f1698b801d2f9d6073f9684473e090767edbc2dba93"),null,"/ops/ops-pro/ops-server.jar","/home/casic/706/ai_test_527","ops-server.jar"); - } catch (SftpUploadUtil.SftpUploadException e) { - throw new RuntimeException(e); - } +// try { +//// SftpUploadUtil.uploadFileViaSftp("175.6.27.228",22,"hnidc", CryptogramUtil.doDecrypt("cb2ee50ff663312808773f1698b801d2f9d6073f9684473e090767edbc2dba93"),null,"/ops/ops-pro/ops-server.jar","/home/casic/706/ai_test_527","ops-server.jar"); +// } catch (SftpUploadUtil.SftpUploadException e) { +// throw new RuntimeException(e); +// } } } diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dal/req/history/PipelineHistoryQueryReq.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dal/req/history/PipelineHistoryQueryReq.java new file mode 100644 index 00000000..c51ad5e1 --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dal/req/history/PipelineHistoryQueryReq.java @@ -0,0 +1,10 @@ +package cd.casic.ci.process.dal.req.history; + +import cd.casic.framework.commons.pojo.PageParam; +import lombok.Data; + +@Data +public class PipelineHistoryQueryReq { + private String pipelineId; + private PageParam pageParam; +} diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/manager/impl/DefaultRunContextManager.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/manager/impl/DefaultRunContextManager.java index 39b9362b..3e36e177 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/manager/impl/DefaultRunContextManager.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/manager/impl/DefaultRunContextManager.java @@ -21,6 +21,7 @@ import cd.casic.framework.commons.exception.enums.GlobalErrorCodeConstants; import cd.casic.framework.commons.util.util.WebFrameworkUtils; import cd.casic.framework.security.core.LoginUser; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.serializer.SerializerFeature; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; @@ -173,11 +174,11 @@ public class DefaultRunContextManager implements RunContextManager { pipPipelineHisInstance.setEndTime(pipelineRunContext.getEndTime()); PiplineTriggerModeEnum triggerMode = pipelineRunContext.getTriggerMode(); pipPipelineHisInstance.setTriggerMode(triggerMode.getCode()); - pipPipelineHisInstance.setContextTree(JSON.toJSONString(pipelineRunContext)); + pipPipelineHisInstance.setContextTree(JSON.toJSONString(pipelineRunContext,SerializerFeature.DisableCircularReferenceDetect)); PipelineQueryReq pipelineQueryReq = new PipelineQueryReq(); pipelineQueryReq.setId(pipelineId); - pipPipelineHisInstance.setDefTree(JSON.toJSONString(pipelineService.findPipelineById(pipelineQueryReq))); - pipPipelineHisInstance.setStateTree(JSON.toJSONString(pipelineService.getPipelineRunState(pipelineId))); + pipPipelineHisInstance.setDefTree(JSON.toJSONString(pipelineService.findPipelineById(pipelineQueryReq), SerializerFeature.DisableCircularReferenceDetect)); + pipPipelineHisInstance.setStateTree(JSON.toJSONString(pipelineService.getPipelineRunState(pipelineId),SerializerFeature.DisableCircularReferenceDetect)); pipPipelineHisInstance.setTargetVersionName(""); pipPipelineHisInstance.setTargetVersionId(pipeline.getTargetVersionId()); hisInstanceDao.insert(pipPipelineHisInstance); diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/runContext/BaseRunContext.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/runContext/BaseRunContext.java index d8633ebf..50bba3b8 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/runContext/BaseRunContext.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/runContext/BaseRunContext.java @@ -80,10 +80,6 @@ public abstract class BaseRunContext { ||ContextStateEnum.BAD_ENDING.equals(stateEnum) ||ContextStateEnum.SKIP_TO.equals(stateEnum)) { this.endTime=LocalDateTime.now(); - if(this instanceof PipelineRunContext pipelineRunContext){ - // 流水线执行结束 进行入库 - - } } callParentChange(stateEnum); } else { diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/AFLWorker.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/AFLWorker.java index 63ee3486..7c2bf23f 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/AFLWorker.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/AFLWorker.java @@ -47,7 +47,7 @@ public class AFLWorker extends DockerWorker { // MachineInfo machineInfoDO = this.getMachineInfoService().getById(machineId); // 获取docker 暂时先写固定值 DockerEndpoint dockerEndpoint = new DockerEndpoint(); - dockerEndpoint.setHost("175.6.27.228"); + dockerEndpoint.setHost("175.6.27.252"); dockerEndpoint.setPort(22375); dockerEndpoint.setType(DockerEndpoint.DockerEndpointTypeEnum.REMOTE); // TODO dockerEndpoint替换为查询 diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/base/BaseWorker.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/base/BaseWorker.java index 131bee17..5f3ad06e 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/base/BaseWorker.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/base/BaseWorker.java @@ -82,7 +82,7 @@ public abstract class BaseWorker implements Runnable{ if (contextDef instanceof PipTask task) { Map taskProperties = task.getTaskProperties(); Object taskSkip = taskProperties.get(PipelineBehaviorConstant.TASK_SKIP_KEY); - if (Boolean.TRUE.equals(taskSkip)) { + if (Integer.valueOf("1").equals(taskSkip)) { taskRunContext.changeContextState(ContextStateEnum.SKIP_TO); append(context,e.getMessage()); } else{ diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/history/PipelineHistoryService.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/history/PipelineHistoryService.java index d47bec4c..0ceaca7f 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/history/PipelineHistoryService.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/history/PipelineHistoryService.java @@ -1,11 +1,13 @@ package cd.casic.ci.process.process.service.history; +import cd.casic.ci.process.dal.req.history.PipelineHistoryQueryReq; import cd.casic.ci.process.process.dataObject.history.PipPipelineHisInstance; import cd.casic.ci.process.process.dataObject.pipeline.PipPipeline; +import cd.casic.framework.commons.pojo.PageResult; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; public interface PipelineHistoryService extends IService { - List getListByPipelineId(String pipelineId); + PageResult getPageByPipelineId(PipelineHistoryQueryReq req); } diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/history/impl/PipelineHistoryServiceImpl.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/history/impl/PipelineHistoryServiceImpl.java index 19eb0845..34cd5973 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/history/impl/PipelineHistoryServiceImpl.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/history/impl/PipelineHistoryServiceImpl.java @@ -1,12 +1,16 @@ package cd.casic.ci.process.process.service.history.impl; +import cd.casic.ci.process.dal.req.history.PipelineHistoryQueryReq; +import cd.casic.ci.process.dal.resp.pipeline.PipelineFindResp; import cd.casic.ci.process.process.dal.history.PipPipelineHisInstanceDao; import cd.casic.ci.process.process.dal.pipeline.PipelineDao; import cd.casic.ci.process.process.dataObject.history.PipPipelineHisInstance; import cd.casic.ci.process.process.dataObject.pipeline.PipPipeline; import cd.casic.ci.process.process.service.history.PipelineHistoryService; import cd.casic.ci.process.process.service.pipeline.PipelineService; +import cd.casic.framework.commons.pojo.PageResult; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; @@ -18,10 +22,10 @@ public class PipelineHistoryServiceImpl extends ServiceImpl getListByPipelineId(String pipelineId) { + public PageResult getPageByPipelineId(PipelineHistoryQueryReq req) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(PipPipelineHisInstance::getPipelineId,pipelineId); - return pipelineHisInstanceDao.selectList(wrapper); - + wrapper.eq(PipPipelineHisInstance::getPipelineId,req.getPipelineId()); + Page page = pipelineHisInstanceDao.selectPage(new Page(), wrapper); + return new PageResult(page.getRecords(), page.getTotal(), page.getCurrent(), page.getSize()); } } diff --git a/ops-server/src/test/java/cd/casic/server/SftpTest.java b/ops-server/src/test/java/cd/casic/server/SftpTest.java index 7dce4412..202409b2 100644 --- a/ops-server/src/test/java/cd/casic/server/SftpTest.java +++ b/ops-server/src/test/java/cd/casic/server/SftpTest.java @@ -31,6 +31,6 @@ public class SftpTest { } @Test public void test03(){ - System.out.println(CryptogramUtil.doEncrypt("Hnidc@0626cn!@#zyx")); + System.out.println(CryptogramUtil.doEncrypt("hnidc0327cn!@#xhh")); } } From 6b457250d77d6a466adf945181147ca886f11500 Mon Sep 17 00:00:00 2001 From: even <827656971@qq.com> Date: Thu, 5 Jun 2025 17:03:20 +0800 Subject: [PATCH 2/2] =?UTF-8?q?AFL=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ci/process/engine/worker/AFLWorker.java | 18 +++++++++++------- .../process/engine/worker/base/BaseWorker.java | 3 +++ .../engine/worker/base/DockerWorker.java | 5 +++-- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/AFLWorker.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/AFLWorker.java index 7c2bf23f..c245eec6 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/AFLWorker.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/AFLWorker.java @@ -1,6 +1,7 @@ package cd.casic.ci.process.engine.worker; import cd.casic.ci.process.common.WorkAtom; +import cd.casic.ci.process.dal.resp.resource.ResourceFindResp; import cd.casic.ci.process.engine.constant.AFLConstant; import cd.casic.ci.process.engine.constant.DIYImageExecuteCommandConstant; import cd.casic.ci.process.engine.runContext.TaskRunContext; @@ -9,6 +10,7 @@ import cd.casic.ci.process.engine.worker.base.SshWorker; import cd.casic.ci.process.process.dataObject.machine.MachineInfo; import cd.casic.ci.process.process.dataObject.pipeline.PipPipeline; import cd.casic.ci.process.process.dataObject.task.PipTask; +import cd.casic.module.execute.docker.dataobject.dto.DockerEndpointDo; import cd.casic.module.execute.docker.dataobject.model.DockerEndpoint; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -19,6 +21,7 @@ import java.util.Map; @Slf4j public class AFLWorker extends DockerWorker { + @Override public void execute(TaskRunContext context) { int statusCode = -1; @@ -31,12 +34,17 @@ public class AFLWorker extends DockerWorker { String commandScript = commandScriptObj instanceof String ? ((String) commandScriptObj) : null; PipPipeline pipeline = (PipPipeline) getContextManager().getContext(taskDef.getPipelineId()).getContextDef(); - String machineId = pipeline.getMachineId(); - if (StringUtils.isEmpty(commandScript)||StringUtils.isEmpty(machineId)) { + String resourceId = pipeline.getResourceId(); + if (StringUtils.isEmpty(commandScript)||StringUtils.isEmpty(resourceId)) { // 缺少参数 toBadEnding(); } - + ResourceFindResp resourceById = getResourceManagerService().findResourceById(resourceId); + DockerEndpointDo dockerEndpoint = resourceById.getDockerEndpoint(); + if (dockerEndpoint==null) { + append(context,"当前机器不支持docker"); + return; + } try { //将节点的配置信息反编译成对象 log.info("构建脚本" + commandScript); @@ -46,10 +54,6 @@ public class AFLWorker extends DockerWorker { //获取机器 // MachineInfo machineInfoDO = this.getMachineInfoService().getById(machineId); // 获取docker 暂时先写固定值 - DockerEndpoint dockerEndpoint = new DockerEndpoint(); - dockerEndpoint.setHost("175.6.27.252"); - dockerEndpoint.setPort(22375); - dockerEndpoint.setType(DockerEndpoint.DockerEndpointTypeEnum.REMOTE); // TODO dockerEndpoint替换为查询 dockerRun(commandScript,dockerEndpoint,context); } catch (Exception e) { diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/base/BaseWorker.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/base/BaseWorker.java index 5f3ad06e..9c0d7d05 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/base/BaseWorker.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/base/BaseWorker.java @@ -17,6 +17,7 @@ import cd.casic.ci.process.process.dataObject.machine.MachineInfo; import cd.casic.ci.process.process.dataObject.task.PipTask; import cd.casic.ci.process.process.service.machine.MachineInfoService; +import cd.casic.ci.process.process.service.resource.ResourceManagerService; import cd.casic.ci.process.ssh.SshClient; import cd.casic.ci.process.ssh.SshClientFactory; import cd.casic.ci.process.ssh.WinRMHelper; @@ -45,6 +46,8 @@ public abstract class BaseWorker implements Runnable{ private MachineInfoService machineInfoService; @Resource private LoggerManager loggerManager; + @Resource + private ResourceManagerService resourceManagerService; @Override diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/base/DockerWorker.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/base/DockerWorker.java index a8cee029..2c99a427 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/base/DockerWorker.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/engine/worker/base/DockerWorker.java @@ -2,6 +2,7 @@ package cd.casic.ci.process.engine.worker.base; import cd.casic.ci.process.engine.runContext.BaseRunContext; +import cd.casic.module.execute.docker.dataobject.dto.DockerEndpointDo; import cd.casic.module.execute.docker.dataobject.model.DockerEndpoint; import com.github.dockerjava.api.DockerClient; import com.github.dockerjava.api.async.ResultCallbackTemplate; @@ -33,7 +34,7 @@ import java.util.concurrent.TimeUnit; import static java.lang.String.format; @Slf4j public abstract class DockerWorker extends BaseWorker{ - public void dockerRun(String command, DockerEndpoint dockerEndpoint, BaseRunContext context){ + public void dockerRun(String command, DockerEndpointDo dockerEndpoint, BaseRunContext context){ // 第一行必须是docker run 命令 option 支持 -it -v String[] split = command.split("\n"); List commandLine = new ArrayList<>(Arrays.stream(split).filter(StringUtils::isNotBlank).toList()); @@ -148,7 +149,7 @@ public abstract class DockerWorker extends BaseWorker{ } } - public DockerExecHandler loadRunCommand(String runCommand, DockerEndpoint dockerEndpoint){ + public DockerExecHandler loadRunCommand(String runCommand, DockerEndpointDo dockerEndpoint){ String[] split = runCommand.split("\\s+"); List keywords = new ArrayList<>(split.length); keywords.addAll(Lists.list(split));