diff --git a/pkg/scheduler/cache/candidate/base.go b/pkg/scheduler/cache/candidate/base.go index c123272524..40ab5f2e2f 100644 --- a/pkg/scheduler/cache/candidate/base.go +++ b/pkg/scheduler/cache/candidate/base.go @@ -30,6 +30,7 @@ import ( computemodels "yunion.io/x/onecloud/pkg/compute/models" "yunion.io/x/onecloud/pkg/scheduler/api" "yunion.io/x/onecloud/pkg/scheduler/core" + "yunion.io/x/onecloud/pkg/scheduler/data_manager/sku" schedmodels "yunion.io/x/onecloud/pkg/scheduler/models" ) @@ -124,6 +125,11 @@ func (b baseHostGetter) HostSchedtags() []computemodels.SSchedtag { return b.h.HostSchedtags } +func (b baseHostGetter) Sku(instanceType string) *sku.ServerSku { + zone := b.Zone() + return sku.GetByZone(instanceType, zone.GetId()) +} + func (b baseHostGetter) Storages() []*api.CandidateStorage { return b.h.Storages } diff --git a/pkg/scheduler/core/types.go b/pkg/scheduler/core/types.go index 3258fc5914..d4edd9004a 100644 --- a/pkg/scheduler/core/types.go +++ b/pkg/scheduler/core/types.go @@ -28,6 +28,7 @@ import ( computemodels "yunion.io/x/onecloud/pkg/compute/models" "yunion.io/x/onecloud/pkg/scheduler/api" "yunion.io/x/onecloud/pkg/scheduler/core/score" + "yunion.io/x/onecloud/pkg/scheduler/data_manager/sku" schedmodels "yunion.io/x/onecloud/pkg/scheduler/models" ) @@ -74,6 +75,7 @@ type CandidatePropertyGetter interface { Region() *computemodels.SCloudregion HostType() string HostSchedtags() []computemodels.SSchedtag + Sku(string) *sku.ServerSku Storages() []*api.CandidateStorage Networks() []*api.CandidateNetwork OvnCapable() bool