@@ -12,6 +12,7 @@ import (
12
12
"time"
13
13
14
14
retryablehttp "github.com/hashicorp/go-retryablehttp"
15
+ "github.com/hashicorp/terraform/helper/logging"
15
16
sdk "github.com/nicolai86/scaleway-sdk"
16
17
)
17
18
@@ -53,27 +54,32 @@ func (c *client) Do(r *http.Request) (*http.Response, error) {
53
54
54
55
// Client configures and returns a fully initialized Scaleway client
55
56
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
+
56
78
api , err := sdk .New (
57
79
c .Organization ,
58
80
c .APIKey ,
59
81
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 ,
77
83
)
78
84
if err != nil {
79
85
return nil , err
0 commit comments