diff --git a/pkg/util/aliyun/aliyun.go b/pkg/util/aliyun/aliyun.go index a349daf940..77233a0c8f 100644 --- a/pkg/util/aliyun/aliyun.go +++ b/pkg/util/aliyun/aliyun.go @@ -47,14 +47,19 @@ func NewAliyunClient(providerId string, providerName string, accessKey string, s func jsonRequest(client *sdk.Client, apiName string, params map[string]string) (jsonutils.JSONObject, error) { for i := 1; i < 4; i++ { resp, err := _jsonRequest(client, "ecs.aliyuncs.com", ALIYUN_API_VERSION, apiName, params) + retry := false if err != nil { for _, code := range []string{"SignatureNonceUsed", "InvalidInstance.NotSupported"} { if strings.Contains(err.Error(), code) { - time.Sleep(time.Second * time.Duration(i*10)) - continue + retry = true + break } } } + if retry { + time.Sleep(time.Second * time.Duration(i*10)) + continue + } return resp, err } return nil, fmt.Errorf("timeout for request %s params: %s", apiName, params)