From 1f8bb67e245bd013c63c75550c19f5c2037e98ad Mon Sep 17 00:00:00 2001 From: ioito Date: Fri, 19 Jul 2019 17:34:10 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=85=E5=BF=BD=E7=95=A5=20no=20such=20servi?= =?UTF-8?q?ce=E9=94=99=E8=AF=AF,=E5=90=A6=E5=88=99=E4=BB=A5=E6=9C=80?= =?UTF-8?q?=E6=96=B0api=E7=BB=93=E6=9E=9C=E4=B8=BA=E5=87=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/util/openstack/region.go | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pkg/util/openstack/region.go b/pkg/util/openstack/region.go index 31e52bf308..9dfc54ce07 100644 --- a/pkg/util/openstack/region.go +++ b/pkg/util/openstack/region.go @@ -327,8 +327,8 @@ func (region *SRegion) Delete(service, url string, microversion string) (*http.R func (region *SRegion) CinderList(url string, microversion string, body jsonutils.JSONObject) (http.Header, jsonutils.JSONObject, error) { for _, service := range []string{"volumev3", "volumev2", "volume"} { header, resp, err := region.Get(service, url, microversion, body) - if err == nil { - return header, resp, nil + if err == nil || !strings.Contains(err.Error(), "No such service") { + return header, resp, err } log.Debugf("failed to list %s by service %s error: %v, try another", url, service, err) } @@ -341,7 +341,7 @@ func (region *SRegion) CinderGet(url string, microversion string, body jsonutils } for _, service := range []string{"volumev3", "volumev2", "volume"} { header, resp, err := region.Get(service, url, microversion, body) - if err == nil || err == cloudprovider.ErrNotFound { + if err == nil || err == cloudprovider.ErrNotFound || !strings.Contains(err.Error(), "No such service") { return header, resp, err } log.Debugf("failed to get %s by service %s error: %v, try another", url, service, err) @@ -352,8 +352,8 @@ func (region *SRegion) CinderGet(url string, microversion string, body jsonutils func (region *SRegion) CinderCreate(url string, microversion string, body jsonutils.JSONObject) (http.Header, jsonutils.JSONObject, error) { for _, service := range []string{"volumev3", "volumev2", "volume"} { header, resp, err := region.Post(service, url, microversion, body) - if err == nil { - return header, resp, nil + if err == nil || !strings.Contains(err.Error(), "No such service") { + return header, resp, err } log.Debugf("failed to create %s by service %s error: %v, try another", url, service, err) } @@ -366,8 +366,8 @@ func (region *SRegion) CinderDelete(url string, microversion string) (*http.Resp } for _, service := range []string{"volumev3", "volumev2", "volume"} { resp, err := region.Delete(service, url, microversion) - if err == nil { - return resp, nil + if err == nil || !strings.Contains(err.Error(), "No such service") { + return resp, err } log.Debugf("failed to delete %s by service %s error: %v, try another", url, service, err) } @@ -377,8 +377,8 @@ func (region *SRegion) CinderDelete(url string, microversion string) (*http.Resp func (region *SRegion) CinderAction(url string, microversion string, body jsonutils.JSONObject) (http.Header, jsonutils.JSONObject, error) { for _, service := range []string{"volumev3", "volumev2", "volume"} { header, resp, err := region.Post(service, url, microversion, body) - if err == nil { - return header, resp, nil + if err == nil || !strings.Contains(err.Error(), "No such service") { + return header, resp, err } log.Debugf("failed to operate %s by service %s error: %v, try another", url, service, err) }