diff --git a/gems/aws-sdk-core/CHANGELOG.md b/gems/aws-sdk-core/CHANGELOG.md index cde1773c422..e22ca1fa2b6 100644 --- a/gems/aws-sdk-core/CHANGELOG.md +++ b/gems/aws-sdk-core/CHANGELOG.md @@ -1,6 +1,7 @@ Unreleased Changes ------------------ +* Issue - Convert ENV['AWS_MAX_ATTEMPTS'] String value to Integer when set. (#2319) * Issue - Handle unknown and unmodeled events from event streams by ignoring them and providing a new callback rather than raising an error. 3.97.0 (2020-05-28) diff --git a/gems/aws-sdk-core/lib/aws-sdk-core/plugins/retry_errors.rb b/gems/aws-sdk-core/lib/aws-sdk-core/plugins/retry_errors.rb index abdf76eeeda..b6adb19c6b3 100644 --- a/gems/aws-sdk-core/lib/aws-sdk-core/plugins/retry_errors.rb +++ b/gems/aws-sdk-core/lib/aws-sdk-core/plugins/retry_errors.rb @@ -174,7 +174,7 @@ def self.resolve_retry_mode(cfg) end def self.resolve_max_attempts(cfg) - value = ENV['AWS_MAX_ATTEMPTS'] || + value = (ENV['AWS_MAX_ATTEMPTS'] && ENV['AWS_MAX_ATTEMPTS'].to_i) || Aws.shared_config.max_attempts(profile: cfg.profile) || 3 # Raise if provided value is not a positive integer @@ -190,7 +190,6 @@ def self.resolve_adaptive_retry_wait_to_fill(cfg) value = ENV['AWS_ADAPTIVE_RETRY_WAIT_TO_FILL'] || Aws.shared_config.adaptive_retry_wait_to_fill(profile: cfg.profile) || 'true' - # Raise if provided value is not true or false if value != 'true' && value != 'false' raise ArgumentError, @@ -198,7 +197,6 @@ def self.resolve_adaptive_retry_wait_to_fill(cfg) 'adaptive_retry_wait_to_fill profile option or for '\ 'ENV[\'AWS_ADAPTIVE_RETRY_WAIT_TO_FILL\']' end - value == 'true' end @@ -206,7 +204,6 @@ def self.resolve_correct_clock_skew(cfg) value = ENV['AWS_CORRECT_CLOCK_SKEW'] || Aws.shared_config.correct_clock_skew(profile: cfg.profile) || 'true' - # Raise if provided value is not true or false if value != 'true' && value != 'false' raise ArgumentError, @@ -214,7 +211,6 @@ def self.resolve_correct_clock_skew(cfg) 'correct_clock_skew profile option or for '\ 'ENV[\'AWS_CORRECT_CLOCK_SKEW\']' end - value == 'true' end diff --git a/gems/aws-sdk-core/spec/aws/plugins/retry_errors_spec.rb b/gems/aws-sdk-core/spec/aws/plugins/retry_errors_spec.rb index 39ee5f52c80..c5693750ed9 100644 --- a/gems/aws-sdk-core/spec/aws/plugins/retry_errors_spec.rb +++ b/gems/aws-sdk-core/spec/aws/plugins/retry_errors_spec.rb @@ -25,15 +25,17 @@ module Plugins end it 'uses the handler when retry_mode is standard' do - client = RetryErrorsSvc::Client.new(retry_mode: 'standard', - region: 'us-west-2') + client = RetryErrorsSvc::Client.new( + retry_mode: 'standard', region: 'us-west-2' + ) expect(client.handlers.entries.map(&:handler_class)). to include(RetryErrors::Handler) end it 'uses the handler when retry_mode is adaptive' do - client = RetryErrorsSvc::Client.new(retry_mode: 'adaptive', - region: 'us-west-2') + client = RetryErrorsSvc::Client.new( + retry_mode: 'adaptive', region: 'us-west-2' + ) expect(client.handlers.entries.map(&:handler_class)) .to include(RetryErrors::Handler) end @@ -51,7 +53,7 @@ module Plugins it 'can configure max_attempts using ENV with precedence over config' do allow_any_instance_of(Aws::SharedConfig) .to receive(:max_attempts).and_return(3) - ENV['AWS_MAX_ATTEMPTS'] = 1 + ENV['AWS_MAX_ATTEMPTS'] = '1' expect(client.config.max_attempts).to eq(1) end @@ -61,7 +63,7 @@ module Plugins end it 'raises when max_attempts is not >= 0' do - ENV['AWS_MAX_ATTEMPTS'] = -1 + ENV['AWS_MAX_ATTEMPTS'] = '-1' expect { client }.to raise_error(ArgumentError) end diff --git a/gems/aws-sdk-core/spec/seahorse/client/net_http/handler_spec.rb b/gems/aws-sdk-core/spec/seahorse/client/net_http/handler_spec.rb index 7f7a5c69a3a..b7eeeaa0502 100644 --- a/gems/aws-sdk-core/spec/seahorse/client/net_http/handler_spec.rb +++ b/gems/aws-sdk-core/spec/seahorse/client/net_http/handler_spec.rb @@ -49,7 +49,7 @@ def endpoint it 're-uses session for slow request that are taking more time than the configured idle timeout' do session = double('http-session').as_null_object - session.stub(:request) { sleep 2 } + allow(session).to receive(:request) { sleep 2 } pool = ConnectionPool.for(http_idle_timeout: 1) expect(pool).to receive(:start_session). exactly(1).times. diff --git a/gems/aws-sdk-core/spec/shared_spec_helper.rb b/gems/aws-sdk-core/spec/shared_spec_helper.rb index f43384bf35b..3c1e7c3a31c 100644 --- a/gems/aws-sdk-core/spec/shared_spec_helper.rb +++ b/gems/aws-sdk-core/spec/shared_spec_helper.rb @@ -15,8 +15,9 @@ # RSpec.configure do |config| config.before(:each) do - - stub_const('ENV', {}) + # Clear the current ENV to avoid loading credentials. + # This was previously mocked with stub_const but was provided a hash. + ENV.clear # disable loading credentials from shared file allow(Dir).to receive(:home).and_raise(ArgumentError) @@ -43,4 +44,4 @@ Thread.report_on_exception = current_value if current_value end -end \ No newline at end of file +end