~juju-qa/ubuntu/xenial/juju/xenial-2.0-beta3

« back to all changes in this revision

Viewing changes to src/github.com/juju/romulus/api/budget/api.go

  • Committer: Martin Packman
  • Date: 2016-03-30 19:31:08 UTC
  • mfrom: (1.1.41)
  • Revision ID: martin.packman@canonical.com-20160330193108-h9iz3ak334uk0z5r
Merge new upstream source 2.0~beta3

Show diffs side-by-side

added added

removed removed

Lines of Context:
138
138
        Method() string
139
139
}
140
140
 
 
141
// hasContentType is an interface implemented by requests to
 
142
// specify the content-type header to be set.
 
143
type hasContentType interface {
 
144
        ContentType() string
 
145
}
 
146
 
141
147
// doRequest executes a generic request, retrieving relevant information
142
148
// from the req interface. If result is not nil, the response will be
143
149
// decoded to it.
168
174
                if err != nil {
169
175
                        return errors.Annotate(err, "failed to encode request")
170
176
                }
171
 
                req, err := http.NewRequest(method, u.String(), nil)
 
177
                r, err := http.NewRequest(method, u.String(), nil)
172
178
                if err != nil {
173
179
                        return errors.Annotate(err, "failed to create request")
174
180
                }
175
 
                resp, err = c.h.DoWithBody(req, bytes.NewReader(payload.Bytes()))
 
181
                if ctype, ok := req.(hasContentType); ok {
 
182
                        r.Header.Add("Content-Type", ctype.ContentType())
 
183
                }
 
184
                resp, err = c.h.DoWithBody(r, bytes.NewReader(payload.Bytes()))
176
185
                if err != nil {
177
186
                        if strings.HasSuffix(err.Error(), "Connection refused") {
178
187
                                return wireformat.NotAvailError{}
181
190
                }
182
191
                defer discardClose(resp)
183
192
        } else {
184
 
                req, err := http.NewRequest(method, u.String(), nil)
 
193
                r, err := http.NewRequest(method, u.String(), nil)
185
194
                if err != nil {
186
195
                        return errors.Annotate(err, "failed to create request")
187
196
                }
188
 
                resp, err = c.h.DoWithBody(req, nil)
 
197
                resp, err = c.h.DoWithBody(r, nil)
189
198
                if err != nil {
190
199
                        return errors.Annotate(err, "failed to execute request")
191
200
                }