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] =?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));