From 4df0c08db849e94c3b36bff077c4c48cc5f11ff5 Mon Sep 17 00:00:00 2001 From: Zexi Li Date: Sat, 8 Dec 2018 00:57:23 +0800 Subject: [PATCH] fix: scheduler not mark prepaid host dirty --- pkg/scheduler/algorithm/predicates/resource_type_predicate.go | 2 +- pkg/scheduler/api/sched.go | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/pkg/scheduler/algorithm/predicates/resource_type_predicate.go b/pkg/scheduler/algorithm/predicates/resource_type_predicate.go index 6406186ee4..71ffc20e3f 100644 --- a/pkg/scheduler/algorithm/predicates/resource_type_predicate.go +++ b/pkg/scheduler/algorithm/predicates/resource_type_predicate.go @@ -35,7 +35,7 @@ func (p *ResourceTypePredicate) Execute(u *core.Unit, c core.Candidater) (bool, h.Exclude2("resource_type", hostResType, reqResType) } - if reqResType == models.HostResourceTypePrepaidRecycle { + if hostResType == models.HostResourceTypePrepaidRecycle { if c.GetGuestCount() == 0 { h.SetCapacity(1) } else { diff --git a/pkg/scheduler/api/sched.go b/pkg/scheduler/api/sched.go index ca8634d981..1dbd56ae9e 100644 --- a/pkg/scheduler/api/sched.go +++ b/pkg/scheduler/api/sched.go @@ -13,6 +13,7 @@ import ( o "yunion.io/x/onecloud/cmd/scheduler/options" "yunion.io/x/onecloud/pkg/compute/baremetal" + "yunion.io/x/onecloud/pkg/compute/models" ) type Meta map[string]string @@ -268,7 +269,8 @@ func (s *SchedData) reviseSchedType(sjson *simplejson.Json) error { } func (d *SchedData) SkipDirtyMarkHost() bool { - skipByHypervisor := d.IsPublicCloudProvider() || d.IsContainer || d.Hypervisor == SchedTypeContainer + isSharePublicCloudProvider := d.IsPublicCloudProvider() && (d.ResourceType == "" || d.ResourceType == models.HostResourceTypeShared) + skipByHypervisor := isSharePublicCloudProvider || d.IsContainer || d.Hypervisor == SchedTypeContainer skipByBackup := d.Backup return skipByHypervisor || skipByBackup }