diff --git a/pkg/compute/models/skus_tools.go b/pkg/compute/models/skus_tools.go index 25f2dc6c38..0d0314e277 100644 --- a/pkg/compute/models/skus_tools.go +++ b/pkg/compute/models/skus_tools.go @@ -39,15 +39,15 @@ server: 虚拟机 elasticcache: 弹性缓存(redis&memcached) */ type SSkuResourcesMeta struct { - region *SCloudregion - caches map[string][]jsonutils.JSONObject - regionalSkuCaches map[string]map[string][]jsonutils.JSONObject - zoneCaches map[string]*SZone - regionCaches map[string]*SCloudregion + region *SCloudregion + caches map[string][]jsonutils.JSONObject + zoneCaches map[string]*SZone + regionCaches map[string]*SCloudregion - Server string - ElasticCache string - DBInstance string `json:"dbinstance"` + Server string + ElasticCache string + DBInstance string `json:"dbinstance"` + DBInstanceBase string `json:"dbinstance_base"` } func (self *SSkuResourcesMeta) GetServerSkus(region *SCloudregion) ([]SServerSku, error) { @@ -96,7 +96,7 @@ func (self *SSkuResourcesMeta) GetServerSkus(region *SCloudregion) ([]SServerSku func (self *SSkuResourcesMeta) GetDBInstanceSkusByRegion(regionId string) ([]SDBInstanceSku, error) { result := []SDBInstanceSku{} - objs, err := self.getSkusByRegion(self.DBInstance, regionId) + objs, err := self.getSkusByRegion(self.DBInstanceBase, regionId) if err != nil { return nil, errors.Wrapf(err, "getSkusByRegion") } @@ -234,30 +234,13 @@ func (self *SSkuResourcesMeta) get(url string) ([]jsonutils.JSONObject, error) { return self.filterByRegion(items), nil } -func (self *SSkuResourcesMeta) getSkusByRegion(url string, region string) ([]jsonutils.JSONObject, error) { - items, err := self.get(url) +func (self *SSkuResourcesMeta) getSkusByRegion(base string, region string) ([]jsonutils.JSONObject, error) { + url := fmt.Sprintf("%s/%s.json", base, region) + items, err := self._get(url) if err != nil { - return nil, err + return nil, errors.Wrap(err, "getSkusByRegion.get") } - - if self.regionalSkuCaches == nil { - self.regionalSkuCaches = map[string]map[string][]jsonutils.JSONObject{} - self.regionalSkuCaches[url] = map[string][]jsonutils.JSONObject{} - for i := range items { - cloudregion, _ := items[i].GetString("cloudregion_id") - if len(cloudregion) > 0 { - if _, ok := self.regionalSkuCaches[url][cloudregion]; !ok { - self.regionalSkuCaches[url][cloudregion] = []jsonutils.JSONObject{} - } - self.regionalSkuCaches[url][cloudregion] = append(self.regionalSkuCaches[url][cloudregion], items[i]) - } - } - } - - if skus, ok := self.regionalSkuCaches[url][region]; ok { - return skus, nil - } - return []jsonutils.JSONObject{}, nil + return items, nil } func (self *SSkuResourcesMeta) _get(url string) ([]jsonutils.JSONObject, error) {