From 9ecaba7ebcedc1ee89847e7873963a1095c236cb Mon Sep 17 00:00:00 2001 From: Qu Xuan Date: Fri, 3 Jan 2020 15:28:52 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8Dprovider=E4=B8=BA?= =?UTF-8?q?=E7=A9=BA=E7=9A=84=E5=A5=97=E9=A4=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/compute/models/skus.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pkg/compute/models/skus.go b/pkg/compute/models/skus.go index dff23c3d1b..8eb7a4304e 100644 --- a/pkg/compute/models/skus.go +++ b/pkg/compute/models/skus.go @@ -565,6 +565,7 @@ func usableFilter(q *sqlchemy.SQuery, public_cloud bool) *sqlchemy.SQuery { // 过滤出network usable的sku if public_cloud { iconditions := NetworkUsableZoneQueries(q.Field("zone_id"), true, true) + iconditions = append(iconditions, sqlchemy.IsNullOrEmpty(q.Field("zone_id"))) //Azure的zone_id可能为空 q = q.Filter(sqlchemy.OR(iconditions...)) } else { // 本地IDC sku 只定义到region层级, zone id 为空.因此只能按region查询 @@ -1281,7 +1282,11 @@ func (manager *SServerSkuManager) FetchAllAvailableSkuIdByZoneId(zoneId string) func (manager *SServerSkuManager) initializeSkuProvider() error { skus := []SServerSku{} - q := manager.Query().In("provider", CloudproviderManager.GetPrivateProviderProvidersQuery()) + q := manager.Query() + q = q.Filter(sqlchemy.OR( + sqlchemy.In(q.Field("provider"), CloudproviderManager.GetPrivateProviderProvidersQuery()), + sqlchemy.IsNullOrEmpty(q.Field("provider")), + )) err := db.FetchModelObjects(manager, q, &skus) if err != nil { return errors.Wrapf(err, "initializeSkuProvider.FetchModelObjects") @@ -1289,6 +1294,8 @@ func (manager *SServerSkuManager) initializeSkuProvider() error { for _, sku := range skus { _, err = db.Update(&sku, func() error { sku.Provider = api.CLOUD_PROVIDER_ONECLOUD + sku.CloudregionId = api.DEFAULT_REGION_ID + sku.ZoneId = "" return nil }) if err != nil {