Browse Source

实验终止删除模型版本

dev-czh
chenzhihang 1 year ago
parent
commit
2bd85a2018
5 changed files with 35 additions and 44 deletions
  1. +2
    -0
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/ModelDependency1Dao.java
  2. +22
    -44
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ExperimentInsServiceImpl.java
  3. +1
    -0
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ExperimentServiceImpl.java
  4. +3
    -0
      ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/ModelMetaVo.java
  5. +7
    -0
      ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ModelDependency1DaoMapper.xml

+ 2
- 0
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/ModelDependency1Dao.java View File

@@ -21,6 +21,8 @@ public interface ModelDependency1Dao {


ModelDependency1 queryByTrainTask(@Param("trainTask") String trainTask); ModelDependency1 queryByTrainTask(@Param("trainTask") String trainTask);


ModelDependency1 queryByInsId(@Param("insId") String insId);

int deleteModel(@Param("repoId") Integer repoId, @Param("identifier") String identifier, @Param("owner") String owner, @Param("version") String version); int deleteModel(@Param("repoId") Integer repoId, @Param("identifier") String identifier, @Param("owner") String owner, @Param("version") String version);


int deleteModelDependency(@Param("parentModel") String parentModel); int deleteModelDependency(@Param("parentModel") String parentModel);


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

@@ -2,8 +2,10 @@ package com.ruoyi.platform.service.impl;


import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.platform.domain.ExperimentIns; import com.ruoyi.platform.domain.ExperimentIns;
import com.ruoyi.platform.domain.ModelDependency1;
import com.ruoyi.platform.mapper.ExperimentDao; import com.ruoyi.platform.mapper.ExperimentDao;
import com.ruoyi.platform.mapper.ExperimentInsDao; import com.ruoyi.platform.mapper.ExperimentInsDao;
import com.ruoyi.platform.mapper.ModelDependency1Dao;
import com.ruoyi.platform.service.ExperimentInsService; import com.ruoyi.platform.service.ExperimentInsService;
import com.ruoyi.platform.service.WorkflowService; import com.ruoyi.platform.service.WorkflowService;
import com.ruoyi.platform.utils.*; import com.ruoyi.platform.utils.*;
@@ -64,6 +66,9 @@ public class ExperimentInsServiceImpl implements ExperimentInsService {
@Resource @Resource
private NewDatasetServiceImpl newDatasetService; private NewDatasetServiceImpl newDatasetService;


@Resource
private ModelDependency1Dao modelDependency1Dao;

private final MinioUtil minioUtil; private final MinioUtil minioUtil;


public ExperimentInsServiceImpl(MinioUtil minioUtil) { public ExperimentInsServiceImpl(MinioUtil minioUtil) {
@@ -408,7 +413,7 @@ public class ExperimentInsServiceImpl implements ExperimentInsService {
this.experimentInsDao.update(ins); this.experimentInsDao.update(ins);


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


return true; return true;
} else { } else {
@@ -420,55 +425,28 @@ public class ExperimentInsServiceImpl implements ExperimentInsService {


} }


void deleteExportVersion(Map<String, Object> runResMap) throws Exception {
void deleteExportVersion(ExperimentIns experimentIns) throws Exception {
LoginUser loginUser = SecurityUtils.getLoginUser(); LoginUser loginUser = SecurityUtils.getLoginUser();
String ci4sUsername = loginUser.getUsername(); String ci4sUsername = loginUser.getUsername();


Map<String, Object> data = (Map<String, Object>) runResMap.get("data");
Map<String, Object> spec = (Map<String, Object>) data.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");
String nodesResult = experimentIns.getNodesResult();


Map<String, Object> dataset = new HashMap<>();
String version = "";
if (StringUtils.isNotEmpty(nodesResult)) {
Map<String, Object> nodesResultMap = JsonUtils.jsonToMap(nodesResult);
Map<String, Object> paramOutput = (Map<String, Object>) nodesResultMap.get("param_output");


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);
for (String key : paramOutput.keySet()) {
//删除导出模型版本
if (key.contains("model-export")) {
String query = "\"insId\":" + experimentIns.getId();
ModelDependency1 modelDependency1 = modelDependency1Dao.queryByInsId(query);
String relativePath = ci4sUsername + "/model/" + modelDependency1.getRepoId() + "/" + modelDependency1.getIdentifier() + "/" + modelDependency1.getVersion() + "/model";
modelsService.deleteVersion(modelDependency1.getRepoId(), modelDependency1.getIdentifier(), modelDependency1.getOwner(), modelDependency1.getVersion(), relativePath);
break;
} }
//删除导出数据集版本 todo
// String relativePath = ci4sUsername + "/datasets/" + dataset.get("id") + "/" + dataset.get("identifier") + "/" + version + "/dataset";
// newDatasetService.deleteDatasetVersionNew((String) dataset.get("identifier"), (String) dataset.get("owner"), version, relativePath);
} }
} }
} }


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

@@ -515,6 +515,7 @@ public class ExperimentServiceImpl implements ExperimentService {


while (dependendcyIterator.hasNext()) { while (dependendcyIterator.hasNext()) {
ModelsVo modelMetaVo = new ModelsVo(); ModelsVo modelMetaVo = new ModelsVo();
modelMetaVo.setInsId(experimentInsId);
modelMetaVo.setOwner(gitLinkUsername); modelMetaVo.setOwner(gitLinkUsername);
ModelDependency1 modelDependency = new ModelDependency1(); ModelDependency1 modelDependency = new ModelDependency1();
modelDependency.setOwner(gitLinkUsername); modelDependency.setOwner(gitLinkUsername);


+ 3
- 0
ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/ModelMetaVo.java View File

@@ -62,6 +62,9 @@ public class ModelMetaVo implements Serializable {
@ApiModelProperty(value = "指标查询参数") @ApiModelProperty(value = "指标查询参数")
private HashMap<String, Object> metricsParams; private HashMap<String, Object> metricsParams;


@ApiModelProperty(value = "实验实例id")
private Integer insId;

@ApiModelProperty(value = "训练任务") @ApiModelProperty(value = "训练任务")
private TrainTaskDepency trainTask; private TrainTaskDepency trainTask;




+ 7
- 0
ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ModelDependency1DaoMapper.xml View File

@@ -60,6 +60,13 @@
order by create_time desc limit 1 order by create_time desc limit 1
</select> </select>


<select id="queryByInsId" resultType="com.ruoyi.platform.domain.ModelDependency1">
select *
from model_dependency1
where JSON_CONTAINS(meta, #{insId})
order by create_time desc limit 1
</select>

<select id="getMeta" resultType="java.lang.String"> <select id="getMeta" resultType="java.lang.String">
select meta from model_dependency1 select meta from model_dependency1
where identifier = #{identifier} where identifier = #{identifier}


Loading…
Cancel
Save