From 4257263097fc5e71ee15a4e24611852f4e9a599b Mon Sep 17 00:00:00 2001 From: Zexi Date: Wed, 12 Jun 2019 11:33:01 +0800 Subject: [PATCH] scheduler: support sharable candidate --- .../algorithm/predicates/domain_predicate.go | 2 +- pkg/scheduler/cache/candidate/base.go | 12 ++++++++++++ pkg/scheduler/core/types.go | 1 + 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/pkg/scheduler/algorithm/predicates/domain_predicate.go b/pkg/scheduler/algorithm/predicates/domain_predicate.go index 899001c65b..4918add2fc 100644 --- a/pkg/scheduler/algorithm/predicates/domain_predicate.go +++ b/pkg/scheduler/algorithm/predicates/domain_predicate.go @@ -20,7 +20,7 @@ func (p *DomainPredicate) Execute(u *core.Unit, c core.Candidater) (bool, []core h := NewPredicateHelper(p, u, c) getter := c.Getter() cloudprovider := getter.Cloudprovider() - if cloudprovider == nil { + if cloudprovider == nil || getter.IsPublic() { return h.GetResult() } domainId := getter.DomainId() diff --git a/pkg/scheduler/cache/candidate/base.go b/pkg/scheduler/cache/candidate/base.go index fb9b94d855..c39bae63b3 100644 --- a/pkg/scheduler/cache/candidate/base.go +++ b/pkg/scheduler/cache/candidate/base.go @@ -67,6 +67,18 @@ func (b baseHostGetter) Cloudprovider() *computemodels.SCloudprovider { return b.h.Cloudprovider } +func (b baseHostGetter) IsPublic() bool { + provider := b.Cloudprovider() + if provider == nil { + return false + } + account := provider.GetCloudaccount() + if account == nil { + return false + } + return account.GetIsPublic() +} + func (b baseHostGetter) DomainId() string { provider := b.Cloudprovider() if provider == nil { diff --git a/pkg/scheduler/core/types.go b/pkg/scheduler/core/types.go index 1dac5bf544..11a38697b0 100644 --- a/pkg/scheduler/core/types.go +++ b/pkg/scheduler/core/types.go @@ -57,6 +57,7 @@ type CandidatePropertyGetter interface { Name() string Zone() *computemodels.SZone Cloudprovider() *computemodels.SCloudprovider + IsPublic() bool DomainId() string Region() *computemodels.SCloudregion HostType() string