aws-sdk-v1 1.54.0 → 1.55.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +8 -0
- data/bin/aws-rb +1 -1
- data/lib/aws/core.rb +1 -1
- data/lib/aws/core/credential_providers.rb +18 -2
- data/lib/aws/core/data.rb +5 -0
- data/lib/aws/core/http/curb_handler.rb +4 -1
- data/lib/aws/core/xml/frame.rb +2 -1
- data/lib/aws/ec2/instance_collection.rb +1 -0
- data/lib/aws/rails.rb +1 -1
- data/lib/aws/route_53/change_batch.rb +1 -0
- data/lib/aws/route_53/resource_record_set.rb +7 -0
- data/lib/aws/s3/bucket.rb +4 -3
- data/lib/aws/s3/client.rb +1 -4
- data/lib/aws/s3/config.rb +15 -4
- data/lib/aws/s3/presign_v4.rb +1 -1
- data/lib/aws/s3/s3_object.rb +13 -10
- data/lib/aws/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 00ae7ed02850c7e4e23ea26b1b1efe6c739a456d
|
4
|
+
data.tar.gz: e7394ac1815b813ea14c1c534dd6643c8aa12fbd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e3848fee9c1e29345a3c3f1c3a2e66fd214cf6a7a9214fb3d0bfb75d713a8c97c40c1b03029bf9837669c307b976d8f998513a4eaa0ce45624d157bf437f4a93
|
7
|
+
data.tar.gz: 62c6aea9c28fb36a43814fb21619ed4594e8652a5ac0024e9c20206c4faf95ad93e769899878bcc8ad406a5672f9e90501f99c8624f76c7f590530200723f76f
|
data/README.md
CHANGED
@@ -82,6 +82,14 @@ ec2.instances['i-12345678'].tags.to_h
|
|
82
82
|
|
83
83
|
See the [API Documentation](http://docs.aws.amazon.com/AWSRubySDK/latest/frames.html) for more examples.
|
84
84
|
|
85
|
+
## Testing
|
86
|
+
|
87
|
+
All HTTP requests to live services can be globally mocked (e.g. from within the `spec_helper.rb` file):
|
88
|
+
|
89
|
+
```
|
90
|
+
AWS.stub!
|
91
|
+
```
|
92
|
+
|
85
93
|
## Links of Interest
|
86
94
|
|
87
95
|
* [API Documentation](http://docs.aws.amazon.com/AWSRubySDK/latest/frames.html)
|
data/bin/aws-rb
CHANGED
data/lib/aws/core.rb
CHANGED
@@ -678,7 +678,7 @@ module AWS
|
|
678
678
|
versions = {}
|
679
679
|
pattern = File.join(File.dirname(__FILE__), 'api_config', '*.yml')
|
680
680
|
Dir.glob(pattern).each do |path|
|
681
|
-
|
681
|
+
path.match(/(\w+)-(\d{4}-\d{2}-\d{2})/)
|
682
682
|
svc = SERVICES[$1].full_name
|
683
683
|
versions[svc] ||= []
|
684
684
|
versions[svc] << $2
|
@@ -354,6 +354,8 @@ module AWS
|
|
354
354
|
# @param [Hash] options
|
355
355
|
# @option options [String] :ip_address ('169.254.169.254')
|
356
356
|
# @option options [Integer] :port (80)
|
357
|
+
# @option options [Integer] :retries (0) Number of times to
|
358
|
+
# retry retrieving credentials.
|
357
359
|
# @option options [Float] :http_open_timeout (1)
|
358
360
|
# @option options [Float] :http_read_timeout (1)
|
359
361
|
# @option options [Object] :http_debug_output (nil) HTTP wire
|
@@ -362,6 +364,7 @@ module AWS
|
|
362
364
|
def initialize options = {}
|
363
365
|
@ip_address = options[:ip_address] || '169.254.169.254'
|
364
366
|
@port = options[:port] || 80
|
367
|
+
@retries = options[:retries] || 0
|
365
368
|
@http_open_timeout = options[:http_open_timeout] || 1
|
366
369
|
@http_read_timeout = options[:http_read_timeout] || 1
|
367
370
|
@http_debug_output = options[:http_debug_output]
|
@@ -373,6 +376,9 @@ module AWS
|
|
373
376
|
# @return [Integer] Defaults to port 80.
|
374
377
|
attr_accessor :port
|
375
378
|
|
379
|
+
# @return [Integer] Defaults to 0
|
380
|
+
attr_accessor :retries
|
381
|
+
|
376
382
|
# @return [Float]
|
377
383
|
attr_accessor :http_open_timeout
|
378
384
|
|
@@ -404,6 +410,8 @@ module AWS
|
|
404
410
|
|
405
411
|
# (see Provider#get_credentials)
|
406
412
|
def get_credentials
|
413
|
+
retries_left = retries
|
414
|
+
|
407
415
|
begin
|
408
416
|
|
409
417
|
http = Net::HTTP.new(ip_address, port, nil)
|
@@ -432,7 +440,15 @@ module AWS
|
|
432
440
|
credentials
|
433
441
|
|
434
442
|
rescue *FAILURES => e
|
435
|
-
|
443
|
+
if retries_left > 0
|
444
|
+
sleep_time = 2 ** (retries - retries_left)
|
445
|
+
Kernel.sleep(sleep_time)
|
446
|
+
|
447
|
+
retries_left -= 1
|
448
|
+
retry
|
449
|
+
else
|
450
|
+
{}
|
451
|
+
end
|
436
452
|
end
|
437
453
|
end
|
438
454
|
|
@@ -566,7 +582,7 @@ module AWS
|
|
566
582
|
|
567
583
|
include Provider
|
568
584
|
|
569
|
-
# @option options [AWS::STS] :sts (STS.new) An instance of {AWS::STS}.
|
585
|
+
# @option options [AWS::STS] :sts (STS.new) An instance of {AWS::STS}.
|
570
586
|
# This is used to make the API call to assume role.
|
571
587
|
# @option options [required, String] :role_arn
|
572
588
|
# @option options [required, String] :role_session_name
|
data/lib/aws/core/data.rb
CHANGED
@@ -19,7 +19,7 @@ module AWS
|
|
19
19
|
|
20
20
|
# @api private
|
21
21
|
class CurbHandler
|
22
|
-
|
22
|
+
class NetworkError < StandardError; end
|
23
23
|
def initialize
|
24
24
|
@q = []
|
25
25
|
@sem = Mutex.new
|
@@ -133,6 +133,9 @@ module AWS
|
|
133
133
|
|
134
134
|
curl.on_complete do
|
135
135
|
response.status = curl.response_code
|
136
|
+
unless curl.response_code > 0
|
137
|
+
response.network_error = NetworkError.new('Empty response. Assume network error.')
|
138
|
+
end
|
136
139
|
unless read_block
|
137
140
|
response.body = buffer.join("")
|
138
141
|
end
|
data/lib/aws/core/xml/frame.rb
CHANGED
@@ -231,7 +231,8 @@ module AWS
|
|
231
231
|
# that AWS uses almost (??) everywhere.
|
232
232
|
if @text.tr(*TRANSLATE_DIGITS) == EASY_FORMAT
|
233
233
|
parts = @text.tr(*DATE_PUNCTUATION).chop.split.map {|p| p.to_i }
|
234
|
-
|
234
|
+
milliseconds = parts.pop
|
235
|
+
parts[-1] = parts[-1] + "0.#{milliseconds}".to_f
|
235
236
|
klass.send(parts_constructor, *parts)
|
236
237
|
else
|
237
238
|
# fallback in case we have to handle another date format
|
data/lib/aws/rails.rb
CHANGED
@@ -104,7 +104,7 @@ module AWS
|
|
104
104
|
|
105
105
|
path = Pathname.new("#{rails_root}/config/aws.yml")
|
106
106
|
|
107
|
-
if File.
|
107
|
+
if File.exist?(path)
|
108
108
|
cfg = YAML::load(ERB.new(File.read(path)).result)
|
109
109
|
unless cfg[rails_env]
|
110
110
|
raise "config/aws.yml is missing a section for `#{rails_env}`"
|
@@ -128,6 +128,7 @@ module AWS
|
|
128
128
|
q[:resource_record_set][:ttl] = @change_options[:ttl] if @change_options[:ttl]
|
129
129
|
q[:resource_record_set][:resource_records] = @change_options[:resource_records] if @change_options[:resource_records]
|
130
130
|
q[:resource_record_set][:alias_target] = @change_options[:alias_target] if @change_options[:alias_target]
|
131
|
+
q[:resource_record_set][:geo_location] = @change_options[:geo_location] if @change_options[:geo_location]
|
131
132
|
q[:resource_record_set][:failover] = @change_options[:failover] if @change_options[:failover]
|
132
133
|
q[:resource_record_set][:health_check_id] = @change_options[:health_check_id] if @change_options[:health_check_id]
|
133
134
|
q
|
@@ -119,6 +119,12 @@ module AWS
|
|
119
119
|
@create_options[:ttl] = new_ttl
|
120
120
|
end
|
121
121
|
|
122
|
+
attribute :geo_location
|
123
|
+
|
124
|
+
def geo_location= new_geo_location
|
125
|
+
@create_options[:geo_location] = new_geo_location
|
126
|
+
end
|
127
|
+
|
122
128
|
attribute :failover
|
123
129
|
|
124
130
|
def failover= new_failover
|
@@ -241,6 +247,7 @@ module AWS
|
|
241
247
|
options[:region] = region if region
|
242
248
|
options[:ttl] = ttl if ttl
|
243
249
|
options[:resource_records] = resource_records if resource_records && !resource_records.empty?
|
250
|
+
options[:geo_location] = geo_location if geo_location
|
244
251
|
options[:failover] = failover if failover
|
245
252
|
options[:health_check_id] = health_check_id if health_check_id
|
246
253
|
end
|
data/lib/aws/s3/bucket.rb
CHANGED
@@ -238,11 +238,12 @@ module AWS
|
|
238
238
|
|
239
239
|
# Returns the url for this bucket.
|
240
240
|
# @return [String] url to the bucket
|
241
|
-
def url
|
241
|
+
def url(options = {})
|
242
|
+
protocol = options.fetch(:secure, false) ? "https://" : "http://"
|
242
243
|
if client.dns_compatible_bucket_name?(name)
|
243
|
-
"
|
244
|
+
"#{protocol}#{name}.s3.amazonaws.com/"
|
244
245
|
else
|
245
|
-
"
|
246
|
+
"#{protocol}s3.amazonaws.com/#{name}/"
|
246
247
|
end
|
247
248
|
end
|
248
249
|
|
data/lib/aws/s3/client.rb
CHANGED
@@ -51,10 +51,7 @@ module AWS
|
|
51
51
|
# @param [Core::Http::Request] request
|
52
52
|
# @api private
|
53
53
|
def sign_request request
|
54
|
-
|
55
|
-
@config.s3_signature_version.to_sym :
|
56
|
-
(@region =~ /cn-/ ? :v4 : :v3)
|
57
|
-
case version
|
54
|
+
case @config.s3_signature_version
|
58
55
|
when :v4 then v4_signer.sign_request(request)
|
59
56
|
when :v3 then v3_signer.sign_request(request)
|
60
57
|
else
|
data/lib/aws/s3/config.rb
CHANGED
@@ -36,14 +36,25 @@ AWS::Core::Configuration.module_eval do
|
|
36
36
|
add_option :s3_cache_object_attributes, false, :boolean => true
|
37
37
|
|
38
38
|
add_option :s3_signature_version do |config, value|
|
39
|
-
|
40
|
-
|
41
|
-
|
39
|
+
v3_regions = %w(
|
40
|
+
us-east-1
|
41
|
+
us-west-1
|
42
|
+
us-west-2
|
43
|
+
ap-northeast-1
|
44
|
+
ap-southeast-1
|
45
|
+
ap-southeast-2
|
46
|
+
sa-east-1
|
47
|
+
eu-west-1
|
48
|
+
us-gov-west-1
|
49
|
+
)
|
50
|
+
if value
|
42
51
|
value
|
43
52
|
elsif config.s3 && config.s3[:signature_version]
|
44
53
|
config.s3[:signature_version]
|
45
|
-
|
54
|
+
elsif v3_regions.include?(config.s3_region)
|
46
55
|
:v3
|
56
|
+
else
|
57
|
+
:v4
|
47
58
|
end
|
48
59
|
end
|
49
60
|
|
data/lib/aws/s3/presign_v4.rb
CHANGED
@@ -55,7 +55,7 @@ module AWS
|
|
55
55
|
signed_headers = 'Host'
|
56
56
|
|
57
57
|
if options[:acl]
|
58
|
-
request.add_param("
|
58
|
+
request.add_param("x-amz-acl", options[:acl].to_s.gsub(/_/, '-'))
|
59
59
|
end
|
60
60
|
|
61
61
|
# must be sent along with the PUT request headers
|
data/lib/aws/s3/s3_object.rb
CHANGED
@@ -805,9 +805,9 @@ module AWS
|
|
805
805
|
#
|
806
806
|
# @param [Hash] options
|
807
807
|
#
|
808
|
-
# @option options [String] :bucket_name The name of
|
809
|
-
# the source object can be found in. Defaults to the
|
810
|
-
# object's bucket.
|
808
|
+
# @option options [String] :bucket_name The slash-prefixed name of
|
809
|
+
# the bucket the source object can be found in. Defaults to the
|
810
|
+
# current object's bucket.
|
811
811
|
#
|
812
812
|
# @option options [Bucket] :bucket The bucket the source object
|
813
813
|
# can be found in. Defaults to the current object's bucket.
|
@@ -873,17 +873,20 @@ module AWS
|
|
873
873
|
options[:copy_source] =
|
874
874
|
case source
|
875
875
|
when S3Object
|
876
|
-
"
|
876
|
+
"/#{source.bucket.name}/#{source.key}"
|
877
877
|
when ObjectVersion
|
878
878
|
options[:version_id] = source.version_id
|
879
|
-
"
|
879
|
+
"/#{source.object.bucket.name}/#{source.object.key}"
|
880
880
|
else
|
881
881
|
if options[:bucket]
|
882
|
-
"
|
882
|
+
"/#{options.delete(:bucket).name}/#{source}"
|
883
883
|
elsif options[:bucket_name]
|
884
|
+
# oops, this should be slash-prefixed, but unable to change
|
885
|
+
# this without breaking users that already work-around this
|
886
|
+
# bug by sending :bucket_name => "/bucket-name"
|
884
887
|
"#{options.delete(:bucket_name)}/#{source}"
|
885
888
|
else
|
886
|
-
"
|
889
|
+
"/#{self.bucket.name}/#{source}"
|
887
890
|
end
|
888
891
|
end
|
889
892
|
|
@@ -936,9 +939,9 @@ module AWS
|
|
936
939
|
#
|
937
940
|
# @param [Hash] options
|
938
941
|
#
|
939
|
-
# @option options [String] :bucket_name The name of the
|
940
|
-
# the object should be copied into. Defaults to the current
|
941
|
-
# bucket.
|
942
|
+
# @option options [String] :bucket_name The slash-prefixed name of the
|
943
|
+
# bucket the object should be copied into. Defaults to the current
|
944
|
+
# object's bucket.
|
942
945
|
#
|
943
946
|
# @option options [Bucket] :bucket The bucket the target object
|
944
947
|
# should be copied into. Defaults to the current object's bucket.
|
data/lib/aws/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aws-sdk-v1
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.55.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: 2014-
|
11
|
+
date: 2014-10-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|