/// <summary> /// Convert Task To TaskInfo /// </summary> /// <param name="jobDTO">Scheduler job information</param> /// <returns></returns> public override SubmittedTaskInfo ConvertTaskToTaskInfo(ISchedulerJobInfo jobDTO) { var taskInfo = new SubmittedTaskInfo(); taskInfo.ScheduledJobId = jobDTO.SchedulerJobId.ToString(); taskInfo.Name = jobDTO.Name; taskInfo.State = jobDTO.TaskState; taskInfo.StartTime = jobDTO.StartTime; taskInfo.EndTime = jobDTO.EndTime; taskInfo.AllocatedTime = jobDTO.AllocatedTime.TotalSeconds; taskInfo.TaskAllocationNodes = taskInfo.TaskAllocationNodes.Select(s => new SubmittedTaskAllocationNodeInfo { AllocationNodeId = s.ToString(), SubmittedTaskInfoId = long.Parse(taskInfo.Name) }) .ToList(); taskInfo.AllParameters = jobDTO.SchedulerResponseParameters; return(taskInfo); }
/// <summary> /// Convert HPC task information from IScheduler job information object /// </summary> /// <param name="jobInfo">Scheduler job information</param> /// <returns></returns> public override SubmittedTaskInfo ConvertTaskToTaskInfo(ISchedulerJobInfo jobInfo) { PbsProJobInfo obj = (PbsProJobInfo)jobInfo; return(new SubmittedTaskInfo() { ScheduledJobId = obj.SchedulerJobId, Name = obj.Name, StartTime = obj.StartTime, EndTime = obj.StartTime.HasValue && obj.TaskState >= TaskState.Finished ? obj.StartTime.Value.AddSeconds(obj.RunTime.TotalSeconds) : null, AllocatedTime = Math.Round(obj.RunTime.TotalSeconds, 3), AllocatedCores = obj.UsedCores, State = obj.TaskState, TaskAllocationNodes = obj.AllocatedNodes?.Select(s => new SubmittedTaskAllocationNodeInfo() { AllocationNodeId = s, SubmittedTaskInfoId = long.Parse(obj.Name) }) .ToList(), ErrorMessage = default,
/// <summary> /// Convert HPC task information from IScheduler job information object /// </summary> /// <param name="jobInfo">Scheduler job information</param> /// <returns></returns> public abstract SubmittedTaskInfo ConvertTaskToTaskInfo(ISchedulerJobInfo jobInfo);