]> git.immae.eu Git - github/fretlink/terraform-provider-statuscake.git/blobdiff - vendor/github.com/aws/aws-sdk-go/service/s3/unmarshal_error.go
Upgrade to 0.12
[github/fretlink/terraform-provider-statuscake.git] / vendor / github.com / aws / aws-sdk-go / service / s3 / unmarshal_error.go
index bcca8627af36c57d0da90443765db97f5cea3c91..1db7e133bafbbb8dd32f1f8a8978f67e7236be6c 100644 (file)
@@ -23,22 +23,22 @@ func unmarshalError(r *request.Request) {
        defer r.HTTPResponse.Body.Close()
        defer io.Copy(ioutil.Discard, r.HTTPResponse.Body)
 
-       hostID := r.HTTPResponse.Header.Get("X-Amz-Id-2")
-
        // Bucket exists in a different region, and request needs
        // to be made to the correct region.
        if r.HTTPResponse.StatusCode == http.StatusMovedPermanently {
-               r.Error = requestFailure{
-                       RequestFailure: awserr.NewRequestFailure(
-                               awserr.New("BucketRegionError",
-                                       fmt.Sprintf("incorrect region, the bucket is not in '%s' region",
-                                               aws.StringValue(r.Config.Region)),
-                                       nil),
-                               r.HTTPResponse.StatusCode,
-                               r.RequestID,
-                       ),
-                       hostID: hostID,
+               msg := fmt.Sprintf(
+                       "incorrect region, the bucket is not in '%s' region at endpoint '%s'",
+                       aws.StringValue(r.Config.Region),
+                       aws.StringValue(r.Config.Endpoint),
+               )
+               if v := r.HTTPResponse.Header.Get("x-amz-bucket-region"); len(v) != 0 {
+                       msg += fmt.Sprintf(", bucket is in '%s' region", v)
                }
+               r.Error = awserr.NewRequestFailure(
+                       awserr.New("BucketRegionError", msg, nil),
+                       r.HTTPResponse.StatusCode,
+                       r.RequestID,
+               )
                return
        }
 
@@ -63,14 +63,11 @@ func unmarshalError(r *request.Request) {
                errMsg = statusText
        }
 
-       r.Error = requestFailure{
-               RequestFailure: awserr.NewRequestFailure(
-                       awserr.New(errCode, errMsg, err),
-                       r.HTTPResponse.StatusCode,
-                       r.RequestID,
-               ),
-               hostID: hostID,
-       }
+       r.Error = awserr.NewRequestFailure(
+               awserr.New(errCode, errMsg, err),
+               r.HTTPResponse.StatusCode,
+               r.RequestID,
+       )
 }
 
 // A RequestFailure provides access to the S3 Request ID and Host ID values
@@ -83,21 +80,3 @@ type RequestFailure interface {
        // Host ID is the S3 Host ID needed for debug, and contacting support
        HostID() string
 }
-
-type requestFailure struct {
-       awserr.RequestFailure
-
-       hostID string
-}
-
-func (r requestFailure) Error() string {
-       extra := fmt.Sprintf("status code: %d, request id: %s, host id: %s",
-               r.StatusCode(), r.RequestID(), r.hostID)
-       return awserr.SprintError(r.Code(), r.Message(), extra, r.OrigErr())
-}
-func (r requestFailure) String() string {
-       return r.Error()
-}
-func (r requestFailure) HostID() string {
-       return r.hostID
-}