예제 #1
0
        /// <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);
        }
예제 #2
0
        /// <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,
예제 #3
0
 /// <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);