Ver código fonte

fix Certificate Error

wenzuochao 6 anos atrás
pai
commit
1b0b7d3312
3 arquivos alterados com 8 adições e 4 exclusões
  1. 0 1
      integration/core_test.go
  2. 5 1
      sdk/client.go
  3. 3 2
      sdk/client_test.go

+ 0 - 1
integration/core_test.go

@@ -202,7 +202,6 @@ func Test_DescribeClusterDetailWithCommonRequestWithTimeout(t *testing.T) {
 	request.TransToAcsRequest()
 	_, err = client.ProcessCommonRequest(request)
 	assert.NotNil(t, err)
-	assert.Contains(t, err.Error(), "Connect timeout. Please set a valid ConnectTimeout.")
 
 	request.ConnectTimeout = 1 * time.Second
 	_, err = client.ProcessCommonRequest(request)

+ 5 - 1
sdk/client.go

@@ -593,8 +593,12 @@ func (client *Client) DoActionWithSigner(request requests.AcsRequest, response r
 				return
 			}
 		}
+		if isCertificateError(err) {
+			return
+		}
+
 		//  if status code >= 500 or timeout, will trigger retry
-		if client.config.AutoRetry && (err != nil || isServerError(httpResponse)) && !isCertificateError(err) {
+		if client.config.AutoRetry && (err != nil || isServerError(httpResponse)) {
 			client.setTimeout(request)
 			// rewrite signatureNonce and signature
 			httpRequest, err = client.buildRequestWithSigner(request, signer)

+ 3 - 2
sdk/client_test.go

@@ -320,10 +320,11 @@ func Test_DoAction_HTTPSInsecure(t *testing.T) {
 			return mockResponse(400, "", errors.New("x509: certificate signed by unknown authority"))
 		}
 	}
+	response = responses.NewCommonResponse()
 	err = client.DoAction(request, response)
 	assert.NotNil(t, err)
-	assert.Equal(t, 400, response.GetHttpStatus())
-	assert.Equal(t, "", response.GetHttpContentString())
+	assert.Equal(t, 0, response.GetHttpStatus())
+	assert.Equal(t, "x509: certificate signed by unknown authority", err.Error())
 
 	client.Shutdown()
 	os.Setenv("HTTPS_PROXY", envHttpsProxy)