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:
parent
e7166420dd
commit
ae2e7eb3d7
1 changed files with 22 additions and 0 deletions
|
@ -3,6 +3,9 @@ package schedulers
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"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) {
|
func coLocated(tasks map[string]bool) {
|
||||||
|
@ -13,3 +16,22 @@ func coLocated(tasks map[string]bool) {
|
||||||
|
|
||||||
fmt.Println("---------------------")
|
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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Reference in a new issue