aws-sdk-core 3.21.3 → 3.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 12255448ae680352992b2f5adbb17ca92a6e2aeb
4
- data.tar.gz: b5573e6a34a614354a673b64fd391a796df52b02
3
+ metadata.gz: 54149f1832e91cbc45d96a83b677c5cf83d91dcc
4
+ data.tar.gz: 0ad04974faf3da443b6b5093ab3397de0b62f84c
5
5
  SHA512:
6
- metadata.gz: '0950409d58a38195f451b67ab36b59ebae101504416de8c16b7019a105c4ff670d2c80099666787e74b15135073b2c833246280ec1b9a7d141d096f571d73da2'
7
- data.tar.gz: ed1c6933c8b902e2cc06b610a2545342db874078b24a1549d26e571b1ab0f352110c6c9f4697696c62188915a69913effe07ee73e34660bbf63f3b0225bc6845
6
+ metadata.gz: 230cf3bb7ef5c247de6bb8b1f7363cae644d4869c415df572553ed1e4df3dd94465dd3768c037eca8b3d1bdf5d19bd3599df3ad850be7760a9f00637cd182645
7
+ data.tar.gz: af831a1819233e5d722acc8767e5148f73ba6e2e71ef08725daf98370cf6b73194d66f6f1d5826903e5c755c4a3facdee4549578b46e69344faa099ba43e0533
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.21.3
1
+ 3.22.0
@@ -5,6 +5,29 @@ module Aws
5
5
  # @api private
6
6
  class RetryErrors < Seahorse::Client::Plugin
7
7
 
8
+ EQUAL_JITTER = lambda { |delay| (delay / 2) + Kernel.rand(0..(delay/2))}
9
+ FULL_JITTER= lambda { |delay| Kernel.rand(0..delay) }
10
+ NO_JITTER = lambda { |delay| delay }
11
+
12
+ JITTERS = {
13
+ none: NO_JITTER,
14
+ equal: EQUAL_JITTER,
15
+ full: FULL_JITTER
16
+ }
17
+
18
+ JITTERS.default_proc = lambda { |h,k|
19
+ raise KeyError, "#{k} is not a named jitter function. Must be one of #{h.keys}"
20
+ }
21
+
22
+ DEFAULT_BACKOFF = lambda do |c|
23
+ delay = 2 ** c.retries * c.config.retry_base_delay
24
+ delay = [delay, c.config.retry_max_delay].min if (c.config.retry_max_delay || 0) > 0
25
+ jitter = c.config.retry_jitter
26
+ jitter = JITTERS[jitter] if Symbol === jitter
27
+ delay = jitter.call(delay) if jitter
28
+ Kernel.sleep(delay)
29
+ end
30
+
8
31
  option(:retry_limit,
9
32
  default: 3,
10
33
  doc_type: Integer,
@@ -16,7 +39,30 @@ checksum errors, networking errors, timeout errors and auth
16
39
  errors from expired credentials.
17
40
  DOCS
18
41
 
19
- option(:retry_backoff, lambda { |c| Kernel.sleep(2 ** c.retries * 0.3) })
42
+ option(:retry_max_delay,
43
+ default: 0,
44
+ doc_type: Integer,
45
+ docstring: <<-DOCS)
46
+ The maximum number of seconds to delay between retries (0 for no limit) used by the default backoff function.
47
+ DOCS
48
+
49
+ option(:retry_base_delay,
50
+ default: 0.3,
51
+ doc_type: Float,
52
+ docstring: <<-DOCS)
53
+ The base delay in seconds used by the default backoff function.
54
+ DOCS
55
+
56
+ option(:retry_jitter,
57
+ default: :none,
58
+ doc_type: Symbol,
59
+ docstring: <<-DOCS)
60
+ A delay randomiser function used by the default backoff function. Some predefined functions can be referenced by name - :none, :equal, :full, otherwise a Proc that takes and returns a number.
61
+
62
+ @see https://www.awsarchitectureblog.com/2015/03/backoff.html
63
+ DOCS
64
+
65
+ option(:retry_backoff, DEFAULT_BACKOFF)
20
66
 
21
67
  # @api private
22
68
  class ErrorInspector
@@ -20,7 +20,11 @@ module Aws
20
20
  # `~/.aws/credentials`) and the shared config file (the default path for
21
21
  # which is `~/.aws/config`) are loaded. However, if you set the
22
22
  # `ENV['AWS_SDK_CONFIG_OPT_OUT']` environment variable, only the shared
23
- # credential file will be loaded.
23
+ # credential file will be loaded. You can specify the shared credential
24
+ # file path with the `ENV['AWS_SHARED_CREDENTIALS_FILE']` environment
25
+ # variable or with the `:credentials_path` option. Similarly, you can
26
+ # specify the shared config file path with the `ENV['AWS_CONFIG_FILE']`
27
+ # environment variable or with the `:config_path` option.
24
28
  #
25
29
  # The default profile name is 'default'. You can specify the profile name
26
30
  # with the `ENV['AWS_PROFILE']` environment variable or with the
@@ -28,9 +32,11 @@ module Aws
28
32
  #
29
33
  # @param [Hash] options
30
34
  # @option options [String] :credentials_path Path to the shared credentials
31
- # file. Defaults to "#{Dir.home}/.aws/credentials".
35
+ # file. If not specified, will check `ENV['AWS_SHARED_CREDENTIALS_FILE']`
36
+ # before using the default value of "#{Dir.home}/.aws/credentials".
32
37
  # @option options [String] :config_path Path to the shared config file.
33
- # Defaults to "#{Dir.home}/.aws/config".
38
+ # If not specified, will check `ENV['AWS_CONFIG_FILE']` before using the
39
+ # default value of "#{Dir.home}/.aws/config".
34
40
  # @option options [String] :profile_name The credential/config profile name
35
41
  # to use. If not specified, will check `ENV['AWS_PROFILE']` before using
36
42
  # the fixed default value of 'default'.
@@ -254,11 +260,11 @@ module Aws
254
260
  end
255
261
 
256
262
  def determine_credentials_path
257
- default_shared_config_path('credentials')
263
+ ENV['AWS_SHARED_CREDENTIALS_FILE'] || default_shared_config_path('credentials')
258
264
  end
259
265
 
260
266
  def determine_config_path
261
- default_shared_config_path('config')
267
+ ENV['AWS_CONFIG_FILE'] || default_shared_config_path('config')
262
268
  end
263
269
 
264
270
  def default_shared_config_path(file)
@@ -40,6 +40,6 @@ require_relative 'aws-sdk-sts/customizations'
40
40
  # @service
41
41
  module Aws::STS
42
42
 
43
- GEM_VERSION = '3.21.3'
43
+ GEM_VERSION = '3.22.0'
44
44
 
45
45
  end
@@ -115,6 +115,14 @@ module Aws::STS
115
115
  # Used when loading credentials from the shared credentials file
116
116
  # at HOME/.aws/credentials. When not specified, 'default' is used.
117
117
  #
118
+ # @option options [Float] :retry_base_delay (0.3)
119
+ # The base delay in seconds used by the default backoff function.
120
+ #
121
+ # @option options [Symbol] :retry_jitter (:none)
122
+ # A delay randomiser function used by the default backoff function. Some predefined functions can be referenced by name - :none, :equal, :full, otherwise a Proc that takes and returns a number.
123
+ #
124
+ # @see https://www.awsarchitectureblog.com/2015/03/backoff.html
125
+ #
118
126
  # @option options [Integer] :retry_limit (3)
119
127
  # The maximum number of times to retry failed requests. Only
120
128
  # ~ 500 level server errors and certain ~ 400 level client errors
@@ -122,6 +130,9 @@ module Aws::STS
122
130
  # checksum errors, networking errors, timeout errors and auth
123
131
  # errors from expired credentials.
124
132
  #
133
+ # @option options [Integer] :retry_max_delay (0)
134
+ # The maximum number of seconds to delay between retries (0 for no limit) used by the default backoff function.
135
+ #
125
136
  # @option options [String] :secret_access_key
126
137
  #
127
138
  # @option options [String] :session_token
@@ -1475,7 +1486,7 @@ module Aws::STS
1475
1486
  params: params,
1476
1487
  config: config)
1477
1488
  context[:gem_name] = 'aws-sdk-core'
1478
- context[:gem_version] = '3.21.3'
1489
+ context[:gem_version] = '3.22.0'
1479
1490
  Seahorse::Client::Request.new(handlers, context)
1480
1491
  end
1481
1492
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.21.3
4
+ version: 3.22.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-06-20 00:00:00.000000000 Z
11
+ date: 2018-06-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jmespath