mirror of
https://github.com/letic/terraform-provider-google.git
synced 2024-09-20 18:19:59 +00:00
36 lines
767 B
Go
36 lines
767 B
Go
package s3
|
|
|
|
import (
|
|
"bytes"
|
|
"io/ioutil"
|
|
"net/http"
|
|
|
|
"github.com/aws/aws-sdk-go/aws/awserr"
|
|
"github.com/aws/aws-sdk-go/aws/request"
|
|
)
|
|
|
|
func copyMultipartStatusOKUnmarhsalError(r *request.Request) {
|
|
b, err := ioutil.ReadAll(r.HTTPResponse.Body)
|
|
if err != nil {
|
|
r.Error = awserr.New("SerializationError", "unable to read response body", err)
|
|
return
|
|
}
|
|
body := bytes.NewReader(b)
|
|
r.HTTPResponse.Body = ioutil.NopCloser(body)
|
|
defer body.Seek(0, 0)
|
|
|
|
if body.Len() == 0 {
|
|
// If there is no body don't attempt to parse the body.
|
|
return
|
|
}
|
|
|
|
unmarshalError(r)
|
|
if err, ok := r.Error.(awserr.Error); ok && err != nil {
|
|
if err.Code() == "SerializationError" {
|
|
r.Error = nil
|
|
return
|
|
}
|
|
r.HTTPResponse.StatusCode = http.StatusServiceUnavailable
|
|
}
|
|
}
|