38 lines
730 B
Go
38 lines
730 B
Go
package scheduler
|
|
|
|
import v1 "github.com/cirruslabs/orchard/pkg/resource/v1"
|
|
|
|
type WorkerInfo struct {
|
|
ResourcesUsed v1.Resources
|
|
NumRunningVMs int
|
|
}
|
|
|
|
type WorkerInfos map[string]WorkerInfo
|
|
|
|
func (workerInfos WorkerInfos) AddVM(name string, resourcesUsed v1.Resources) {
|
|
workerInfo, ok := workerInfos[name]
|
|
if !ok {
|
|
workerInfo = WorkerInfo{
|
|
ResourcesUsed: v1.Resources{},
|
|
}
|
|
}
|
|
|
|
workerInfo.ResourcesUsed.Add(resourcesUsed)
|
|
workerInfo.NumRunningVMs++
|
|
|
|
workerInfos[name] = workerInfo
|
|
}
|
|
|
|
func (workerInfos WorkerInfos) Get(name string) WorkerInfo {
|
|
workerInfo, ok := workerInfos[name]
|
|
if !ok {
|
|
workerInfo = WorkerInfo{
|
|
ResourcesUsed: v1.Resources{},
|
|
}
|
|
|
|
workerInfos[name] = workerInfo
|
|
}
|
|
|
|
return workerInfo
|
|
}
|