From a8cc140b52c361fdebbadcd6b65920524f81534c Mon Sep 17 00:00:00 2001 From: Qu Xuan Date: Thu, 24 Dec 2020 17:22:43 +0800 Subject: [PATCH] fix(region): sku.meta use global proxy --- pkg/compute/models/skus_tools.go | 5 ++++- pkg/mcclient/modules/mod_skus.go | 28 ++++++---------------------- 2 files changed, 10 insertions(+), 23 deletions(-) diff --git a/pkg/compute/models/skus_tools.go b/pkg/compute/models/skus_tools.go index ed8fa357bf..528484e221 100644 --- a/pkg/compute/models/skus_tools.go +++ b/pkg/compute/models/skus_tools.go @@ -414,7 +414,10 @@ func SyncServerSkusByRegion(ctx context.Context, userCred mcclient.TokenCredenti func FetchSkuResourcesMeta() (*SSkuResourcesMeta, error) { s := auth.GetAdminSession(context.Background(), options.Options.Region, "") - meta, err := modules.OfflineCloudmeta.GetSkuSourcesMeta(s) + transport := httputils.GetTransport(true) + transport.Proxy = options.Options.HttpTransportProxyFunc() + client := &http.Client{Transport: transport} + meta, err := modules.OfflineCloudmeta.GetSkuSourcesMeta(s, client) if err != nil { return nil, errors.Wrap(err, "fetchSkuSourceUrls.GetSkuSourcesMeta") } diff --git a/pkg/mcclient/modules/mod_skus.go b/pkg/mcclient/modules/mod_skus.go index 458b0f434b..6da96ad8f9 100644 --- a/pkg/mcclient/modules/mod_skus.go +++ b/pkg/mcclient/modules/mod_skus.go @@ -15,16 +15,16 @@ package modules import ( + "context" "fmt" - "io/ioutil" "net/http" "strings" "yunion.io/x/jsonutils" - "yunion.io/x/pkg/errors" "yunion.io/x/onecloud/pkg/mcclient" "yunion.io/x/onecloud/pkg/mcclient/modulebase" + "yunion.io/x/onecloud/pkg/util/httputils" ) type SkusManager struct { @@ -90,28 +90,12 @@ func (self *SkusManager) GetSkus(s *mcclient.ClientSession, providerId, regionId return ret, nil } -func (self *OfflineCloudmetaManager) GetSkuSourcesMeta(s *mcclient.ClientSession) (jsonutils.JSONObject, error) { +func (self *OfflineCloudmetaManager) GetSkuSourcesMeta(s *mcclient.ClientSession, client *http.Client) (jsonutils.JSONObject, error) { baseUrl, err := s.GetServiceVersionURL(self.ServiceType(), self.EndpointType(), self.GetApiVersion()) if err != nil { return nil, err } - baseUrl = strings.TrimLeft(baseUrl, "/") - metaUrl := strings.Join([]string{baseUrl, "sku.meta"}, "/") - resp, err := http.Get(metaUrl) - if err != nil { - return nil, errors.Wrap(err, "OfflineCloudmetaManager.GetSkuSourcesMeta.Get") - } - - defer resp.Body.Close() - content, err := ioutil.ReadAll(resp.Body) - if err != nil { - return nil, errors.Wrap(err, "OfflineCloudmetaManager.GetSkuSourcesMeta.ReadAll") - } - - meta, err := jsonutils.Parse(content) - if err != nil { - return nil, errors.Wrap(err, "OfflineCloudmetaManager.GetSkuSourcesMeta.Parse") - } - - return meta, nil + url := strings.TrimSuffix(baseUrl, "/") + "/sku.meta" + _, body, err := httputils.JSONRequest(client, context.TODO(), "GET", url, nil, nil, false) + return body, err }