Skip to content

Commit 84d3cd2

Browse files
authored
Merge pull request scaleway#115 from terraform-providers/http-logging
provider: Enable request/response logging
2 parents 7fdc4e8 + 6a548a8 commit 84d3cd2

File tree

3 files changed

+25
-18
lines changed

3 files changed

+25
-18
lines changed

go.mod

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ require (
44
github.com/blang/semver v3.5.1+incompatible // indirect
55
github.com/hashicorp/go-retryablehttp v0.5.1
66
github.com/hashicorp/terraform v0.11.12-beta1.0.20190227065421-fc531f54a878
7+
github.com/mitchellh/go-homedir v0.0.0-20161203194507-b8bc1bf76747
78
github.com/nicolai86/scaleway-sdk v0.0.0-20181024210327-b20018e944c4
89
github.com/smartystreets/goconvey v0.0.0-20190222223459-a17d461953aa // indirect
910
golang.org/x/crypto v0.0.0-20180211211603-9de5f2eaf759

scaleway/config.go

+23-17
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
"time"
1313

1414
retryablehttp "github.com/hashicorp/go-retryablehttp"
15+
"github.com/hashicorp/terraform/helper/logging"
1516
sdk "github.com/nicolai86/scaleway-sdk"
1617
)
1718

@@ -53,27 +54,32 @@ func (c *client) Do(r *http.Request) (*http.Response, error) {
5354

5455
// Client configures and returns a fully initialized Scaleway client
5556
func (c *Config) Client() (*Client, error) {
57+
options := func(sdkApi *sdk.API) {
58+
cl := retryablehttp.NewClient()
59+
60+
cl.HTTPClient.Transport = logging.NewTransport("Scaleway", cl.HTTPClient.Transport)
61+
cl.RetryMax = 3
62+
cl.RetryWaitMax = 2 * time.Minute
63+
cl.Logger = log.New(os.Stderr, "", 0)
64+
cl.RetryWaitMin = time.Minute
65+
cl.CheckRetry = func(_ context.Context, resp *http.Response, err error) (bool, error) {
66+
if resp == nil {
67+
return true, err
68+
}
69+
if resp.StatusCode == http.StatusTooManyRequests {
70+
return true, err
71+
}
72+
return retryablehttp.DefaultRetryPolicy(context.TODO(), resp, err)
73+
}
74+
75+
sdkApi.Client = &client{cl}
76+
}
77+
5678
api, err := sdk.New(
5779
c.Organization,
5880
c.APIKey,
5981
c.Region,
60-
func(c *sdk.API) {
61-
cl := retryablehttp.NewClient()
62-
cl.RetryMax = 3
63-
cl.RetryWaitMax = 2 * time.Minute
64-
cl.Logger = log.New(os.Stderr, "", 0)
65-
cl.RetryWaitMin = time.Minute
66-
cl.CheckRetry = func(_ context.Context, resp *http.Response, err error) (bool, error) {
67-
if resp == nil {
68-
return true, err
69-
}
70-
if resp.StatusCode == http.StatusTooManyRequests {
71-
return true, err
72-
}
73-
return retryablehttp.DefaultRetryPolicy(context.TODO(), resp, err)
74-
}
75-
c.Client = &client{cl}
76-
},
82+
options,
7783
)
7884
if err != nil {
7985
return nil, err

vendor/modules.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -101,14 +101,14 @@ github.com/hashicorp/hil/scanner
101101
github.com/hashicorp/logutils
102102
# github.com/hashicorp/terraform v0.11.12-beta1.0.20190227065421-fc531f54a878
103103
github.com/hashicorp/terraform/plugin
104+
github.com/hashicorp/terraform/helper/logging
104105
github.com/hashicorp/terraform/helper/resource
105106
github.com/hashicorp/terraform/helper/schema
106107
github.com/hashicorp/terraform/helper/validation
107108
github.com/hashicorp/terraform/terraform
108109
github.com/hashicorp/terraform/plugin/discovery
109110
github.com/hashicorp/terraform/config/module
110111
github.com/hashicorp/terraform/helper/config
111-
github.com/hashicorp/terraform/helper/logging
112112
github.com/hashicorp/terraform/config
113113
github.com/hashicorp/terraform/config/configschema
114114
github.com/hashicorp/terraform/helper/hashcode

0 commit comments

Comments
 (0)