Browse Source

实验终止删除数据集和模型版本

dev-czh
chenzhihang 1 year ago
parent
commit
4fbd278954
1 changed files with 61 additions and 0 deletions
  1. +61
    -0
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ExperimentInsServiceImpl.java

+ 61
- 0
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ExperimentInsServiceImpl.java View File

@@ -59,6 +59,11 @@ public class ExperimentInsServiceImpl implements ExperimentInsService {
private NewHttpUtils httpUtils; private NewHttpUtils httpUtils;
@Resource @Resource
private K8sClientUtil k8sClientUtil; private K8sClientUtil k8sClientUtil;
@Resource
private ModelsServiceImpl modelsService;
@Resource
private NewDatasetServiceImpl newDatasetService;

private final MinioUtil minioUtil; private final MinioUtil minioUtil;


public ExperimentInsServiceImpl(MinioUtil minioUtil) { public ExperimentInsServiceImpl(MinioUtil minioUtil) {
@@ -401,6 +406,10 @@ public class ExperimentInsServiceImpl implements ExperimentInsService {
ins.setStatus("Terminated"); ins.setStatus("Terminated");
ins.setFinishTime(new Date()); ins.setFinishTime(new Date());
this.experimentInsDao.update(ins); this.experimentInsDao.update(ins);

//删除数据集模型导出版本
deleteExportVersion(runResMap);

return true; return true;
} else { } else {
return false; 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);
}
}
}
}

/** /**
* 查询实验实例日志的单个节点日志 * 查询实验实例日志的单个节点日志
* *


Loading…
Cancel
Save