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

« back to all changes in this revision

Viewing changes to src/github.com/juju/juju/provider/azure/tracing.go

  • Committer: Nicholas Skaggs
  • Date: 2016-09-30 14:39:30 UTC
  • mfrom: (1.8.1)
  • Revision ID: nicholas.skaggs@canonical.com-20160930143930-vwwhrefh6ftckccy
import upstream

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
// Copyright 2015 Canonical Ltd.
2
 
// Licensed under the AGPLv3, see LICENCE file for details.
3
 
 
4
 
package azure
5
 
 
6
 
import (
7
 
        "net/http"
8
 
        "net/http/httputil"
9
 
 
10
 
        "github.com/Azure/go-autorest/autorest"
11
 
        "github.com/juju/loggo"
12
 
)
13
 
 
14
 
// tracingPrepareDecorator returns an autorest.PrepareDecorator that
15
 
// logs requests at trace level.
16
 
func tracingPrepareDecorator(logger loggo.Logger) autorest.PrepareDecorator {
17
 
        return func(p autorest.Preparer) autorest.Preparer {
18
 
                return autorest.PreparerFunc(func(r *http.Request) (*http.Request, error) {
19
 
                        dump, err := httputil.DumpRequest(r, true)
20
 
                        if err != nil {
21
 
                                logger.Tracef("failed to dump request: %v", err)
22
 
                                logger.Tracef("%+v", r)
23
 
                        } else {
24
 
                                logger.Tracef("%s", dump)
25
 
                        }
26
 
                        return p.Prepare(r)
27
 
                })
28
 
        }
29
 
}
30
 
 
31
 
// tracingRespondDecorator returns an autorest.RespondDecorator that
32
 
// logs responses at trace level.
33
 
func tracingRespondDecorator(logger loggo.Logger) autorest.RespondDecorator {
34
 
        return func(r autorest.Responder) autorest.Responder {
35
 
                return autorest.ResponderFunc(func(resp *http.Response) error {
36
 
                        dump, err := httputil.DumpResponse(resp, true)
37
 
                        if err != nil {
38
 
                                logger.Tracef("failed to dump response: %v", err)
39
 
                                logger.Tracef("%+v", resp)
40
 
                        } else {
41
 
                                logger.Tracef("%s", dump)
42
 
                        }
43
 
                        return r.Respond(resp)
44
 
                })
45
 
        }
46
 
}