From 86511836d7194423347dc5731b14b3461246574d Mon Sep 17 00:00:00 2001 From: chenzhihang <709011834@qq.com> Date: Mon, 2 Sep 2024 18:13:37 +0800 Subject: [PATCH 1/2] =?UTF-8?q?1=E3=80=81=E4=BC=98=E5=8C=96=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E9=95=9C=E5=83=8F=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/image/ImageController.java | 25 +++++++++---------- .../ruoyi/platform/service/ImageService.java | 2 +- .../service/impl/ImageServiceImpl.java | 17 +++++++++---- 3 files changed, 25 insertions(+), 19 deletions(-) diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/image/ImageController.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/image/ImageController.java index 1af9c983..624ff5e0 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/image/ImageController.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/image/ImageController.java @@ -45,7 +45,7 @@ public class ImageController extends BaseController { @RequestParam("size") int size, @RequestParam(value = "image_type") int imageType) { image.setImageType(imageType); - PageRequest pageRequest = PageRequest.of(page,size); + PageRequest pageRequest = PageRequest.of(page, size); return genericsSuccess(this.imageService.queryByPage(image, pageRequest)); } @@ -72,6 +72,7 @@ public class ImageController extends BaseController { public GenericsAjaxResult> queryByName(@PathVariable("name") String name) { return genericsSuccess(this.imageService.queryByName(name)); } + /** * 新增数据 * @@ -84,9 +85,8 @@ public class ImageController extends BaseController { } /** - * * @param imageVo 实体 - * 新增镜像和版本 @PostMapping + * 新增镜像和版本 @PostMapping * @return 新增结果 */ @PostMapping("/addImageAndVersion") @@ -122,21 +122,20 @@ public class ImageController extends BaseController { @PostMapping("/net") @ApiOperation("从网络上传构建镜像") public GenericsAjaxResult> createImageFromNet(@RequestParam("name") String imageName, - @RequestParam("tag") String imageTag, - @RequestParam("path") String path) throws Exception { - return genericsSuccess(this.imageService.createImageFromNet(imageName,imageTag,path)); + @RequestParam("tag") String imageTag, + @RequestParam("path") String path) throws Exception { + return genericsSuccess(this.imageService.createImageFromNet(imageName, imageTag, path)); } @PostMapping("/local") @ApiOperation("从本地上传构建镜像") public GenericsAjaxResult> createImageFromLocal(@RequestParam("name") String imageName, - @RequestParam("tag") String imageTag, - @RequestParam("path") String path) throws Exception { - return genericsSuccess(this.imageService.createImageFromLocal(imageName,imageTag,path)); + @RequestParam("tag") String imageTag, + @RequestParam("path") String path) throws Exception { + return genericsSuccess(this.imageService.createImageFromLocal(imageName, imageTag, path)); } - /** * 镜像上传 * @@ -145,14 +144,14 @@ public class ImageController extends BaseController { @PostMapping("/upload") @ApiOperation(value = "上传镜像文件", notes = "上传镜像tar包,返回存储路径") public GenericsAjaxResult> uploadImageFiles(@RequestParam("file") MultipartFile file) throws Exception { - return genericsSuccess(this.imageService.uploadImageFiles(file)); + return genericsSuccess(this.imageService.uploadImageFiles(file)); } @PostMapping("/saveImage") @ApiOperation(value = "保存环境为镜像", notes = "docker commit方式保存,并推送到horbor") - public GenericsAjaxResult saveImage(@RequestBody ImageVo imageVo){ - return genericsSuccess(this.imageService.saveImage(imageVo)); + public void saveImage(@RequestBody ImageVo imageVo) { + this.imageService.saveImage(imageVo); } } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ImageService.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ImageService.java index fb8984ed..d75ac86d 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ImageService.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ImageService.java @@ -93,5 +93,5 @@ public interface ImageService { Map createImageFromNet(String imageName, String imageTag, String NetPath) throws Exception; Map uploadImageFiles(MultipartFile file) throws Exception; - String saveImage(ImageVo imageVo); + void saveImage(ImageVo imageVo); } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ImageServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ImageServiceImpl.java index ad436ce0..582af8c9 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ImageServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ImageServiceImpl.java @@ -24,6 +24,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.PageRequest; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; @@ -367,10 +368,18 @@ public class ImageServiceImpl implements ImageService { @Override @Transactional - public String saveImage(ImageVo imageVo) { - if (imageDao.getByName(imageVo.getName()) != null) { - throw new IllegalStateException("镜像名称已存在"); + @Async + public void saveImage(ImageVo imageVo) { + Image oldImage = imageDao.getByName(imageVo.getName()); + if (oldImage != null) { + List oldImageVersions = imageVersionDao.queryByImageId(oldImage.getId()); + for (ImageVersion oldImageVersion : oldImageVersions) { + if(oldImageVersion.getTagName().equals(imageVo.getTagName())){ + throw new IllegalStateException("镜像tag不能重复"); + } + } } + LoginUser loginUser = SecurityUtils.getLoginUser(); String username = loginUser.getUsername().toLowerCase(); String podName = username + "-editor-pod" + "-" + imageVo.getDevEnvironmentId().toString(); @@ -412,8 +421,6 @@ public class ImageServiceImpl implements ImageService { devEnvironment.setId(imageVo.getDevEnvironmentId()); devEnvironment.setImage(resultMap.get("imageName")); devEnvironmentDao.update(devEnvironment); - - return "保存镜像成功"; } catch (Exception e) { throw new RuntimeException("保存镜像失败:" + e); } From 5b581dab77494d6326de1397bb2c7eddeedd9619 Mon Sep 17 00:00:00 2001 From: chenzhihang <709011834@qq.com> Date: Mon, 2 Sep 2024 18:14:06 +0800 Subject: [PATCH 2/2] =?UTF-8?q?1=E3=80=81=E4=BC=98=E5=8C=96=E8=BF=90?= =?UTF-8?q?=E8=A1=8C=E7=8E=AF=E5=A2=83=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ruoyi/platform/utils/K8sClientUtil.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/utils/K8sClientUtil.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/utils/K8sClientUtil.java index 0c8fcc43..dbd4d7a2 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/utils/K8sClientUtil.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/utils/K8sClientUtil.java @@ -501,9 +501,9 @@ public class K8sClientUtil { computingResourceDao.updateUsedStateByNode(nodeName, Constant.Used_State_used); } } catch (ApiException e) { - log.error("创建pod异常:" + e.getResponseBody(), e); + throw new RuntimeException("创建pod异常:" + e.getResponseBody()); } catch (Exception e) { - log.error("创建pod系统异常:", e); + throw new RuntimeException("创建pod系统异常:", e); } V1Service service = createService(namespace, podName + "-svc", port, selector);