mirror of
https://github.com/cirruslabs/orchard.git
synced 2026-10-01 04:22:03 +02:00
* "--scheduler-profile" option to allow different orchestration patterns * API(cluster settings): provide a default value for scheduler profile
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
|
|
}
|