From d5a691ffe3e37262af943d0f0432fcb7f0781f56 Mon Sep 17 00:00:00 2001 From: Qu Xuan Date: Wed, 11 Mar 2020 16:48:14 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96rds=20sku=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/compute/models/skus_tools.go | 45 ++++++++++---------------------- 1 file changed, 14 insertions(+), 31 deletions(-) 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) {