Skip to content

Commit 463d579

Browse files
authored
Merge pull request #286 from deploymenttheory/dev-bug-package-upload
Fix: Multipart request now uses httptimeout, added funcs to expose that to the SDK
2 parents 1cec3a8 + 7021984 commit 463d579

File tree

4 files changed

+15
-18
lines changed

4 files changed

+15
-18
lines changed

Diff for: httpclient/client.go

+5-5
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ type ClientConfig struct {
5555
EnableDynamicRateLimiting bool `json:"enable_dynamic_rate_limiting"`
5656

5757
// CustomTimeout // TODO also because I don't know.
58-
CustomTimeout time.Duration
58+
Timeout time.Duration
5959

6060
// TokenRefreshBufferPeriod is the duration of time before the token expires in which it's deemed
6161
// more sensible to replace the token rather then carry on using it.
@@ -107,12 +107,12 @@ func (c *ClientConfig) Build() (*Client, error) {
107107

108108
httpClient := c.HTTP
109109

110-
if c.CustomTimeout == 0 {
111-
c.CustomTimeout = DefaultTimeout
110+
if c.Timeout == 0 {
111+
httpClient.Timeout = DefaultTimeout
112+
} else {
113+
httpClient.Timeout = c.Timeout
112114
}
113115

114-
httpClient.Timeout = c.CustomTimeout
115-
116116
cookieJar, err := cookiejar.New(nil)
117117
if err != nil {
118118
return nil, err

Diff for: httpclient/config_validation.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ func LoadConfigFromEnv() (*ClientConfig, error) {
6666
MaxRetryAttempts: getEnvAsInt("MAX_RETRY_ATTEMPTS", DefaultMaxRetryAttempts),
6767
MaxConcurrentRequests: getEnvAsInt("MAX_CONCURRENT_REQUESTS", DefaultMaxConcurrentRequests),
6868
EnableDynamicRateLimiting: getEnvAsBool("ENABLE_DYNAMIC_RATE_LIMITING", DefaultEnableDynamicRateLimiting),
69-
CustomTimeout: getEnvAsDuration("CUSTOM_TIMEOUT", DefaultCustomTimeout),
69+
Timeout: getEnvAsDuration("CUSTOM_TIMEOUT", DefaultCustomTimeout),
7070
TokenRefreshBufferPeriod: getEnvAsDuration("TOKEN_REFRESH_BUFFER_PERIOD", DefaultTokenRefreshBufferPeriod),
7171
TotalRetryDuration: getEnvAsDuration("TOTAL_RETRY_DURATION", DefaultTotalRetryDuration),
7272
EnableConcurrencyManagement: getEnvAsBool("ENABLE_CONCURRENCY_MANAGEMENT", DefaultEnableConcurrencyManagement),
@@ -111,7 +111,7 @@ func (c ClientConfig) validateClientConfig() error {
111111
}
112112
}
113113

114-
if c.CustomTimeout.Seconds() < 0 {
114+
if c.Timeout.Seconds() < 0 {
115115
return errors.New("timeout cannot be less than 0 seconds")
116116
}
117117

@@ -139,7 +139,7 @@ func (c *ClientConfig) SetDefaultValuesClientConfig() {
139139
setDefaultInt(&c.MaxRetryAttempts, DefaultMaxRetryAttempts, 1)
140140
setDefaultInt(&c.MaxConcurrentRequests, DefaultMaxConcurrentRequests, 1)
141141
setDefaultBool(&c.EnableDynamicRateLimiting, DefaultEnableDynamicRateLimiting)
142-
setDefaultDuration(&c.CustomTimeout, DefaultCustomTimeout)
142+
setDefaultDuration(&c.Timeout, DefaultCustomTimeout)
143143
setDefaultDuration(&c.TokenRefreshBufferPeriod, DefaultTokenRefreshBufferPeriod)
144144
setDefaultDuration(&c.TotalRetryDuration, DefaultTotalRetryDuration)
145145
setDefaultBool(&c.EnableConcurrencyManagement, DefaultEnableConcurrencyManagement)

Diff for: httpclient/multipartrequest.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,9 @@ func (c *Client) DoMultiPartRequest(method, endpoint string, files map[string][]
8080
var ctx context.Context
8181
var cancel context.CancelFunc
8282

83-
if c.config.CustomTimeout > 0 {
84-
ctx, cancel = context.WithTimeout(context.Background(), c.config.CustomTimeout)
85-
c.Sugar.Infow("Using timeout context for multipart request", zap.Duration("custom_timeout_seconds", c.config.CustomTimeout))
83+
if c.http.Timeout > 0 {
84+
ctx, cancel = context.WithTimeout(context.Background(), c.http.Timeout)
85+
c.Sugar.Infow("Using timeout context for multipart request", zap.Duration("custom_timeout_seconds", c.http.Timeout))
8686
} else {
8787
ctx = context.Background()
8888
cancel = func() {}

Diff for: httpclient/timeouts.go

+4-7
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,19 @@
11
package httpclient
22

33
import (
4-
"sync"
54
"time"
65
)
76

8-
var mu sync.Mutex
9-
107
// Amends the HTTP timeout time
118
func (c *Client) ModifyHttpTimeout(newTimeout time.Duration) {
12-
mu.Lock()
13-
defer mu.Unlock()
149
c.http.Timeout = newTimeout
1510
}
1611

1712
// Resets HTTP timeout time back to 10 seconds
1813
func (c *Client) ResetTimeout() {
19-
mu.Lock()
20-
defer mu.Unlock()
2114
c.http.Timeout = DefaultTimeout
2215
}
16+
17+
func (c *Client) HttpTimeout() time.Duration {
18+
return c.http.Timeout
19+
}

0 commit comments

Comments
 (0)