| @@ -91,7 +91,7 @@ public class DatasetController { | |||
| * @return 单条数据 | |||
| */ | |||
| @GetMapping("{id}") | |||
| @ApiOperation("根据id查询数据集") | |||
| @ApiOperation("根据数据集id查询数据集") | |||
| public AjaxResult queryById(@PathVariable("id") Integer id) { | |||
| return AjaxResult.success(this.datasetService.queryById(id)); | |||
| } | |||
| @@ -148,7 +148,7 @@ public class DatasetController { | |||
| * @return 删除是否成功 | |||
| */ | |||
| @DeleteMapping({"{id}"}) | |||
| @ApiOperation("删除数据集") | |||
| @ApiOperation("根据id删除数据集") | |||
| public AjaxResult deleteById(@PathVariable("id") Integer id) { | |||
| return AjaxResult.success(this.datasetService.removeById(id)); | |||
| } | |||
| @@ -2,6 +2,7 @@ package com.ruoyi.platform.domain; | |||
| import com.fasterxml.jackson.databind.PropertyNamingStrategy; | |||
| import com.fasterxml.jackson.databind.annotation.JsonNaming; | |||
| import io.swagger.annotations.ApiModelProperty; | |||
| import java.util.Date; | |||
| import java.io.Serializable; | |||
| @@ -18,40 +19,34 @@ public class AssetIcon implements Serializable { | |||
| /** | |||
| * 主键 | |||
| */ | |||
| private Integer id; | |||
| /** | |||
| * 资产图标名称 | |||
| */ | |||
| @ApiModelProperty(value = "资产ID") | |||
| private Integer id; | |||
| @ApiModelProperty(value = "资产图标名称") | |||
| private String name; | |||
| /** | |||
| * 分类id | |||
| */ | |||
| @ApiModelProperty(value = "分类ID") | |||
| private Integer categoryId; | |||
| /** | |||
| * 路径 | |||
| */ | |||
| @ApiModelProperty(value = "路径") | |||
| private String path; | |||
| /** | |||
| * 描述 | |||
| */ | |||
| @ApiModelProperty(value = "描述") | |||
| private String description; | |||
| /** | |||
| * 创建者 | |||
| */ | |||
| @ApiModelProperty(value = "创建者") | |||
| private String createBy; | |||
| @ApiModelProperty(value = "创建时间") | |||
| private Date createTime; | |||
| /** | |||
| * 更新者 | |||
| */ | |||
| @ApiModelProperty(value = "更新者") | |||
| private String updateBy; | |||
| /** | |||
| * 更新时间 | |||
| */ | |||
| @ApiModelProperty(value = "更新时间") | |||
| private Date updateTime; | |||
| /** | |||
| * 0失效,1生效 | |||
| */ | |||
| @ApiModelProperty(value = "状态,0失效,1生效") | |||
| private Integer state; | |||
| @@ -20,108 +20,108 @@ public class Component implements Serializable { | |||
| /** | |||
| * 主键 | |||
| */ | |||
| @ApiModelProperty(name = "id") | |||
| @ApiModelProperty(name = "id", value = "主键") | |||
| private Integer id; | |||
| /** | |||
| * 类别ID,数据字典配置 | |||
| */ | |||
| @ApiModelProperty(name = "category_id") | |||
| @ApiModelProperty(name = "category_id" ,value = "类别id") | |||
| private Integer categoryId; | |||
| /** | |||
| * 组件name | |||
| */ | |||
| @ApiModelProperty(name = "category_name") | |||
| @ApiModelProperty(name = "category_name", value = "组件名称") | |||
| private String componentName; | |||
| /** | |||
| * 组件面板名 | |||
| */ | |||
| @ApiModelProperty(name = "component_label") | |||
| @ApiModelProperty(name = "component_label" , value = "组件面板名" ) | |||
| private String componentLabel; | |||
| /** | |||
| * 镜像 | |||
| */ | |||
| @JsonProperty("image") | |||
| @ApiModelProperty(name = "image") | |||
| @ApiModelProperty(name = "image" ,value = "镜像") | |||
| private String images; | |||
| /** | |||
| * 工作目录 | |||
| */ | |||
| @ApiModelProperty(name = "working_directory") | |||
| @ApiModelProperty(name = "working_directory" , value = "工作目录") | |||
| private String workingDirectory; | |||
| /** | |||
| * 启动命令 | |||
| */ | |||
| @ApiModelProperty(name = "command") | |||
| @ApiModelProperty(name = "command" , value = "启动命令") | |||
| private String command; | |||
| /** | |||
| * 环境变量 | |||
| */ | |||
| @JsonProperty("env_variables") | |||
| @ApiModelProperty(name = "env_variables") | |||
| @ApiModelProperty(name = "env_variables", value = "环境变量") | |||
| private String envVirables; | |||
| /** | |||
| * 资源规格 | |||
| */ | |||
| @ApiModelProperty(name = "resources_standard") | |||
| @ApiModelProperty(name = "resources_standard" , value = "资源规格") | |||
| private String resourcesStandard; | |||
| /** | |||
| * 控制策略 | |||
| */ | |||
| @ApiModelProperty(name = "control_strategy") | |||
| @ApiModelProperty(name = "control_strategy" ,value = "控制策略") | |||
| private String controlStrategy; | |||
| /** | |||
| * 挂载路径 | |||
| */ | |||
| @ApiModelProperty(name = "mount_path") | |||
| @ApiModelProperty(name = "mount_path" , value = "挂载路径") | |||
| private String mountPath; | |||
| /** | |||
| * 输入参数 | |||
| */ | |||
| @ApiModelProperty(name = "in_parameters") | |||
| @ApiModelProperty(name = "in_parameters" ,value = "输入参数") | |||
| private String inParameters; | |||
| /** | |||
| * 输出参数 | |||
| */ | |||
| @ApiModelProperty(name = "out_parameters") | |||
| @ApiModelProperty(name = "out_parameters" ,value = "输出参数") | |||
| private String outParameters; | |||
| /** | |||
| * 描述 | |||
| */ | |||
| @ApiModelProperty(name = "description") | |||
| @ApiModelProperty(name = "description" , value = "描述") | |||
| private String description; | |||
| /** | |||
| * 图标路径 | |||
| */ | |||
| @ApiModelProperty(name = "icon_path") | |||
| @ApiModelProperty(name = "icon_path" ,value = "图标路径") | |||
| private String iconPath; | |||
| /** | |||
| * 创建者 | |||
| */ | |||
| //@JsonProperty("creater") | |||
| @ApiModelProperty(name = "create_by") | |||
| @ApiModelProperty(name = "create_by" ,value = "创建者") | |||
| private String createBy; | |||
| /** | |||
| * 创建时间 | |||
| */ | |||
| @ApiModelProperty(name = "create_time") | |||
| @ApiModelProperty(name = "create_time" , value = "创建时间") | |||
| private Date createTime; | |||
| /** | |||
| * 更新者 | |||
| */ | |||
| //@JsonProperty("modify_by") | |||
| @ApiModelProperty(name = "update_by") | |||
| @ApiModelProperty(name = "update_by" , value = "更新者") | |||
| private String updateBy; | |||
| /** | |||
| * 更新时间 | |||
| */ | |||
| @ApiModelProperty(name = "update_time") | |||
| @ApiModelProperty(name = "update_time" , value = "更新时间") | |||
| private Date updateTime; | |||
| /** | |||
| * 0,失效 1生效 | |||
| */ | |||
| @ApiModelProperty(name = "state") | |||
| @ApiModelProperty(name = "state" , value = "状态") | |||
| private Integer state; | |||
| public Integer getId() { | |||
| @@ -22,53 +22,58 @@ public class Dataset implements Serializable { | |||
| private Integer id; | |||
| @CheckDuplicate | |||
| @ApiModelProperty(name = "name") | |||
| @ApiModelProperty(value = "名称") | |||
| private String name; | |||
| @ApiModelProperty(name = "description") | |||
| @ApiModelProperty(value = "描述") | |||
| private String description; | |||
| /** | |||
| * 是否公开: 1公开,0私有 | |||
| */ | |||
| @ApiModelProperty(name = "available_range") | |||
| @ApiModelProperty(value = "是否公开:1公开,0私有") | |||
| private int availableRange; | |||
| /** | |||
| * 数据集类型 | |||
| */ | |||
| @ApiModelProperty(name = "data_type") | |||
| @ApiModelProperty(value = "数据集类型") | |||
| private String dataType; | |||
| /** | |||
| * 数据集tag | |||
| * 数据集标签 | |||
| */ | |||
| @ApiModelProperty(name = "data_tag") | |||
| @ApiModelProperty(value = "数据集标签") | |||
| private String dataTag; | |||
| /** | |||
| * 创建者 | |||
| */ | |||
| @ApiModelProperty(name = "create_by") | |||
| @ApiModelProperty(value = "创建者") | |||
| private String createBy; | |||
| /** | |||
| * 创建时间 | |||
| */ | |||
| @ApiModelProperty(name = "create_time") | |||
| @ApiModelProperty(value = "创建时间") | |||
| private Date createTime; | |||
| /** | |||
| * 更新者 | |||
| */ | |||
| @ApiModelProperty(name = "update_by") | |||
| @ApiModelProperty(value = "更新者") | |||
| private String updateBy; | |||
| /** | |||
| * 更新时间 | |||
| */ | |||
| @ApiModelProperty(name = "update_time") | |||
| @ApiModelProperty(value = "更新时间") | |||
| private Date updateTime; | |||
| /** | |||
| * 0,失效 1生效 | |||
| /** | |||
| * 状态,0失效,1生效 | |||
| */ | |||
| @ApiModelProperty(name = "state") | |||
| @ApiModelProperty(value = "状态:0失效,1生效") | |||
| private Integer state; | |||
| @@ -22,66 +22,46 @@ public class DatasetVersion implements Serializable { | |||
| */ | |||
| @ApiModelProperty(name = "id") | |||
| private Integer id; | |||
| @ApiModelProperty(name = "dataset_id") | |||
| @ApiModelProperty(value = "数据集ID") | |||
| private Integer datasetId; | |||
| /** | |||
| * 版本 | |||
| */ | |||
| @ApiModelProperty(name = "version") | |||
| @ApiModelProperty(value = "版本") | |||
| private String version; | |||
| /** | |||
| * 数据集存储地址 | |||
| */ | |||
| @ApiModelProperty(name = "url") | |||
| @ApiModelProperty(value = "数据集存储地址") | |||
| @CheckDuplicate | |||
| private String url; | |||
| /** | |||
| * 文件名 | |||
| */ | |||
| @ApiModelProperty(name = "file_name") | |||
| @ApiModelProperty(value = "文件名") | |||
| private String fileName; | |||
| /** | |||
| * 文件大小 | |||
| */ | |||
| @ApiModelProperty(name = "file_size") | |||
| @ApiModelProperty(value = "文件大小") | |||
| private String fileSize; | |||
| /** | |||
| * 可用集群 | |||
| */ | |||
| @ApiModelProperty(name = "available_cluster") | |||
| @ApiModelProperty(value = "可用集群") | |||
| private String availableCluster; | |||
| /** | |||
| * 状态 | |||
| */ | |||
| @ApiModelProperty(name = "status") | |||
| @ApiModelProperty(value = "状态") | |||
| private Integer status; | |||
| /** | |||
| * 创建者 | |||
| */ | |||
| @ApiModelProperty(name = "create_by") | |||
| @ApiModelProperty(value = "创建者") | |||
| private String createBy; | |||
| /** | |||
| * 创建时间 | |||
| */ | |||
| @ApiModelProperty(name = "create_time") | |||
| @ApiModelProperty(value = "创建时间") | |||
| private Date createTime; | |||
| /** | |||
| * 更新者 | |||
| */ | |||
| @ApiModelProperty(name = "update_by") | |||
| @ApiModelProperty(value = "更新者") | |||
| private String updateBy; | |||
| /** | |||
| * 更新时间 | |||
| */ | |||
| @ApiModelProperty(name = "update_time") | |||
| @ApiModelProperty(value = "更新时间") | |||
| private Date updateTime; | |||
| /** | |||
| * 0失效,1生效 | |||
| */ | |||
| @ApiModelProperty(name = "state") | |||
| @ApiModelProperty(value = "状态:0失效,1生效") | |||
| private Integer state; | |||
| public Integer getId() { | |||
| return id; | |||
| } | |||
| @@ -25,46 +25,43 @@ import java.util.List; | |||
| @ApiModel("实验对象") | |||
| public class Experiment implements Serializable { | |||
| private static final long serialVersionUID = 409135817108439880L; | |||
| // @ApiModelProperty(name = "id") | |||
| @ApiModelProperty(value = "主键") | |||
| private Integer id; | |||
| // @ApiModelProperty(name = "name") | |||
| @ApiModelProperty(value = "名称") | |||
| private String name; | |||
| // @ApiModelProperty(name = "workflow_id") | |||
| @ApiModelProperty(value = "工作流ID") | |||
| private Long workflowId; | |||
| /** | |||
| * 全局参数 | |||
| */ | |||
| @ApiModelProperty(name = "global_param") | |||
| @ApiModelProperty(value = "全局参数,以JSON字符串格式存储") | |||
| @JsonRawValue | |||
| private String globalParam; | |||
| @ApiModelProperty(value = "状态列表") | |||
| private String statusList; | |||
| /** | |||
| * 简介 | |||
| */ | |||
| @ApiModelProperty(name = "description") | |||
| @ApiModelProperty(value = "简介") | |||
| private String description; | |||
| /** | |||
| * 创建者 | |||
| */ | |||
| @ApiModelProperty(value = "创建者") | |||
| private String createBy; | |||
| /** | |||
| * 创建时间 | |||
| */ | |||
| @ApiModelProperty(value = "创建时间") | |||
| private Date createTime; | |||
| /** | |||
| * 更新者 | |||
| */ | |||
| @ApiModelProperty(value = "更新者") | |||
| private String updateBy; | |||
| /** | |||
| * 更新时间 | |||
| */ | |||
| @ApiModelProperty(value = "更新时间") | |||
| private Date updateTime; | |||
| /** | |||
| * 0,失效 1生效 | |||
| */ | |||
| @ApiModelProperty(value = "状态:0失效,1生效") | |||
| private Integer state; | |||
| @ApiModelProperty(value = "对应的实例列表") | |||
| private List<ExperimentIns> experimentInsList; | |||
| @ApiModelProperty(value = "对应的流水线名称") | |||
| private String workflowName; | |||
| public String getName() { | |||
| return name; | |||
| @@ -24,79 +24,53 @@ public class ExperimentIns implements Serializable { | |||
| /** | |||
| * 实验ID | |||
| */ | |||
| @ApiModelProperty(name = "experiment_id") | |||
| @ApiModelProperty(value = "实验ID") | |||
| private Integer experimentId; | |||
| /** | |||
| * argo返回name | |||
| */ | |||
| @ApiModelProperty(name = "argo_ins_name") | |||
| @ApiModelProperty(value = "Argo实例名称") | |||
| private String argoInsName; | |||
| /** | |||
| * argo返回命名空间 | |||
| */ | |||
| @ApiModelProperty(name = "argo_ins_ns") | |||
| @ApiModelProperty(value = "Argo命名空间") | |||
| private String argoInsNs; | |||
| /** | |||
| * 实例运行状态 | |||
| */ | |||
| @ApiModelProperty(name = "status") | |||
| @ApiModelProperty(value = "实例运行状态") | |||
| private String status; | |||
| @ApiModelProperty(name = "nodes_status") | |||
| private String nodesStatus; | |||
| @ApiModelProperty(name = "nodes_result") | |||
| private String nodesResult; | |||
| @ApiModelProperty(name = "nodes_logs") | |||
| private String nodesLogs; | |||
| @ApiModelProperty(value = "节点状态") | |||
| private String nodesStatus; | |||
| @ApiModelProperty(value = "节点结果") | |||
| private String nodesResult; | |||
| /** | |||
| * 实验实例全局参数 | |||
| */ | |||
| // @ApiModelProperty(name = "global_param") | |||
| @ApiModelProperty(value = "节点日志") | |||
| private String nodesLogs; | |||
| @ApiModelProperty(value = "实验实例全局参数", notes = "以JSON字符串格式存储") | |||
| @JsonRawValue | |||
| private String globalParam; | |||
| /** | |||
| * 开始时间 | |||
| */ | |||
| @ApiModelProperty(name = "start_time") | |||
| @ApiModelProperty(value = "开始时间") | |||
| private Date startTime; | |||
| /** | |||
| * 结束时间 | |||
| */ | |||
| @ApiModelProperty(name = "finish_time") | |||
| @ApiModelProperty(value = "结束时间") | |||
| private Date finishTime; | |||
| /** | |||
| * 创建者 | |||
| */ | |||
| @ApiModelProperty(name = "create_by") | |||
| @ApiModelProperty(value = "创建者") | |||
| private String createBy; | |||
| /** | |||
| * 创建时间 | |||
| */ | |||
| @ApiModelProperty(name = "create_time") | |||
| @ApiModelProperty(value = "创建时间") | |||
| private Date createTime; | |||
| /** | |||
| * 更新者 | |||
| */ | |||
| @ApiModelProperty(name = "update_by") | |||
| @ApiModelProperty(value = "更新者") | |||
| private String updateBy; | |||
| /** | |||
| * 更新时间 | |||
| */ | |||
| @ApiModelProperty(name = "update_time") | |||
| @ApiModelProperty(value = "更新时间") | |||
| private Date updateTime; | |||
| /** | |||
| * 0,失效 1生效 | |||
| */ | |||
| @ApiModelProperty(name = "state") | |||
| @ApiModelProperty(value = "状态:0失效,1生效") | |||
| private Integer state; | |||
| public ExperimentIns() { | |||
| } | |||
| @@ -90,5 +90,7 @@ public interface ExperimentInsDao { | |||
| List<ExperimentIns> getByExperimentId(Integer experimentId); | |||
| List<ExperimentIns> queryByExperiment(@Param("experimentIns") ExperimentIns experimentIns); | |||
| List<ExperimentIns> queryByExperimentId(Integer id); | |||
| } | |||
| @@ -95,7 +95,7 @@ public class ExperimentInsServiceImpl implements ExperimentInsService { | |||
| //搞个标记,当状态改变才去改表 | |||
| boolean flag = false; | |||
| List<ExperimentIns> result = new ArrayList<ExperimentIns>(); | |||
| if (experimentInsList!=null&& experimentInsList.size()>0) { | |||
| if (experimentInsList!=null && experimentInsList.size()>0) { | |||
| for (ExperimentIns experimentIns : experimentInsList) { | |||
| //当原本状态为null或非终止态时才调用argo接口 | |||
| if (experimentIns != null && (StringUtils.isEmpty(experimentIns.getStatus())) || !isTerminatedState(experimentIns)) { | |||
| @@ -111,11 +111,9 @@ public class ExperimentInsServiceImpl implements ExperimentInsService { | |||
| } | |||
| //新增查询tensorBoard容器状态 | |||
| result.add(experimentIns); | |||
| } | |||
| } | |||
| if (flag) { | |||
| List<String> statusList = new ArrayList<String>(); | |||
| // 更新实验状态列表 | |||
| @@ -231,9 +229,7 @@ public class ExperimentInsServiceImpl implements ExperimentInsService { | |||
| @Override | |||
| public List<ExperimentIns> queryByExperimentId(Integer id) { | |||
| ExperimentIns experimentIns = new ExperimentIns(); | |||
| experimentIns.setExperimentId(id); | |||
| return experimentInsDao.queryByExperiment(experimentIns); | |||
| return experimentInsDao.queryByExperimentId(id); | |||
| } | |||
| @Override | |||
| @@ -226,9 +226,10 @@ public class ExperimentServiceImpl implements ExperimentService { | |||
| // 组装运行接口json | |||
| Map<String, Object> runReqMap = new HashMap<>(); | |||
| runReqMap.put("data", converMap.get("data")); | |||
| //这里全局参数是一个json数组,需要转换成一个list<Map> | |||
| List<Map<String, Object>> params = JacksonUtil.parseJSONStr2MapList(StringUtils.isEmpty(experiment.getGlobalParam()) ? "[]" : experiment.getGlobalParam()); | |||
| runReqMap.put("params", params); | |||
| //runReqMap.put("params", JsonUtils.jsonToMap(StringUtils.isEmpty(experiment.getGlobalParam())?"{}":experiment.getGlobalParam())); | |||
| runReqMap.put("experiment", new HashMap<String, Object>().put("name", "experiment-"+experiment.getId())); | |||
| Map<String ,Object> output = (Map<String, Object>) converMap.get("output"); | |||
| @@ -254,6 +255,8 @@ public class ExperimentServiceImpl implements ExperimentService { | |||
| experimentIns.setArgoInsNs((String) metadata.get("namespace")); | |||
| experimentIns.setArgoInsName((String) metadata.get("name")); | |||
| //传入实验全局参数 | |||
| experimentIns.setGlobalParam(experiment.getGlobalParam()); | |||
| //替换argoInsName | |||
| @@ -265,10 +268,9 @@ public class ExperimentServiceImpl implements ExperimentService { | |||
| }catch (Exception e){ | |||
| throw new RuntimeException(e); | |||
| } | |||
| List<ExperimentIns> experimentIns = experimentInsService.queryByExperimentId(id); | |||
| List<ExperimentIns> updatedExperimentInsList = experimentInsService.getByExperimentId(id); | |||
| experiment.setExperimentInsList(experimentIns); | |||
| experiment.setExperimentInsList(updatedExperimentInsList); | |||
| return experiment; | |||
| } | |||
| @@ -11,6 +11,7 @@ | |||
| <result property="nodesStatus" column="nodes_status" jdbcType="VARCHAR"/> | |||
| <result property="nodesResult" column="nodes_result" jdbcType="VARCHAR"/> | |||
| <result property="nodesLogs" column="nodes_logs" jdbcType="VARCHAR"/> | |||
| <result property="globalParam" column="global_param" jdbcType="VARCHAR"/> | |||
| <result property="startTime" column="start_time" jdbcType="TIMESTAMP"/> | |||
| <result property="finishTime" column="finish_time" jdbcType="TIMESTAMP"/> | |||
| <result property="createBy" column="create_by" jdbcType="VARCHAR"/> | |||
| @@ -31,7 +32,7 @@ | |||
| <!--查询列表--> | |||
| <select id="getByExperimentId" resultMap="ExperimentInsMap"> | |||
| select id, experiment_id, argo_ins_name, argo_ins_ns, status, nodes_status,nodes_result, nodes_logs,global_param, start_time, finish_time, create_by, create_time, update_by, update_time, state | |||
| select id, experiment_id, argo_ins_name, argo_ins_ns, status, nodes_status,nodes_result, nodes_logs, global_param, start_time, finish_time, create_by, create_time, update_by, update_time, state | |||
| from experiment_ins | |||
| where experiment_id = #{experiment_id} and state = 1 | |||
| order by create_time DESC | |||
| @@ -195,6 +196,12 @@ | |||
| </where> | |||
| </select> | |||
| <select id="queryByExperimentId" resultMap="ExperimentInsMap"> | |||
| select id, experiment_id, argo_ins_name, argo_ins_ns, status, nodes_status,nodes_result, nodes_logs, global_param, start_time, finish_time, create_by, create_time, update_by, update_time, state | |||
| from experiment_ins | |||
| where experiment_id = #{id} and state = 1 | |||
| </select> | |||
| <!--新增所有列--> | |||
| <insert id="insert" keyProperty="id" useGeneratedKeys="true"> | |||
| insert into experiment_ins(experiment_id,argo_ins_name,argo_ins_ns,status,nodes_status,nodes_result,nodes_logs,global_param,start_time,finish_time,create_by,create_time,update_by,update_time,state) | |||