From 2afeb554da870389a3953e821cd827d3501f747b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=92=B2=E5=85=88=E7=94=9F?= <821039958@qq.com> Date: Mon, 28 Jul 2025 11:50:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E9=95=9C=E5=83=8F=E5=88=B0?= =?UTF-8?q?=E7=9B=AE=E6=A0=87=E4=B8=BB=E6=9C=BA=E5=8A=9F=E8=83=BD=20?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E6=8D=95=E8=8E=B7=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../execute/docker/service/IImageService.java | 2 +- .../docker/service/impl/ImageService.java | 16 +++++++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/modules/module-ci-execute/src/main/java/cd/casic/module/execute/docker/service/IImageService.java b/modules/module-ci-execute/src/main/java/cd/casic/module/execute/docker/service/IImageService.java index 96eb3a01..33f87861 100644 --- a/modules/module-ci-execute/src/main/java/cd/casic/module/execute/docker/service/IImageService.java +++ b/modules/module-ci-execute/src/main/java/cd/casic/module/execute/docker/service/IImageService.java @@ -110,5 +110,5 @@ public interface IImageService { PageResult getLocalImagePage(DockerImagePageReqVO pageVO); - Object localImagePush(String imageId, String machineId); + Boolean localImagePush(String imageId, String machineId); } diff --git a/modules/module-ci-execute/src/main/java/cd/casic/module/execute/docker/service/impl/ImageService.java b/modules/module-ci-execute/src/main/java/cd/casic/module/execute/docker/service/impl/ImageService.java index 251cbab5..7bebb873 100644 --- a/modules/module-ci-execute/src/main/java/cd/casic/module/execute/docker/service/impl/ImageService.java +++ b/modules/module-ci-execute/src/main/java/cd/casic/module/execute/docker/service/impl/ImageService.java @@ -1,6 +1,7 @@ package cd.casic.module.execute.docker.service.impl; import cd.casic.ci.commons.properties.TargetFileUploadProperties; +import cd.casic.framework.commons.exception.ServerException; import cd.casic.framework.commons.pojo.PageResult; import cd.casic.framework.mybatis.core.query.LambdaQueryWrapperX; import cd.casic.module.execute.docker.DockerClientFactory; @@ -9,6 +10,7 @@ import cd.casic.module.execute.docker.dataobject.dto.DockerImageDo; import cd.casic.module.execute.docker.dataobject.model.DockerImage; import cd.casic.module.execute.docker.dataobject.vo.DockerImagePageReqVO; import cd.casic.module.execute.docker.service.IImageService; +import cd.casic.module.machine.contants.MachineErrorCodeConstants; import cd.casic.module.machine.dal.dataobject.MachineInfoDO; import cd.casic.module.machine.dal.dataobject.SecretKeyDO; import cd.casic.module.machine.dal.mysql.MachineInfoMapper; @@ -183,9 +185,9 @@ public class ImageService implements IImageService { * @return */ @Override - public Object localImagePush(String imageId, String machineId) { + public Boolean localImagePush(String imageId, String machineId) { if (Objects.isNull(imageId) || Objects.isNull(machineId)) { - return null; + throw new ServerException(MachineErrorCodeConstants.MACHINE_INFO_TAG_NULL); } DockerImageDo imageDo = dockerImageDao.selectById(imageId); //1 远程下载 @@ -203,8 +205,8 @@ public class ImageService implements IImageService { targetFtp.setSystemKey(CryptogramUtil.doDecrypt(secretKeyDO.getPrivateKey())); targetFtp.setPassword(CryptogramUtil.doDecrypt(secretKeyDO.getPassword())); } - Sftp uploadSftp = getSftp(targetFtp); // 2.1 上传 + Sftp uploadSftp = getSftp(targetFtp); String suffix = FileUtil.getSuffix(srcPath); String fileName = imageDo.getName() + "." + suffix; ByteArrayInputStream arrayInputStream = new ByteArrayInputStream(byteOut.toByteArray()); //转换 @@ -212,7 +214,7 @@ public class ImageService implements IImageService { uploadSftp.mkDirs(romPath);//递归创建 uploadSftp.upload(romPath, fileName, arrayInputStream); uploadSftp.close(); - return null; + return true; } /** @@ -221,13 +223,17 @@ public class ImageService implements IImageService { * @param config 连接配置 * @return */ - private Sftp getSftp(FtpConfig config){ + private Sftp getSftp(FtpConfig config) { Session session; if (Objects.nonNull(config.getSystemKey())) { session = JschUtil.getSession(config.getHost(), config.getPort(), config.getUser(), config.getSystemKey().getBytes(StandardCharsets.UTF_8), config.getPassword().getBytes()); } else { session = JschUtil.getSession(config.getHost(), config.getPort(), config.getUser(), config.getPassword()); } + if (!session.isConnected()) { + log.error("与主机IP:{} 建立SSH连接失败", config.getHost()); + throw new ServerException(500, "部署失败,请检测主机是否可用"); + } return new Sftp(session); } }