예제 #1
0
        /// <summary>
        /// collectAllocatedInfo - From a single job, collect a rowset of allocated resources and pass it on to core or node sorting
        /// </summary>
        /// <param name="job">ISchedulerJob job to collect allocation history</param>
        private static void collectAllocatedInfo(ISchedulerJob job)
        {
            if (bVerbose)
            {
                Console.WriteLine("Entering collectAllocatedInfo:  job {0} project: {1}", job.Id, job.Project);
            }

            IPropertyIdCollection props = new PropertyIdCollection();

            props.Add(AllocationProperties.NodeName);
            props.Add(AllocationProperties.NodeId);
            props.Add(AllocationProperties.CoreId);
            props.Add(AllocationProperties.StartTime);
            props.Add(AllocationProperties.EndTime);

            // OpenJobAllocationHistory returns information sorted by ascending AllocationProperties.StartTime
            using (ISchedulerRowEnumerator rows = job.OpenJobAllocationHistoryEnumerator(props)) {
                if (bNodesOnly)
                {
                    NodeDuration(rows);
                }
                else
                {
                    CoreDuration(rows);
                }
            }
            return;
        }