From c23e5afcebe253a8b7999238419a9f681e60ccca Mon Sep 17 00:00:00 2001 From: chenzhihang <709011834@qq.com> Date: Wed, 25 Dec 2024 16:56:37 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E6=B5=81=E6=B0=B4=E7=BA=BF=E5=BC=82=E5=B8=B8=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/WorkflowServiceImpl.java | 128 +++++++++++------- 1 file changed, 80 insertions(+), 48 deletions(-) diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/WorkflowServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/WorkflowServiceImpl.java index 727bdc11..06e9646b 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/WorkflowServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/WorkflowServiceImpl.java @@ -226,7 +226,7 @@ public class WorkflowServiceImpl implements WorkflowService { } } - public void saveAssetWorkFlow(Workflow workflow) throws IOException { + public void saveAssetWorkFlow(Workflow workflow) throws Exception { if (StringUtils.isNotEmpty(workflow.getDag())) { Map dagMap = JsonUtils.jsonToMap(workflow.getDag()); List> nodes = (List>) dagMap.get("nodes"); @@ -307,69 +307,101 @@ public class WorkflowServiceImpl implements WorkflowService { } } - public void saveImageWorkFlow(String image, Long workflowId, String workflowName) { - String[] imageSplit = image.split(":"); - String tagName = imageSplit[1]; - ImageVersion imageVersion = imageVersionDao.queryByUrl(image); - insertAssetWorkFlow(workflowId, workflowName, Long.valueOf(imageVersion.getImageId()), tagName, Constant.Asset_Type_Image); - } - - public void saveImageWorkFlow1(String inParameters, Long workflowId, String workflowName) throws IOException { - Map paramMap = JsonUtils.jsonToMap(inParameters); - Map image = (Map) paramMap.get("--image"); - saveImageWorkFlow((String) image.get("value"), workflowId, workflowName); + public void saveImageWorkFlow(String image, Long workflowId, String workflowName) throws Exception { + try { + String[] imageSplit = image.split(":"); + String tagName = imageSplit[1]; + ImageVersion imageVersion = imageVersionDao.queryByUrl(image); + insertAssetWorkFlow(workflowId, workflowName, Long.valueOf(imageVersion.getImageId()), tagName, Constant.Asset_Type_Image); + } catch (Exception e) { + throw new Exception("镜像参数有误:" + e); + } } - public void saveCodeWorkFlow(String inParameters, Long workflowId, String workflowName) throws IOException { - Map paramMap = JsonUtils.jsonToMap(inParameters); - Map code_config = (Map) paramMap.get("--code_config"); - String value = (String) code_config.get("value"); - Map valueMap = JsonUtils.jsonToMap(value); - insertAssetWorkFlow(workflowId, workflowName, Long.valueOf((Integer) valueMap.get("id")), null, Constant.Asset_Type_Code); + public void saveImageWorkFlow1(String inParameters, Long workflowId, String workflowName) throws Exception { + try { + Map paramMap = JsonUtils.jsonToMap(inParameters); + Map image = (Map) paramMap.get("--image"); + saveImageWorkFlow((String) image.get("value"), workflowId, workflowName); + } catch (Exception e) { + throw new Exception(e); + } } - public void saveDatasetWorkFlow(String inParameters, Long workflowId, String workflowName) throws IOException { - Map paramMap = JsonUtils.jsonToMap(inParameters); - Map dataset = (Map) paramMap.get("--dataset"); - String value = (String) dataset.get("value"); - if (!value.startsWith("{{")) { + public void saveCodeWorkFlow(String inParameters, Long workflowId, String workflowName) throws Exception { + try { + Map paramMap = JsonUtils.jsonToMap(inParameters); + Map code_config = (Map) paramMap.get("--code_config"); + String value = (String) code_config.get("value"); Map valueMap = JsonUtils.jsonToMap(value); - insertAssetWorkFlow(workflowId, workflowName, Long.valueOf((String) valueMap.get("id")), (String) valueMap.get("version"), Constant.Asset_Type_Dataset); + insertAssetWorkFlow(workflowId, workflowName, Long.valueOf((Integer) valueMap.get("id")), null, Constant.Asset_Type_Code); + } catch (IOException e) { + throw new Exception("代码配置参数有误:" + e); } } - public void saveDatasetWorkFlow1(String inParameters, Long workflowId, String workflowName) throws IOException { - Map paramMap = JsonUtils.jsonToMap(inParameters); - Map dataset = (Map) paramMap.get("--dataset_id"); - String value = (String) dataset.get("value"); - Map valueMap = JsonUtils.jsonToMap(value); - insertAssetWorkFlow(workflowId, workflowName, Long.valueOf((String) valueMap.get("id")), null, Constant.Asset_Type_Dataset); + public void saveDatasetWorkFlow(String inParameters, Long workflowId, String workflowName) throws Exception { + try { + Map paramMap = JsonUtils.jsonToMap(inParameters); + Map dataset = (Map) paramMap.get("--dataset"); + String value = (String) dataset.get("value"); + if (!value.startsWith("{{")) { + Map valueMap = JsonUtils.jsonToMap(value); + insertAssetWorkFlow(workflowId, workflowName, Long.valueOf((String) valueMap.get("id")), (String) valueMap.get("version"), Constant.Asset_Type_Dataset); + } + } catch (Exception e) { + throw new Exception("数据集参数有误:" + e); + } } - public void saveModelWorkFlow(String inParameters, Long workflowId, String workflowName) throws IOException { - Map paramMap = JsonUtils.jsonToMap(inParameters); - Map model = (Map) paramMap.get("--model_name"); - String value = (String) model.get("value"); - if (StringUtils.isNotEmpty(value) && !value.startsWith("{{")) { + public void saveDatasetWorkFlow1(String inParameters, Long workflowId, String workflowName) throws Exception { + try { + Map paramMap = JsonUtils.jsonToMap(inParameters); + Map dataset = (Map) paramMap.get("--dataset_id"); + String value = (String) dataset.get("value"); Map valueMap = JsonUtils.jsonToMap(value); - insertAssetWorkFlow(workflowId, workflowName, Long.valueOf((String) valueMap.get("id")), (String) valueMap.get("version"), Constant.Asset_Type_Model); + insertAssetWorkFlow(workflowId, workflowName, Long.valueOf((String) valueMap.get("id")), null, Constant.Asset_Type_Dataset); + } catch (Exception e) { + throw new Exception("数据集参数有误:" + e); + } + } + + public void saveModelWorkFlow(String inParameters, Long workflowId, String workflowName) throws Exception { + try { + Map paramMap = JsonUtils.jsonToMap(inParameters); + Map model = (Map) paramMap.get("--model_name"); + String value = (String) model.get("value"); + if (StringUtils.isNotEmpty(value) && !value.startsWith("{{")) { + Map valueMap = JsonUtils.jsonToMap(value); + insertAssetWorkFlow(workflowId, workflowName, Long.valueOf((String) valueMap.get("id")), (String) valueMap.get("version"), Constant.Asset_Type_Model); + } + } catch (Exception e) { + throw new Exception("模型参数有误:" + e); } } - public void saveModelWorkFlow1(String inParameters, Long workflowId, String workflowName) throws IOException { - Map paramMap = JsonUtils.jsonToMap(inParameters); - Map model = (Map) paramMap.get("--model_id"); - String value = (String) model.get("value"); - Map valueMap = JsonUtils.jsonToMap(value); - insertAssetWorkFlow(workflowId, workflowName, Long.valueOf((String) valueMap.get("id")), null, Constant.Asset_Type_Model); + public void saveModelWorkFlow1(String inParameters, Long workflowId, String workflowName) throws Exception { + try { + Map paramMap = JsonUtils.jsonToMap(inParameters); + Map model = (Map) paramMap.get("--model_id"); + String value = (String) model.get("value"); + Map valueMap = JsonUtils.jsonToMap(value); + insertAssetWorkFlow(workflowId, workflowName, Long.valueOf((String) valueMap.get("id")), null, Constant.Asset_Type_Model); + } catch (Exception e) { + throw new Exception("模型参数有误:" + e); + } } - public void saveServiceWorkFlow(String inParameters, Long workflowId, String workflowName) throws IOException { - Map paramMap = JsonUtils.jsonToMap(inParameters); - Map service = (Map) paramMap.get("--service_name"); - String value = (String) service.get("value"); - Map valueMap = JsonUtils.jsonToMap(value); - insertAssetWorkFlow(workflowId, workflowName, Long.valueOf((Integer) valueMap.get("id")), null, Constant.Asset_Type_Service); + public void saveServiceWorkFlow(String inParameters, Long workflowId, String workflowName) throws Exception { + try { + Map paramMap = JsonUtils.jsonToMap(inParameters); + Map service = (Map) paramMap.get("--service_name"); + String value = (String) service.get("value"); + Map valueMap = JsonUtils.jsonToMap(value); + insertAssetWorkFlow(workflowId, workflowName, Long.valueOf((Integer) valueMap.get("id")), null, Constant.Asset_Type_Service); + } catch (Exception e) { + throw new Exception("服务参数有误:" + e); + } } public void insertAssetWorkFlow(Long workflowId, String workflowName, Long assetId, String version, String type) { From 5860df238da14e657f412dd6a2704351659db981 Mon Sep 17 00:00:00 2001 From: chenzhihang <709011834@qq.com> Date: Thu, 26 Dec 2024 08:44:04 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=81=9C=E6=AD=A2?= =?UTF-8?q?=E5=AE=9E=E9=AA=8Cbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../experiment/ExperimentInsController.java | 2 +- .../platform/mapper/ModelDependency1Dao.java | 2 ++ .../platform/service/ExperimentInsService.java | 2 +- .../service/impl/ExperimentInsServiceImpl.java | 15 +++++++++------ .../ModelDependency1DaoMapper.xml | 6 ++++++ 5 files changed, 19 insertions(+), 8 deletions(-) diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/experiment/ExperimentInsController.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/experiment/ExperimentInsController.java index 8d18c409..32ad25ce 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/experiment/ExperimentInsController.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/experiment/ExperimentInsController.java @@ -120,7 +120,7 @@ public class ExperimentInsController extends BaseController { */ @PutMapping("{id}") @ApiOperation("终止实验实例") - public GenericsAjaxResult terminateExperimentIns(@PathVariable("id") Integer id) { + public GenericsAjaxResult terminateExperimentIns(@PathVariable("id") Integer id) throws Exception { return genericsSuccess(this.experimentInsService.terminateExperimentIns(id)); } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/ModelDependency1Dao.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/ModelDependency1Dao.java index 0b80f58e..8a33591b 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/ModelDependency1Dao.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/ModelDependency1Dao.java @@ -25,6 +25,8 @@ public interface ModelDependency1Dao { int deleteModel(@Param("repoId") Integer repoId, @Param("identifier") String identifier, @Param("owner") String owner, @Param("version") String version); + int deleteModelById(@Param("id") Long id); + int deleteModelDependency(@Param("parentModel") String parentModel); String getMeta(@Param("identifier") String identifier, @Param("owner") String owner, @Param("version") String version); diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ExperimentInsService.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ExperimentInsService.java index 98ee1b6d..4cfa5735 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ExperimentInsService.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ExperimentInsService.java @@ -84,7 +84,7 @@ public interface ExperimentInsService { ExperimentIns queryStatusFromArgo(ExperimentIns ins); - boolean terminateExperimentIns(Integer id); + boolean terminateExperimentIns(Integer id) throws Exception; /** * 查询实验实例日志 diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ExperimentInsServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ExperimentInsServiceImpl.java index de3fa8c1..4121897d 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ExperimentInsServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ExperimentInsServiceImpl.java @@ -11,7 +11,6 @@ import com.ruoyi.platform.mapper.ExperimentDao; import com.ruoyi.platform.mapper.ExperimentInsDao; import com.ruoyi.platform.mapper.ModelDependency1Dao; import com.ruoyi.platform.service.ExperimentInsService; -import com.ruoyi.platform.service.WorkflowService; import com.ruoyi.platform.utils.*; import com.ruoyi.platform.vo.LogRequestVo; import com.ruoyi.platform.vo.PodLogVo; @@ -339,7 +338,7 @@ public class ExperimentInsServiceImpl implements ExperimentInsService { * @return 是否成功 */ @Override - public boolean terminateExperimentIns(Integer id) { + public boolean terminateExperimentIns(Integer id) throws Exception { //先查出实验记录 ExperimentIns experimentIns = this.experimentInsDao.queryById(id); if (experimentIns == null) { @@ -356,7 +355,7 @@ public class ExperimentInsServiceImpl implements ExperimentInsService { // 只有状态是"Running"时才能终止实例 if (!currentStatus.equalsIgnoreCase("Running")) { - return false; // 如果不是"Running"状态,则不执行终止操作 + throw new Exception("终止错误,只有运行状态的实例才能终止"); // 如果不是"Running"状态,则不执行终止操作 } // 创建请求数据map @@ -412,7 +411,7 @@ public class ExperimentInsServiceImpl implements ExperimentInsService { return true; } else { - return false; + throw new Exception("终止错误"); } } catch (Exception e) { throw new RuntimeException("终止实例错误: " + e.getMessage(), e); @@ -436,8 +435,12 @@ public class ExperimentInsServiceImpl implements ExperimentInsService { HashMap queryMap = new HashMap(); queryMap.put("insId", experimentIns.getId()); ModelDependency1 modelDependency1 = modelDependency1Dao.queryByInsId(JSON.toJSONString(queryMap)); - String relativePath = ci4sUsername + "/model/" + modelDependency1.getRepoId() + "/" + modelDependency1.getIdentifier() + "/" + modelDependency1.getVersion() + "/model"; - modelsService.deleteVersion(modelDependency1.getRepoId(), modelDependency1.getIdentifier(), modelDependency1.getOwner(), modelDependency1.getVersion(), relativePath); + if (StringUtils.isNotEmpty(modelDependency1.getVersion())) { + String relativePath = ci4sUsername + "/model/" + modelDependency1.getRepoId() + "/" + modelDependency1.getIdentifier() + "/" + modelDependency1.getVersion() + "/model"; + modelsService.deleteVersion(modelDependency1.getRepoId(), modelDependency1.getIdentifier(), modelDependency1.getOwner(), modelDependency1.getVersion(), relativePath); + } else { + modelDependency1Dao.deleteModelById(modelDependency1.getId()); + } break; } //删除导出数据集版本 diff --git a/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ModelDependency1DaoMapper.xml b/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ModelDependency1DaoMapper.xml index 69f27b51..e7e93635 100644 --- a/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ModelDependency1DaoMapper.xml +++ b/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ModelDependency1DaoMapper.xml @@ -85,6 +85,12 @@ + + update model_dependency1 + set state = 0 + where id = #{id} + + update model_dependency1 set parent_model = null