func TestMakeAddtoUserAgentHandler(t *testing.T) { fn := request.MakeAddToUserAgentHandler("name", "version", "extra1", "extra2") r := &request.Request{HTTPRequest: &http.Request{Header: http.Header{}}} r.HTTPRequest.Header.Set("User-Agent", "foo/bar") fn(r) assert.Equal(t, "foo/bar name/version (extra1; extra2)", r.HTTPRequest.Header.Get("User-Agent")) }
for _, id := range c.AllowedAccountIds { if id == accountId { return nil } } return fmt.Errorf("Account ID not allowed (%s)", accountId) } return nil } // addTerraformVersionToUserAgent is a named handler that will add Terraform's // version information to requests made by the AWS SDK. var addTerraformVersionToUserAgent = request.NamedHandler{ Name: "terraform.TerraformVersionUserAgentHandler", Fn: request.MakeAddToUserAgentHandler( "terraform", terraform.VersionString()), } type awsLogger struct{} func (l awsLogger) Log(args ...interface{}) { tokens := make([]string, 0, len(args)) for _, arg := range args { if token, ok := arg.(string); ok { tokens = append(tokens, token) } } log.Printf("[DEBUG] [aws-sdk-go] %s", strings.Join(tokens, " ")) }
for _, id := range c.AllowedAccountIds { if id == accountId { return nil } } return fmt.Errorf("Account ID not allowed (%s)", accountId) } return nil } // addTerraformVersionToUserAgent is a named handler that will add Terraform's // version information to requests made by the AWS SDK. var addTerraformVersionToUserAgent = request.NamedHandler{ Name: "terraform.TerraformVersionUserAgentHandler", Fn: request.MakeAddToUserAgentHandler( "APN/1.0 HashiCorp/1.0 Terraform", terraform.VersionString()), } var debugAuthFailure = request.NamedHandler{ Name: "terraform.AuthFailureAdditionalDebugHandler", Fn: func(req *request.Request) { if isAWSErr(req.Error, "AuthFailure", "AWS was not able to validate the provided access credentials") { log.Printf("[INFO] Additional AuthFailure Debugging Context") log.Printf("[INFO] Current system UTC time: %s", time.Now().UTC()) log.Printf("[INFO] Request object: %s", spew.Sdump(req)) } }, } type awsLogger struct{}
for _, id := range c.AllowedAccountIds { if id == accountId { return nil } } return fmt.Errorf("Account ID not allowed (%s)", accountId) } return nil } // addTerraformVersionToUserAgent is a named handler that will add Terraform's // version information to requests made by the AWS SDK. var addTerraformVersionToUserAgent = request.NamedHandler{ Name: "terraform.TerraformVersionUserAgentHandler", Fn: request.MakeAddToUserAgentHandler( "terraform", terraform.Version, terraform.VersionPrerelease), } type awsLogger struct{} func (l awsLogger) Log(args ...interface{}) { tokens := make([]string, 0, len(args)) for _, arg := range args { if token, ok := arg.(string); ok { tokens = append(tokens, token) } } log.Printf("[DEBUG] [aws-sdk-go] %s", strings.Join(tokens, " ")) }
} } if length > 0 { r.HTTPRequest.ContentLength = length r.HTTPRequest.Header.Set("Content-Length", fmt.Sprintf("%d", length)) } else { r.HTTPRequest.ContentLength = 0 r.HTTPRequest.Header.Del("Content-Length") } }} // SDKVersionUserAgentHandler is a request handler for adding the SDK Version to the user agent. var SDKVersionUserAgentHandler = request.NamedHandler{ Name: "core.SDKVersionUserAgentHandler", Fn: request.MakeAddToUserAgentHandler(aws.SDKName, aws.SDKVersion, runtime.Version(), runtime.GOOS, runtime.GOARCH), } var reStatusCode = regexp.MustCompile(`^(\d{3})`) // SendHandler is a request handler to send service request using HTTP client. var SendHandler = request.NamedHandler{Name: "core.SendHandler", Fn: func(r *request.Request) { var err error r.HTTPResponse, err = r.Config.HTTPClient.Do(r.HTTPRequest) if err != nil { // Prevent leaking if an HTTPResponse was returned. Clean up // the body. if r.HTTPResponse != nil { r.HTTPResponse.Body.Close() } // Capture the case where url.Error is returned for error processing