diff --git a/pbs/src/main/java/com/sdm/pbs/model/bo/HpcJobStatusInfo.java b/pbs/src/main/java/com/sdm/pbs/model/bo/HpcJobStatusInfo.java new file mode 100644 index 00000000..a55e97ae --- /dev/null +++ b/pbs/src/main/java/com/sdm/pbs/model/bo/HpcJobStatusInfo.java @@ -0,0 +1,33 @@ +package com.sdm.pbs.model.bo; + +import io.swagger.v3.oas.annotations.media.Schema; + +public class HpcJobStatusInfo { + + @Schema(description = "作业ID") + public String jobId; + + @Schema(description = "作业名称") + public String jobName; + + @Schema(description = "作业状态 1:pending 2:submitting 3:running 4:succeed 5:failed") + public int jobStatus; + + @Schema(description = "作业所占核数") + public int coreNum; + + @Schema(description = "作业占用内存大小") + public int memory; + + @Schema(description = "作业开始时间") + public String startTime; + + @Schema(description = "作业结束时间") + public String endTime; + + @Schema(description = "作业提交时间") + public String submitTime; + + @Schema(description = "作业计算软件") + public String software; +} diff --git a/pbs/src/main/java/com/sdm/pbs/model/bo/HpcNodeInfo.java b/pbs/src/main/java/com/sdm/pbs/model/bo/HpcNodeInfo.java new file mode 100644 index 00000000..d3e44359 --- /dev/null +++ b/pbs/src/main/java/com/sdm/pbs/model/bo/HpcNodeInfo.java @@ -0,0 +1,25 @@ +package com.sdm.pbs.model.bo; + +import io.swagger.v3.oas.annotations.media.Schema; + +import java.util.ArrayList; +import java.util.List; + +public class HpcNodeInfo { + + @Schema(description = "计算节点名称") + public String nodeName; + + @Schema(description = "计算节点状态 0:down 1:running 2:suspend") + public int nodeStatus; + + @Schema(description = "节点总核数") + public int totalCores; + + @Schema(description = "可用核数") + public int freeCores; + + @Schema(description = "已用核数") + public int usedCores; + +} diff --git a/pbs/src/main/java/com/sdm/pbs/model/bo/HpcResouceInfo.java b/pbs/src/main/java/com/sdm/pbs/model/bo/HpcResouceInfo.java new file mode 100644 index 00000000..a371839a --- /dev/null +++ b/pbs/src/main/java/com/sdm/pbs/model/bo/HpcResouceInfo.java @@ -0,0 +1,21 @@ +package com.sdm.pbs.model.bo; + +import io.swagger.v3.oas.annotations.media.Schema; + +import java.util.ArrayList; +import java.util.List; + +public class HpcResouceInfo { + + @Schema(description = "资源总核数") + public int totalCores; + + @Schema(description = "已用核数") + public int usedCores; + + @Schema(description = "空闲核数") + public int freeCores; + + @Schema(description = "节点核数信息") + private List nodeList = new ArrayList<>(); +} diff --git a/pbs/src/main/java/com/sdm/pbs/model/req/SubmitHpcTaskReq.java b/pbs/src/main/java/com/sdm/pbs/model/req/SubmitHpcTaskReq.java new file mode 100644 index 00000000..5dc69fb0 --- /dev/null +++ b/pbs/src/main/java/com/sdm/pbs/model/req/SubmitHpcTaskReq.java @@ -0,0 +1,42 @@ +package com.sdm.pbs.model.req; + +import io.swagger.v3.oas.annotations.media.Schema; + +import java.util.ArrayList; +import java.util.List; + +public class SubmitHpcTaskReq { + + @Schema(description = "计算任务名称") + public String jobName; + + @Schema(description = "计算所需要核数") + public int coreNum; + + @Schema(description = "计算软件") + public String software; + + @Schema(description = "计算任务类型") + public String jobType; + + @Schema(description = "计算任务是否独立存在 0:非独立任务 1:独立任务") + public int independence; + + @Schema(description = "求解文件") + public List inputFiles = new ArrayList<>(); + + @Schema(description = "计算主文件") + public String masterFile; + + @Schema(description = "计算任务所属任务ID") + public String taskId; + + @Schema(description = "计算任务所属任务名称") + public String taskName; + + @Schema(description = "计算任务所属算力ID") + public String runId; + + @Schema(description = "计算任务所属算力名称") + public String runName; +} diff --git a/pbs/src/main/java/com/sdm/pbs/service/IPbsService.java b/pbs/src/main/java/com/sdm/pbs/service/IPbsService.java new file mode 100644 index 00000000..7998e5b9 --- /dev/null +++ b/pbs/src/main/java/com/sdm/pbs/service/IPbsService.java @@ -0,0 +1,55 @@ +package com.sdm.pbs.service; + +import com.sdm.common.common.SdmResponse; +import com.sdm.pbs.model.bo.FileBaseInfo; +import com.sdm.pbs.model.bo.HpcJobStatusInfo; +import com.sdm.pbs.model.bo.HpcResouceInfo; +import com.sdm.pbs.model.req.SubmitHpcTaskReq; + +import java.util.List; + +public interface IPbsService { + + /** + * 查询HPC资源信息 + * @return + */ + SdmResponse queryHpcResource(); + + /** + * 提交HPC作业 + * @param req + * @return 返回jobId + */ + SdmResponse submitHpcJob(SubmitHpcTaskReq req); + + /** + * 停止HPC作业 + * @param jobId + * @return + */ + SdmResponse stopHpcJob(String jobId); + + + /** + * 作业状态查询 + * @param jobId + * @return + */ + SdmResponse getJobStatus(String jobId); + + /** + * 获取计算文件结果目录文件信息 + * @param jobId + * @return + */ + SdmResponse> getJobResultFiles(String jobId); + + /** + * 下载计算结果文件 + * @param jobId + * @param fileName + * @return + */ + SdmResponse downloadFile(String jobId, String fileName); +}