diff --git a/pkg/compute/models/skus.go b/pkg/compute/models/skus.go index e6576b0692..b96d0800c9 100644 --- a/pkg/compute/models/skus.go +++ b/pkg/compute/models/skus.go @@ -605,11 +605,14 @@ func (manager *SServerSkuManager) ListItemFilter(ctx context.Context, q *sqlchem q = q.Equals("cloudregion_id", regionObj.GetId()) } + if public_cloud || len(provider) > 0 { + zoneTable := ZoneManager.Query().SubQuery() + q = q.Join(zoneTable, sqlchemy.Equals(zoneTable.Field("id"), q.Field("zone_id"))) + } + zoneStr := jsonutils.GetAnyString(query, []string{"zone", "zone_id"}) var zoneObj db.IModel if (public_cloud || len(provider) > 0) && len(zoneStr) > 0 { - zoneTable := ZoneManager.Query().SubQuery() - q = q.Join(zoneTable, sqlchemy.Equals(zoneTable.Field("id"), q.Field("zone_id"))) zoneObj, err = ZoneManager.FetchByIdOrName(nil, zoneStr) if err != nil { if err == sql.ErrNoRows {