Added function to determine the watts value to consider for each task, depending on weather -classMapWatts was enabled and also weather the workload contained a map of power-class to the watts requirement.

This commit is contained in:
Pradyumna Kaushik 2017-01-28 21:09:43 -05:00
parent e7166420dd
commit ae2e7eb3d7

View file

@ -3,6 +3,9 @@ package schedulers
import (
"fmt"
"log"
"bitbucket.org/sunybingcloud/electron/def"
mesos "github.com/mesos/mesos-go/mesosproto"
"bitbucket.org/sunybingcloud/electron/utilities/offerUtils"
)
func coLocated(tasks map[string]bool) {
@ -13,3 +16,22 @@ func coLocated(tasks map[string]bool) {
fmt.Println("---------------------")
}
/*
Determine the watts value to consider for each task.
This value could either be task.Watts or task.ClassToWatts[<power class>]
If task.ClassToWatts is not present, then return task.Watts (this would be for workloads which don't have classMapWatts)
*/
func wattsToConsider(task def.Task, classMapWatts bool, offer *mesos.Offer) float64 {
if classMapWatts {
// checking if ClassToWatts was present in the workload.
if task.ClassToWatts != nil {
return task.ClassToWatts[offerUtils.PowerClass(offer)]
} else {
return task.Watts
}
} else {
return task.Watts
}
}