| @@ -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<String, Object> runResMap) throws Exception { | |||
| LoginUser loginUser = SecurityUtils.getLoginUser(); | |||
| String ci4sUsername = loginUser.getUsername(); | |||
| Map<String, Object> spec = (Map<String, Object>) runResMap.get("spec"); | |||
| if (spec != null) { | |||
| List<Map<String, Object>> templates = (ArrayList<Map<String, Object>>) spec.get("templates"); | |||
| for (Map<String, Object> template : templates) { | |||
| String name = (String) template.get("name"); | |||
| if (StringUtils.isNotEmpty(name) && name.contains("model-export")) { | |||
| Map<String, Object> container = (Map<String, Object>) template.get("container"); | |||
| List<String> args = (ArrayList<String>) container.get("args"); | |||
| Map<String, Object> 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<String, Object> container = (Map<String, Object>) template.get("container"); | |||
| List<String> args = (ArrayList<String>) container.get("args"); | |||
| Map<String, Object> 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); | |||
| } | |||
| } | |||
| } | |||
| } | |||
| /** | |||
| * 查询实验实例日志的单个节点日志 | |||
| * | |||