From ef839c530d41f8c016c7c7e7e9d6370e187a53bb Mon Sep 17 00:00:00 2001 From: Pradyumna Kaushik Date: Thu, 1 Dec 2016 18:31:49 -0500 Subject: [PATCH] Fixed corner case bug with sorting of tasks. Not sorting if there are no more tasks to schedule. --- schedulers/proactiveclusterwidecappingranked.go | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/schedulers/proactiveclusterwidecappingranked.go b/schedulers/proactiveclusterwidecappingranked.go index d2565f3..963de40 100644 --- a/schedulers/proactiveclusterwidecappingranked.go +++ b/schedulers/proactiveclusterwidecappingranked.go @@ -244,7 +244,7 @@ func (s *ProactiveClusterwideCapRanked) stopRecapping() { } } -func (s *ProactiveClusterwideCapRanked) ResouceOffers(driver sched.SchedulerDriver, offers []*mesos.Offer) { +func (s *ProactiveClusterwideCapRanked) ResourceOffers(driver sched.SchedulerDriver, offers []*mesos.Offer) { log.Printf("Received %d resource offers", len(offers)) // retrieving the available power for all the hosts in the offers. @@ -262,14 +262,15 @@ func (s *ProactiveClusterwideCapRanked) ResouceOffers(driver sched.SchedulerDriv } // sorting the tasks in ascending order of watts. - s.capper.sortTasks(&s.tasks) - // displaying the ranked tasks. - log.Println("The ranked tasks are:\n---------------------\n\t[") - for rank, task := range s.tasks { - log.Printf("\t\t%d: %s\n", rank+1, task.TaskID) + if (len(s.tasks) > 0) { + s.capper.sortTasks(&s.tasks) + // calculating the total number of tasks ranked. + numberOfRankedTasks := 0 + for _, task := range s.tasks { + numberOfRankedTasks += *task.Instances + } + log.Printf("Ranked %d tasks in ascending order of tasks.", numberOfRankedTasks) } - log.Println("\t]") - for _, offer := range offers { select { case <-s.Shutdown: