moved longFilter and defaultFilter to utilities/mesosUtils and OfferAgg and OffersSorter to utilities/offerUtils

This commit is contained in:
Pradyumna Kaushik 2017-01-28 19:36:13 -05:00
parent 44ce511eb1
commit 354e89cac7

View file

@ -2,51 +2,9 @@ package schedulers
import (
"fmt"
"github.com/golang/protobuf/proto"
mesos "github.com/mesos/mesos-go/mesosproto"
"log"
)
var (
defaultFilter = &mesos.Filters{RefuseSeconds: proto.Float64(1)}
longFilter = &mesos.Filters{RefuseSeconds: proto.Float64(1000)}
)
func OfferAgg(offer *mesos.Offer) (float64, float64, float64) {
var cpus, mem, watts float64
for _, resource := range offer.Resources {
switch resource.GetName() {
case "cpus":
cpus += *resource.GetScalar().Value
case "mem":
mem += *resource.GetScalar().Value
case "watts":
watts += *resource.GetScalar().Value
}
}
return cpus, mem, watts
}
type OffersSorter []*mesos.Offer
func (offersSorter OffersSorter) Len() int {
return len(offersSorter)
}
func (offersSorter OffersSorter) Swap(i, j int) {
offersSorter[i], offersSorter[j] = offersSorter[j], offersSorter[i]
}
func (offersSorter OffersSorter) Less(i, j int) bool {
// getting CPU resource availability of offersSorter[i]
cpu1, _, _ := OfferAgg(offersSorter[i])
// getting CPU resource availability of offersSorter[j]
cpu2, _, _ := OfferAgg(offersSorter[j])
return cpu1 <= cpu2
}
func coLocated(tasks map[string]bool) {
for task := range tasks {