mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-24 16:03:43 +08:00
Merge pull request #4492 from ioito/hotfix/qx-sku-provider-fix
fix: 修复provider为空的套餐
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user