]> git.immae.eu Git - github/fretlink/terraform-provider-statuscake.git/blame - vendor/github.com/aws/aws-sdk-go/service/s3/statusok_error.go
Upgrade to 0.12
[github/fretlink/terraform-provider-statuscake.git] / vendor / github.com / aws / aws-sdk-go / service / s3 / statusok_error.go
CommitLineData
bae9f6d2
JC
1package s3
2
3import (
4 "bytes"
5 "io/ioutil"
6 "net/http"
7
8 "github.com/aws/aws-sdk-go/aws/awserr"
9 "github.com/aws/aws-sdk-go/aws/request"
15c0b25d 10 "github.com/aws/aws-sdk-go/internal/sdkio"
bae9f6d2
JC
11)
12
13func copyMultipartStatusOKUnmarhsalError(r *request.Request) {
14 b, err := ioutil.ReadAll(r.HTTPResponse.Body)
15 if err != nil {
107c1cdb
ND
16 r.Error = awserr.NewRequestFailure(
17 awserr.New("SerializationError", "unable to read response body", err),
18 r.HTTPResponse.StatusCode,
19 r.RequestID,
20 )
bae9f6d2
JC
21 return
22 }
23 body := bytes.NewReader(b)
24 r.HTTPResponse.Body = ioutil.NopCloser(body)
15c0b25d 25 defer body.Seek(0, sdkio.SeekStart)
bae9f6d2
JC
26
27 if body.Len() == 0 {
28 // If there is no body don't attempt to parse the body.
29 return
30 }
31
32 unmarshalError(r)
33 if err, ok := r.Error.(awserr.Error); ok && err != nil {
34 if err.Code() == "SerializationError" {
35 r.Error = nil
36 return
37 }
38 r.HTTPResponse.StatusCode = http.StatusServiceUnavailable
39 }
40}