Преглед на файлове

breakpoint

Signed-off-by: gaort <rutong.grt@alibaba-inc.com>
gaort преди 7 години
родител
ревизия
a49611d6fe

+ 2 - 2
integration/ecs_test.go

@@ -130,8 +130,8 @@ func deleteAllTestEcsInstance(t *testing.T, client *ecs.Client) {
 		if strings.HasPrefix(instanceInfo.InstanceName, InstanceNamePrefix) {
 			createTime, err := strconv.ParseInt(instanceInfo.InstanceName[26:len(instanceInfo.InstanceName)], 10, 64)
 			assertErrorNil(t, err, "Parse instance create time failed: "+instanceInfo.InstanceName)
-			if (time.Now().Unix() - createTime) < (5 * 60) {
-				fmt.Printf("found undeleted ecs instance(%s) but created in 5 minutes, try to delete next time\n",instanceInfo.InstanceName)
+			if (time.Now().Unix() - createTime) < (60 * 60) {
+				fmt.Printf("found undeleted ecs instance(%s) but created in 60 minutes, try to delete next time\n",instanceInfo.InstanceName)
 				return
 			}else{
 				fmt.Printf("found undeleted ecs instance(%s), status=%s, try to delete it.\n",

+ 2 - 2
integration/rds_test.go

@@ -180,8 +180,8 @@ func deleteAllTestRdsInstance(t *testing.T, client *rds.Client) {
 		if strings.HasPrefix(instance.DBInstanceDescription, InstanceNamePrefix) {
 			createTime, err := strconv.ParseInt(instance.DBInstanceDescription[len(InstanceNamePrefix):], 10, 64)
 			assertErrorNil(t, err, "Parse instance create time failed: "+instance.DBInstanceDescription)
-			if (time.Now().Unix() - createTime) < (5 * 60) {
-				fmt.Printf("found undeleted rds instance(%s) but created in 5 minutes, try to delete next time\n", instance.DBInstanceDescription)
+			if (time.Now().Unix() - createTime) < (60 * 60) {
+				fmt.Printf("found undeleted rds instance(%s) but created in 60 minutes, try to delete next time\n", instance.DBInstanceDescription)
 				return
 			} else {
 				fmt.Printf("found rds test instance(%s), trying to delte it\n", instance.DBInstanceId)

+ 2 - 2
integration/slb_test.go

@@ -134,8 +134,8 @@ func deleteAllTestSlbInstance(t *testing.T, client *slb.Client) {
 		if strings.HasPrefix(slbInstanceInfo.LoadBalancerName, InstanceNamePrefix) {
 			createTime, err := strconv.ParseInt(slbInstanceInfo.LoadBalancerName[len(InstanceNamePrefix):], 10, 64)
 			assertErrorNil(t, err, "Parse instance create time failed: "+slbInstanceInfo.LoadBalancerName)
-			if (time.Now().Unix() - createTime) < (5 * 60) {
-				fmt.Printf("found undeleted slb instance(%s) but created in 5 minutes, try to delete next time\n", slbInstanceInfo.LoadBalancerName)
+			if (time.Now().Unix() - createTime) < (60 * 60) {
+				fmt.Printf("found undeleted slb instance(%s) but created in 60 minutes, try to delete next time\n", slbInstanceInfo.LoadBalancerName)
 				return
 			} else {
 				fmt.Printf("found undeleted slb instance(%s), status=%s, try to delete it.\n",

+ 1 - 1
sdk/auth/roa_signature_composer.go

@@ -94,7 +94,7 @@ func buildRoaStringToSign(request requests.AcsRequest) (stringToSign string) {
 	}
 
 	// append query params
-	stringToSignBuilder.WriteString(request.GetQueries())
+	stringToSignBuilder.WriteString(request.BuildQueries())
 	stringToSign = stringToSignBuilder.String()
 	return
 }

+ 7 - 1
sdk/client.go

@@ -188,7 +188,7 @@ func (client *Client) DoActionWithSigner(request requests.AcsRequest, response r
 	}
 
 	requestMethod := request.GetMethod()
-	requestUrl := request.GetUrl()
+	requestUrl := request.BuildUrl()
 	body := request.GetBodyReader()
 	httpRequest, err := http.NewRequest(requestMethod, requestUrl, body)
 	if err != nil {
@@ -216,6 +216,12 @@ func (client *Client) DoActionWithSigner(request requests.AcsRequest, response r
 		}
 		//  if status code >= 500 or timeout, will trigger retry
 		if client.config.AutoRetry && (timeout || isServerError(httpResponse)) {
+			// rewrite signatureNonce and signature
+			if signer != nil {
+				err = auth.Sign(request, signer, regionId)
+			} else {
+				err = auth.Sign(request, client.signer, regionId)
+			}
 			continue
 		}
 		break

+ 3 - 1
sdk/requests/acs_reqeust.go

@@ -59,6 +59,7 @@ type AcsRequest interface {
 	GetPort() string
 	GetRegionId() string
 	GetUrl() string
+	GetQueries() string
 	GetHeaders() map[string]string
 	GetQueryParams() map[string]string
 	GetFormParams() map[string]string
@@ -74,8 +75,9 @@ type AcsRequest interface {
 
 	SetDomain(domain string)
 	SetContent(content []byte)
+	BuildUrl() string
+	BuildQueries() string
 
-	GetQueries() string
 	addHeaderParam(key, value string)
 	addQueryParam(key, value string)
 	addFormParam(key, value string)

+ 16 - 4
sdk/requests/common_request.go

@@ -55,6 +55,18 @@ func (request *CommonRequest) TransToAcsRequest() {
 
 }
 
+func (request *CommonRequest) BuildUrl() string {
+	if len(request.Port) > 0 {
+		return strings.ToLower(request.Scheme) + "://" + request.Domain + ":" + request.Port + request.BuildQueries()
+	}
+
+	return strings.ToLower(request.Scheme) + "://" + request.Domain + request.BuildQueries()
+}
+
+func (request *CommonRequest) BuildQueries() string {
+	return request.Ontology.BuildQueries()
+}
+
 func (request *CommonRequest) GetUrl() string {
 	if len(request.Port) > 0 {
 		return strings.ToLower(request.Scheme) + "://" + request.Domain + ":" + request.Port + request.GetQueries()
@@ -63,6 +75,10 @@ func (request *CommonRequest) GetUrl() string {
 	return strings.ToLower(request.Scheme) + "://" + request.Domain + request.GetQueries()
 }
 
+func (request *CommonRequest) GetQueries() string {
+	return request.Ontology.GetQueries()
+}
+
 func (request *CommonRequest) GetBodyReader() io.Reader {
 	return request.Ontology.GetBodyReader()
 }
@@ -71,10 +87,6 @@ func (request *CommonRequest) GetStyle() string {
 	return request.Ontology.GetStyle()
 }
 
-func (request *CommonRequest) GetQueries() string {
-	return request.Ontology.GetQueries()
-}
-
 func (request *CommonRequest) addPathParam(key, value string) {
 	request.PathParams[key] = value
 }

+ 7 - 4
sdk/requests/roa_request.go

@@ -44,13 +44,10 @@ func (request *RoaRequest) GetBodyReader() io.Reader {
 }
 
 func (request *RoaRequest) GetQueries() string {
-	if len(request.queries) == 0 {
-		request.buildQueries()
-	}
 	return request.queries
 }
 
-func (request *RoaRequest) buildQueries() {
+func (request *RoaRequest) BuildQueries() string {
 	// replace path params with value
 	path := request.pathPattern
 	for key, value := range request.PathParams {
@@ -87,12 +84,18 @@ func (request *RoaRequest) buildQueries() {
 		}
 	}
 	request.queries = urlBuilder.String()
+	return request.queries
 }
 
 func (request *RoaRequest) GetUrl() string {
 	return strings.ToLower(request.Scheme) + "://" + request.Domain + ":" + request.Port + request.GetQueries()
 }
 
+func (request *RoaRequest) BuildUrl() string {
+	return strings.ToLower(request.Scheme) + "://" + request.Domain + ":" + request.Port + request.BuildQueries()
+}
+
+
 func (request *RoaRequest) addPathParam(key, value string) {
 	request.PathParams[key] = value
 }

+ 9 - 4
sdk/requests/rpc_request.go

@@ -42,15 +42,20 @@ func (request *RpcRequest) GetBodyReader() io.Reader {
 	}
 }
 
+func (request *RpcRequest) BuildQueries() string {
+	request.queries = "/?" + utils.GetUrlFormedMap(request.QueryParams)
+	return request.queries
+}
+
 func (request *RpcRequest) GetQueries() string {
-	if request.queries == "" {
-		request.queries = "/?" + utils.GetUrlFormedMap(request.QueryParams)
-	}
 	return request.queries
 }
 
+func (request *RpcRequest) BuildUrl() string {
+	return strings.ToLower(request.Scheme) + "://" + request.Domain + request.BuildQueries()
+}
+
 func (request *RpcRequest) GetUrl() string {
-	//return strings.ToLower(request.Scheme) + "://" + request.Domain + ":" + request.Port + request.GetQueries()
 	return strings.ToLower(request.Scheme) + "://" + request.Domain + request.GetQueries()
 }