fix: exclude hosts whose cloud provider's status not in

CLOUD_PROVIDER_VALID_STATUS
This commit is contained in:
Qiu Jian
2019-04-01 21:02:03 +08:00
committed by Yousong Zhou
parent b659789c62
commit 2c515a7edd
@@ -15,6 +15,8 @@
package guest
import (
"yunion.io/x/pkg/utils"
api "yunion.io/x/onecloud/pkg/apis/compute"
"yunion.io/x/onecloud/pkg/scheduler/algorithm/predicates"
"yunion.io/x/onecloud/pkg/scheduler/core"
@@ -68,8 +70,8 @@ func (p *StatusPredicate) Execute(u *core.Unit, c core.Candidater) (bool, []core
}
if hc.Cloudprovider != nil {
if hc.Cloudprovider.Status != api.CLOUD_PROVIDER_CONNECTED {
h.Exclude2("cloud_provider_status", hc.Cloudprovider.Status, api.CLOUD_PROVIDER_CONNECTED)
if !utils.IsInStringArray(hc.Cloudprovider.Status, api.CLOUD_PROVIDER_VALID_STATUS) {
h.Exclude2("cloud_provider_status", hc.Cloudprovider.Status, api.CLOUD_PROVIDER_VALID_STATUS)
}
if hc.Cloudprovider.HealthStatus != api.CLOUD_PROVIDER_HEALTH_NORMAL {
h.Exclude2("cloud_provider_health_status", hc.Cloudprovider.HealthStatus, api.CLOUD_PROVIDER_HEALTH_NORMAL)