scheduler: add domain filter

This commit is contained in:
Zexi
2019-06-10 19:41:16 +08:00
parent bef1848357
commit 06f1303f54
3 changed files with 32 additions and 4 deletions
@@ -0,0 +1,31 @@
package predicates
import (
"yunion.io/x/onecloud/pkg/scheduler/core"
)
type DomainPredicate struct {
BasePredicate
}
func (p *DomainPredicate) Name() string {
return "host_domain"
}
func (p *DomainPredicate) Clone() core.FitPredicate {
return &DomainPredicate{}
}
func (p *DomainPredicate) Execute(u *core.Unit, c core.Candidater) (bool, []core.PredicateFailureReason, error) {
h := NewPredicateHelper(p, u, c)
getter := c.Getter()
cloudprovider := getter.Cloudprovider()
if cloudprovider == nil {
return h.GetResult()
}
domainId := getter.DomainId()
if domainId != u.SchedInfo.Domain {
h.Exclude2("domain_belong", domainId, u.SchedInfo.Domain)
}
return h.GetResult()
}
@@ -75,10 +75,6 @@ func (p *StatusPredicate) Execute(u *core.Unit, c core.Candidater) (bool, []core
if cloudprovider.HealthStatus != api.CLOUD_PROVIDER_HEALTH_NORMAL {
h.Exclude2("cloud_provider_health_status", cloudprovider.HealthStatus, api.CLOUD_PROVIDER_HEALTH_NORMAL)
}
domainId := getter.DomainId()
if domainId != u.SchedInfo.Domain {
h.Exclude2("domain_belong", domainId, u.SchedInfo.Domain)
}
}
return h.GetResult()
@@ -33,6 +33,7 @@ func defaultPredicates() sets.String {
factory.RegisterFitPredicate("b-GuestHypervisorFilter", &predicateguest.HypervisorPredicate{}),
factory.RegisterFitPredicate("c-GuestAggregateFilter", &predicates.AggregatePredicate{}),
factory.RegisterFitPredicate("d-GuestMigrateFilter", &predicateguest.MigratePredicate{}),
factory.RegisterFitPredicate("e-GuestDomainFilter", &predicates.DomainPredicate{}),
//factory.RegisterFitPredicate("e-GuestNestFilter", &predicateguest.NestPredicate{}),
//factory.RegisterFitPredicate("f-GuestGroupFilter", &predicateguest.GroupPredicate{}),
factory.RegisterFitPredicate("g-GuestCPUFilter", &predicateguest.CPUPredicate{}),