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 59168810..da66d68f 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 @@ -59,6 +59,11 @@ public class ExperimentInsServiceImpl implements ExperimentInsService { private NewHttpUtils httpUtils; @Resource private K8sClientUtil k8sClientUtil; + @Resource + private ModelsServiceImpl modelsService; + @Resource + private NewDatasetServiceImpl newDatasetService; + private final MinioUtil minioUtil; public ExperimentInsServiceImpl(MinioUtil minioUtil) { @@ -401,6 +406,10 @@ public class ExperimentInsServiceImpl implements ExperimentInsService { ins.setStatus("Terminated"); ins.setFinishTime(new Date()); this.experimentInsDao.update(ins); + + //删除数据集模型导出版本 + deleteExportVersion(runResMap); + return true; } else { return false; @@ -411,6 +420,58 @@ public class ExperimentInsServiceImpl implements ExperimentInsService { } + void deleteExportVersion(Map runResMap) throws Exception { + LoginUser loginUser = SecurityUtils.getLoginUser(); + String ci4sUsername = loginUser.getUsername(); + + Map spec = (Map) runResMap.get("spec"); + if (spec != null) { + List> templates = (ArrayList>) spec.get("templates"); + for (Map template : templates) { + String name = (String) template.get("name"); + if (StringUtils.isNotEmpty(name) && name.contains("model-export")) { + Map container = (Map) template.get("container"); + List args = (ArrayList) container.get("args"); + + Map model = new HashMap<>(); + String version = ""; + for (String arg : args) { + if (arg.startsWith("--model_id")) { + String modelStr = arg.substring("--model_id=".length()); + model = JsonUtils.jsonToMap(modelStr); + } + if (arg.startsWith("--version")) { + version = arg.substring("--version=".length()); + } + } + String relativePath = ci4sUsername + "/model/" + model.get("id") + "/" + model.get("identifier") + "/" + version + "/model"; + ; + modelsService.deleteVersion(Integer.valueOf((String) model.get("id")), (String) model.get("identifier"), (String) model.get("owner"), version, relativePath); + } + + if (StringUtils.isNotEmpty(name) && name.contains("dataset-export")) { + Map container = (Map) template.get("container"); + List args = (ArrayList) container.get("args"); + + Map dataset = new HashMap<>(); + String version = ""; + + for (String arg : args) { + if (arg.startsWith("--dataset_id")) { + String datasetStr = arg.substring("--dataset_id=".length()); + dataset = JsonUtils.jsonToMap(datasetStr); + } + if (arg.startsWith("--version")) { + version = arg.substring("--version=".length()); + } + } + String relativePath = ci4sUsername + "/datasets/" + dataset.get("id") + "/" + dataset.get("identifier") + "/" + version + "/dataset"; + newDatasetService.deleteDatasetVersionNew((String) dataset.get("identifier"), (String) dataset.get("owner"), version, relativePath); + } + } + } + } + /** * 查询实验实例日志的单个节点日志 *