right_aws 2.0.0 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +22 -1
- data/Manifest.txt +11 -1
- data/README.txt +0 -4
- data/Rakefile +19 -25
- data/lib/acf/right_acf_interface.rb +199 -135
- data/lib/acf/right_acf_invalidations.rb +144 -0
- data/lib/acf/right_acf_origin_access_identities.rb +4 -4
- data/lib/acf/right_acf_streaming_interface.rb +19 -26
- data/lib/acw/right_acw_interface.rb +1 -2
- data/lib/as/right_as_interface.rb +6 -7
- data/lib/awsbase/right_awsbase.rb +287 -91
- data/lib/awsbase/support.rb +2 -82
- data/lib/awsbase/version.rb +9 -0
- data/lib/ec2/right_ec2.rb +101 -38
- data/lib/ec2/right_ec2_ebs.rb +71 -58
- data/lib/ec2/right_ec2_images.rb +82 -42
- data/lib/ec2/right_ec2_instances.rb +74 -44
- data/lib/ec2/right_ec2_placement_groups.rb +108 -0
- data/lib/ec2/right_ec2_reserved_instances.rb +50 -46
- data/lib/ec2/right_ec2_security_groups.rb +148 -32
- data/lib/ec2/right_ec2_spot_instances.rb +53 -27
- data/lib/ec2/right_ec2_tags.rb +139 -0
- data/lib/ec2/right_ec2_vpc.rb +151 -139
- data/lib/ec2/right_ec2_windows_mobility.rb +84 -0
- data/lib/elb/right_elb_interface.rb +93 -18
- data/lib/iam/right_iam_access_keys.rb +71 -0
- data/lib/iam/right_iam_groups.rb +195 -0
- data/lib/iam/right_iam_interface.rb +341 -0
- data/lib/iam/right_iam_mfa_devices.rb +67 -0
- data/lib/iam/right_iam_users.rb +251 -0
- data/lib/rds/right_rds_interface.rb +513 -202
- data/lib/right_aws.rb +12 -12
- data/lib/route_53/right_route_53_interface.rb +630 -0
- data/lib/s3/right_s3.rb +9 -12
- data/lib/s3/right_s3_interface.rb +10 -11
- data/lib/sdb/active_sdb.rb +18 -33
- data/lib/sdb/right_sdb_interface.rb +36 -4
- data/lib/sqs/right_sqs.rb +1 -2
- data/lib/sqs/right_sqs_gen2.rb +0 -1
- data/lib/sqs/right_sqs_gen2_interface.rb +4 -5
- data/lib/sqs/right_sqs_interface.rb +6 -7
- data/right_aws.gemspec +91 -0
- data/test/awsbase/test_helper.rb +2 -0
- data/test/awsbase/test_right_awsbase.rb +12 -0
- data/test/s3/test_right_s3.rb +1 -1
- data/test/sdb/test_active_sdb.rb +1 -1
- data/test/sdb/test_batch_put_attributes.rb +54 -0
- data/test/sqs/test_right_sqs.rb +0 -6
- data/test/sqs/test_right_sqs_gen2.rb +1 -1
- metadata +109 -58
@@ -49,13 +49,12 @@ module RightAws
|
|
49
49
|
|
50
50
|
# Creates a new SqsInterface instance.
|
51
51
|
#
|
52
|
-
# sqs = RightAws::SqsInterface.new('1E3GDYEOGFJPIT75KDT40','hgTHt68JY07JKUY08ftHYtERkjgtfERn57DFE379', {:
|
52
|
+
# sqs = RightAws::SqsInterface.new('1E3GDYEOGFJPIT75KDT40','hgTHt68JY07JKUY08ftHYtERkjgtfERn57DFE379', {:logger => Logger.new('/tmp/x.log')})
|
53
53
|
#
|
54
54
|
# Params is a hash:
|
55
55
|
#
|
56
56
|
# {:server => 'queue.amazonaws.com' # Amazon service host: 'queue.amazonaws.com'(default)
|
57
57
|
# :port => 443 # Amazon service port: 80 or 443(default)
|
58
|
-
# :multi_thread => true|false # Multi-threaded (connection per each thread): true or false(default)
|
59
58
|
# :signature_version => '0' # The signature version : '0', '1' or '2'(default)
|
60
59
|
# :logger => Logger Object} # Logger instance: logs to STDOUT if omitted }
|
61
60
|
#
|
@@ -104,8 +103,8 @@ module RightAws
|
|
104
103
|
param.each{ |key, value| param.delete(key) if (value.nil? || key.is_a?(Symbol)) }
|
105
104
|
# created request
|
106
105
|
param_to_str = param.to_a.collect{|key,val| key.to_s + "=" + CGI::escape(val.to_s) }.join("&")
|
107
|
-
param_to_str = "?#{param_to_str}" unless param_to_str.
|
108
|
-
request = "Net::HTTP::#{method.capitalize}".
|
106
|
+
param_to_str = "?#{param_to_str}" unless param_to_str.right_blank?
|
107
|
+
request = "Net::HTTP::#{method.capitalize}".right_constantize.new("#{queue_uri}#{param_to_str}")
|
109
108
|
request.body = message if message
|
110
109
|
# set main headers
|
111
110
|
request['content-md5'] = ''
|
@@ -311,7 +310,7 @@ module RightAws
|
|
311
310
|
def peek_message(queue_url, message_id)
|
312
311
|
req_hash = generate_rest_request('GET', :queue_url => "#{queue_url}/#{CGI::escape message_id}" )
|
313
312
|
messages = request_info(req_hash, SqsReceiveMessagesParser.new(:logger => @logger))
|
314
|
-
messages.
|
313
|
+
messages.right_blank? ? nil : messages[0]
|
315
314
|
rescue
|
316
315
|
on_exception
|
317
316
|
end
|
@@ -452,7 +451,7 @@ module RightAws
|
|
452
451
|
#
|
453
452
|
def receive_message(queue_url, visibility_timeout=nil)
|
454
453
|
result = receive_messages(queue_url, 1, visibility_timeout)
|
455
|
-
result.
|
454
|
+
result.right_blank? ? nil : result[0]
|
456
455
|
rescue
|
457
456
|
on_exception
|
458
457
|
end
|
@@ -482,7 +481,7 @@ module RightAws
|
|
482
481
|
#
|
483
482
|
def pop_message(queue_url)
|
484
483
|
messages = pop_messages(queue_url)
|
485
|
-
messages.
|
484
|
+
messages.right_blank? ? nil : messages[0]
|
486
485
|
rescue
|
487
486
|
on_exception
|
488
487
|
end
|
data/right_aws.gemspec
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
#-- -*- mode: ruby; encoding: utf-8 -*-
|
2
|
+
# Copyright: Copyright (c) 2010 RightScale, Inc.
|
3
|
+
#
|
4
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
5
|
+
# a copy of this software and associated documentation files (the
|
6
|
+
# 'Software'), to deal in the Software without restriction, including
|
7
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
8
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
9
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
10
|
+
# the following conditions:
|
11
|
+
#
|
12
|
+
# The above copyright notice and this permission notice shall be
|
13
|
+
# included in all copies or substantial portions of the Software.
|
14
|
+
#
|
15
|
+
# THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
16
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
17
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
18
|
+
# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
19
|
+
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
20
|
+
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
21
|
+
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
|
+
#++
|
23
|
+
|
24
|
+
require 'rubygems'
|
25
|
+
require File.expand_path(File.join(File.dirname(__FILE__), "lib", "awsbase", "version"))
|
26
|
+
|
27
|
+
Gem::Specification.new do |spec|
|
28
|
+
spec.name = 'right_aws'
|
29
|
+
spec.rubyforge_project = 'rightaws'
|
30
|
+
spec.version = RightAws::VERSION::STRING
|
31
|
+
spec.authors = ['RightScale, Inc.']
|
32
|
+
spec.email = 'support@rightscale.com'
|
33
|
+
spec.summary = 'Interface classes for the Amazon EC2, SQS, and S3 Web Services'
|
34
|
+
spec.has_rdoc = true
|
35
|
+
spec.rdoc_options = ['--main', 'README.txt', '--title', '']
|
36
|
+
spec.extra_rdoc_files = ['README.txt']
|
37
|
+
spec.required_ruby_version = '>= 1.8.7'
|
38
|
+
spec.require_path = 'lib'
|
39
|
+
|
40
|
+
spec.add_dependency('right_http_connection', '>= 1.2.5')
|
41
|
+
#spec.requirements << "uuidtools >= 1.0.7 if you want to use ActiveSdb"
|
42
|
+
spec.requirements << "libxml-ruby >= 0.5.2.0 is encouraged"
|
43
|
+
|
44
|
+
spec.add_development_dependency('rake')
|
45
|
+
spec.add_development_dependency('rcov')
|
46
|
+
|
47
|
+
spec.description = <<-EOF
|
48
|
+
== DESCRIPTION:
|
49
|
+
|
50
|
+
The RightScale AWS gems have been designed to provide a robust, fast, and secure interface to Amazon EC2, EBS, S3, SQS, SDB, and CloudFront.
|
51
|
+
These gems have been used in production by RightScale since late 2006 and are being maintained to track enhancements made by Amazon.
|
52
|
+
The RightScale AWS gems comprise:
|
53
|
+
|
54
|
+
- RightAws::Ec2 -- interface to Amazon EC2 (Elastic Compute Cloud) and the
|
55
|
+
associated EBS (Elastic Block Store)
|
56
|
+
- RightAws::S3 and RightAws::S3Interface -- interface to Amazon S3 (Simple Storage Service)
|
57
|
+
- RightAws::Sqs and RightAws::SqsInterface -- interface to first-generation Amazon SQS (Simple Queue Service) (API version 2007-05-01)
|
58
|
+
- RightAws::SqsGen2 and RightAws::SqsGen2Interface -- interface to second-generation Amazon SQS (Simple Queue Service) (API version 2008-01-01)
|
59
|
+
- RightAws::SdbInterface and RightAws::ActiveSdb -- interface to Amazon SDB (SimpleDB)
|
60
|
+
- RightAws::AcfInterface -- interface to Amazon CloudFront, a content distribution service
|
61
|
+
|
62
|
+
== FEATURES:
|
63
|
+
|
64
|
+
- Full programmmatic access to EC2, EBS, S3, SQS, SDB, and CloudFront.
|
65
|
+
- Complete error handling: all operations check for errors and report complete
|
66
|
+
error information by raising an AwsError.
|
67
|
+
- Persistent HTTP connections with robust network-level retry layer using
|
68
|
+
RightHttpConnection). This includes socket timeouts and retries.
|
69
|
+
- Robust HTTP-level retry layer. Certain (user-adjustable) HTTP errors returned
|
70
|
+
by Amazon's services are classified as temporary errors.
|
71
|
+
These errors are automaticallly retried using exponentially increasing intervals.
|
72
|
+
The number of retries is user-configurable.
|
73
|
+
- Fast REXML-based parsing of responses (as fast as a pure Ruby solution allows).
|
74
|
+
- Uses libxml (if available) for faster response parsing.
|
75
|
+
- Support for large S3 list operations. Buckets and key subfolders containing
|
76
|
+
many (> 1000) keys are listed in entirety. Operations based on list (like
|
77
|
+
bucket clear) work on arbitrary numbers of keys.
|
78
|
+
- Support for streaming GETs from S3, and streaming PUTs to S3 if the data source is a file.
|
79
|
+
- Support for single-threaded usage, multithreaded usage, as well as usage with multiple
|
80
|
+
AWS accounts.
|
81
|
+
- Support for both first- and second-generation SQS (API versions 2007-05-01
|
82
|
+
and 2008-01-01). These versions of SQS are not compatible.
|
83
|
+
- Support for signature versions 0 and 1 on SQS, SDB, and EC2.
|
84
|
+
- Interoperability with any cloud running Eucalyptus (http://eucalyptus.cs.ucsb.edu)
|
85
|
+
- Test suite (requires AWS account to do "live" testing).
|
86
|
+
EOF
|
87
|
+
|
88
|
+
candidates = Dir.glob('{lib,test}/**/*') + ['History.txt', 'Manifest.txt', 'README.txt', 'Rakefile', 'right_aws.gemspec']
|
89
|
+
spec.files = candidates.sort
|
90
|
+
spec.test_files = Dir.glob('test/**/*')
|
91
|
+
end
|
data/test/s3/test_right_s3.rb
CHANGED
@@ -264,7 +264,7 @@ class TestS3 < Test::Unit::TestCase
|
|
264
264
|
# create a key
|
265
265
|
key = bucket.key('test/copy/30')
|
266
266
|
key.put(RIGHT_OBJECT_TEXT)
|
267
|
-
assert key.meta_headers.
|
267
|
+
assert key.meta_headers.right_blank?
|
268
268
|
# store some meta keys
|
269
269
|
meta = {'family' => 'oops','race' => 'troll'}
|
270
270
|
assert_equal meta, key.save_meta(meta)
|
data/test/sdb/test_active_sdb.rb
CHANGED
@@ -77,7 +77,7 @@ class TestSdb < Test::Unit::TestCase
|
|
77
77
|
def test_02_create_items
|
78
78
|
# check that DB is empty
|
79
79
|
clients = Client.find(:all)
|
80
|
-
assert clients.
|
80
|
+
assert clients.right_blank?
|
81
81
|
# put some clients there
|
82
82
|
@clients.each do |client|
|
83
83
|
Client.create client
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require File.dirname(__FILE__) + '/test_helper.rb'
|
3
|
+
|
4
|
+
class TestSdb < Test::Unit::TestCase
|
5
|
+
|
6
|
+
def setup
|
7
|
+
STDOUT.sync = true
|
8
|
+
@domain = 'right_sdb_awesome_test_domain'
|
9
|
+
@attributes = {
|
10
|
+
'a' => { 'foo' => '123' },
|
11
|
+
'b' => { 'bar' => '456' }
|
12
|
+
}
|
13
|
+
# Interface instance
|
14
|
+
@sdb = Rightscale::SdbInterface.new
|
15
|
+
@sdb.delete_domain(@domain)
|
16
|
+
wait(SDB_DELAY, "after removing domain")
|
17
|
+
@sdb.create_domain(@domain)
|
18
|
+
wait(SDB_DELAY, "after recreating domain")
|
19
|
+
end
|
20
|
+
|
21
|
+
SDB_DELAY = 2
|
22
|
+
|
23
|
+
def wait(delay, msg='')
|
24
|
+
print "waiting #{delay} seconds #{msg}"
|
25
|
+
while delay>0 do
|
26
|
+
delay -= 1
|
27
|
+
print '.'
|
28
|
+
sleep 1
|
29
|
+
end
|
30
|
+
puts
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_batch_put_attributes
|
34
|
+
@sdb.batch_put_attributes(@domain, @attributes)
|
35
|
+
wait(SDB_DELAY, "after putting attributes")
|
36
|
+
a = @sdb.get_attributes(@domain, 'a')[:attributes]
|
37
|
+
b = @sdb.get_attributes(@domain, 'b')[:attributes]
|
38
|
+
assert_equal( {'foo' => ['123']}, a)
|
39
|
+
assert_equal( {'bar' => ['456']}, b)
|
40
|
+
|
41
|
+
# Replace = false
|
42
|
+
@sdb.batch_put_attributes(@domain, { 'a' => {'foo' => ['789']}})
|
43
|
+
wait(SDB_DELAY, "after putting attributes")
|
44
|
+
a = @sdb.get_attributes(@domain, 'a')[:attributes]
|
45
|
+
assert_equal ['123', '789'], a['foo'].sort
|
46
|
+
|
47
|
+
# Replace = true
|
48
|
+
@sdb.batch_put_attributes(@domain, {'b' => {'bar' => ['789']}}, true)
|
49
|
+
wait(SDB_DELAY, "after putting attributes")
|
50
|
+
b = @sdb.get_attributes(@domain, 'b')[:attributes]
|
51
|
+
assert_equal ['789'], b['bar'].sort
|
52
|
+
|
53
|
+
end
|
54
|
+
end
|
data/test/sqs/test_right_sqs.rb
CHANGED
@@ -273,12 +273,6 @@ class TestSqs < Test::Unit::TestCase
|
|
273
273
|
assert_nil(Rightscale::SqsInterface.amazon_problems)
|
274
274
|
end
|
275
275
|
|
276
|
-
def test_28_check_threading_model
|
277
|
-
assert(!@sqs.multi_thread)
|
278
|
-
newsqs = Rightscale::SqsInterface.new(TestCredentials.aws_access_key_id, TestCredentials.aws_secret_access_key, {:multi_thread => true})
|
279
|
-
assert(newsqs.multi_thread)
|
280
|
-
end
|
281
|
-
|
282
276
|
def test_29_signature_version_0
|
283
277
|
sqs = Rightscale::SqsInterface.new(TestCredentials.aws_access_key_id, TestCredentials.aws_secret_access_key, :signature_version => '0')
|
284
278
|
assert_nothing_raised do
|
@@ -94,7 +94,7 @@ class TestSqsGen2 < Test::Unit::TestCase
|
|
94
94
|
def test_06_test_permissions
|
95
95
|
queue_url = @sqs.queue_url_by_name(@queue_name)
|
96
96
|
permissions = @sqs.get_queue_attributes(queue_url, 'Policy')
|
97
|
-
assert !permissions.
|
97
|
+
assert !permissions.right_blank?
|
98
98
|
end
|
99
99
|
|
100
100
|
def test_07_revoke_permissions
|
metadata
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: right_aws
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
hash: 11
|
4
5
|
prerelease: false
|
5
6
|
segments:
|
6
7
|
- 2
|
8
|
+
- 1
|
7
9
|
- 0
|
8
|
-
|
9
|
-
version: 2.0.0
|
10
|
+
version: 2.1.0
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- RightScale, Inc.
|
@@ -14,115 +15,137 @@ autorequire:
|
|
14
15
|
bindir: bin
|
15
16
|
cert_chain: []
|
16
17
|
|
17
|
-
date:
|
18
|
+
date: 2011-03-25 00:00:00 -07:00
|
18
19
|
default_executable:
|
19
20
|
dependencies:
|
20
21
|
- !ruby/object:Gem::Dependency
|
21
22
|
name: right_http_connection
|
22
23
|
prerelease: false
|
23
24
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
24
26
|
requirements:
|
25
27
|
- - ">="
|
26
28
|
- !ruby/object:Gem::Version
|
29
|
+
hash: 21
|
27
30
|
segments:
|
28
31
|
- 1
|
29
32
|
- 2
|
30
|
-
-
|
31
|
-
version: 1.2.
|
33
|
+
- 5
|
34
|
+
version: 1.2.5
|
32
35
|
type: :runtime
|
33
36
|
version_requirements: *id001
|
34
37
|
- !ruby/object:Gem::Dependency
|
35
|
-
name:
|
38
|
+
name: rake
|
36
39
|
prerelease: false
|
37
40
|
requirement: &id002 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
38
42
|
requirements:
|
39
43
|
- - ">="
|
40
44
|
- !ruby/object:Gem::Version
|
45
|
+
hash: 3
|
41
46
|
segments:
|
42
|
-
- 2
|
43
47
|
- 0
|
44
|
-
|
45
|
-
version: 2.0.4
|
48
|
+
version: "0"
|
46
49
|
type: :development
|
47
50
|
version_requirements: *id002
|
48
51
|
- !ruby/object:Gem::Dependency
|
49
|
-
name:
|
52
|
+
name: rcov
|
50
53
|
prerelease: false
|
51
54
|
requirement: &id003 !ruby/object:Gem::Requirement
|
55
|
+
none: false
|
52
56
|
requirements:
|
53
57
|
- - ">="
|
54
58
|
- !ruby/object:Gem::Version
|
59
|
+
hash: 3
|
55
60
|
segments:
|
56
61
|
- 0
|
57
|
-
|
58
|
-
- 0
|
59
|
-
version: 0.5.0
|
62
|
+
version: "0"
|
60
63
|
type: :development
|
61
64
|
version_requirements: *id003
|
62
|
-
|
63
|
-
name: hoe
|
64
|
-
prerelease: false
|
65
|
-
requirement: &id004 !ruby/object:Gem::Requirement
|
66
|
-
requirements:
|
67
|
-
- - ">="
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
segments:
|
70
|
-
- 2
|
71
|
-
- 5
|
72
|
-
- 0
|
73
|
-
version: 2.5.0
|
74
|
-
type: :development
|
75
|
-
version_requirements: *id004
|
76
|
-
description: |-
|
65
|
+
description: |
|
77
66
|
== DESCRIPTION:
|
78
67
|
|
79
|
-
The RightScale AWS gems have been designed to provide a robust, fast, and secure interface to Amazon EC2, EBS, S3, SQS, SDB, and CloudFront.
|
80
|
-
These gems have been used in production by RightScale since late 2006 and are being maintained to track enhancements made by Amazon.
|
68
|
+
The RightScale AWS gems have been designed to provide a robust, fast, and secure interface to Amazon EC2, EBS, S3, SQS, SDB, and CloudFront.
|
69
|
+
These gems have been used in production by RightScale since late 2006 and are being maintained to track enhancements made by Amazon.
|
81
70
|
The RightScale AWS gems comprise:
|
82
71
|
|
83
|
-
- RightAws::Ec2 -- interface to Amazon EC2 (Elastic Compute Cloud)
|
72
|
+
- RightAws::Ec2 -- interface to Amazon EC2 (Elastic Compute Cloud) and the
|
73
|
+
associated EBS (Elastic Block Store)
|
84
74
|
- RightAws::S3 and RightAws::S3Interface -- interface to Amazon S3 (Simple Storage Service)
|
85
|
-
- RightAws::Sqs and RightAws::SqsInterface -- interface to first-generation Amazon SQS (Simple Queue Service)
|
86
|
-
- RightAws::SqsGen2 and RightAws::SqsGen2Interface -- interface to second-generation Amazon SQS (Simple Queue Service)
|
75
|
+
- RightAws::Sqs and RightAws::SqsInterface -- interface to first-generation Amazon SQS (Simple Queue Service) (API version 2007-05-01)
|
76
|
+
- RightAws::SqsGen2 and RightAws::SqsGen2Interface -- interface to second-generation Amazon SQS (Simple Queue Service) (API version 2008-01-01)
|
87
77
|
- RightAws::SdbInterface and RightAws::ActiveSdb -- interface to Amazon SDB (SimpleDB)
|
88
78
|
- RightAws::AcfInterface -- interface to Amazon CloudFront, a content distribution service
|
89
|
-
- RightAws::AsInterface -- interface to Amazon Auto Scaling
|
90
|
-
- RightAws::AcwInterface -- interface to Amazon Cloud Watch
|
91
|
-
- RightAws::ElbInterface -- interface to Amazon Elastic Load Balancer
|
92
|
-
- RightAws::RdsInterface -- interface to Amazon RDS instances
|
93
79
|
|
94
80
|
== FEATURES:
|
81
|
+
|
82
|
+
- Full programmmatic access to EC2, EBS, S3, SQS, SDB, and CloudFront.
|
83
|
+
- Complete error handling: all operations check for errors and report complete
|
84
|
+
error information by raising an AwsError.
|
85
|
+
- Persistent HTTP connections with robust network-level retry layer using
|
86
|
+
RightHttpConnection). This includes socket timeouts and retries.
|
87
|
+
- Robust HTTP-level retry layer. Certain (user-adjustable) HTTP errors returned
|
88
|
+
by Amazon's services are classified as temporary errors.
|
89
|
+
These errors are automaticallly retried using exponentially increasing intervals.
|
90
|
+
The number of retries is user-configurable.
|
91
|
+
- Fast REXML-based parsing of responses (as fast as a pure Ruby solution allows).
|
92
|
+
- Uses libxml (if available) for faster response parsing.
|
93
|
+
- Support for large S3 list operations. Buckets and key subfolders containing
|
94
|
+
many (> 1000) keys are listed in entirety. Operations based on list (like
|
95
|
+
bucket clear) work on arbitrary numbers of keys.
|
96
|
+
- Support for streaming GETs from S3, and streaming PUTs to S3 if the data source is a file.
|
97
|
+
- Support for single-threaded usage, multithreaded usage, as well as usage with multiple
|
98
|
+
AWS accounts.
|
99
|
+
- Support for both first- and second-generation SQS (API versions 2007-05-01
|
100
|
+
and 2008-01-01). These versions of SQS are not compatible.
|
101
|
+
- Support for signature versions 0 and 1 on SQS, SDB, and EC2.
|
102
|
+
- Interoperability with any cloud running Eucalyptus (http://eucalyptus.cs.ucsb.edu)
|
103
|
+
- Test suite (requires AWS account to do "live" testing).
|
104
|
+
|
95
105
|
email: support@rightscale.com
|
96
106
|
executables: []
|
97
107
|
|
98
108
|
extensions: []
|
99
109
|
|
100
110
|
extra_rdoc_files:
|
101
|
-
- History.txt
|
102
|
-
- Manifest.txt
|
103
111
|
- README.txt
|
104
112
|
files:
|
105
113
|
- History.txt
|
106
114
|
- Manifest.txt
|
107
115
|
- README.txt
|
108
116
|
- Rakefile
|
117
|
+
- lib/acf/right_acf_interface.rb
|
118
|
+
- lib/acf/right_acf_invalidations.rb
|
119
|
+
- lib/acf/right_acf_origin_access_identities.rb
|
120
|
+
- lib/acf/right_acf_streaming_interface.rb
|
121
|
+
- lib/acw/right_acw_interface.rb
|
122
|
+
- lib/as/right_as_interface.rb
|
109
123
|
- lib/awsbase/benchmark_fix.rb
|
110
124
|
- lib/awsbase/right_awsbase.rb
|
111
125
|
- lib/awsbase/support.rb
|
126
|
+
- lib/awsbase/version.rb
|
112
127
|
- lib/ec2/right_ec2.rb
|
128
|
+
- lib/ec2/right_ec2_ebs.rb
|
113
129
|
- lib/ec2/right_ec2_images.rb
|
114
130
|
- lib/ec2/right_ec2_instances.rb
|
131
|
+
- lib/ec2/right_ec2_monitoring.rb
|
132
|
+
- lib/ec2/right_ec2_placement_groups.rb
|
133
|
+
- lib/ec2/right_ec2_reserved_instances.rb
|
115
134
|
- lib/ec2/right_ec2_security_groups.rb
|
116
135
|
- lib/ec2/right_ec2_spot_instances.rb
|
117
|
-
- lib/ec2/
|
118
|
-
- lib/ec2/right_ec2_reserved_instances.rb
|
136
|
+
- lib/ec2/right_ec2_tags.rb
|
119
137
|
- lib/ec2/right_ec2_vpc.rb
|
120
|
-
- lib/ec2/
|
138
|
+
- lib/ec2/right_ec2_windows_mobility.rb
|
139
|
+
- lib/elb/right_elb_interface.rb
|
140
|
+
- lib/iam/right_iam_access_keys.rb
|
141
|
+
- lib/iam/right_iam_groups.rb
|
142
|
+
- lib/iam/right_iam_interface.rb
|
143
|
+
- lib/iam/right_iam_mfa_devices.rb
|
144
|
+
- lib/iam/right_iam_users.rb
|
145
|
+
- lib/rds/right_rds_interface.rb
|
121
146
|
- lib/right_aws.rb
|
147
|
+
- lib/route_53/right_route_53_interface.rb
|
122
148
|
- lib/s3/right_s3.rb
|
123
|
-
- lib/acw/right_acw_interface.rb
|
124
|
-
- lib/elb/right_elb_interface.rb
|
125
|
-
- lib/as/right_as_interface.rb
|
126
149
|
- lib/s3/right_s3_interface.rb
|
127
150
|
- lib/sdb/active_sdb.rb
|
128
151
|
- lib/sdb/right_sdb_interface.rb
|
@@ -130,17 +153,21 @@ files:
|
|
130
153
|
- lib/sqs/right_sqs_gen2.rb
|
131
154
|
- lib/sqs/right_sqs_gen2_interface.rb
|
132
155
|
- lib/sqs/right_sqs_interface.rb
|
133
|
-
-
|
134
|
-
-
|
135
|
-
-
|
136
|
-
-
|
156
|
+
- right_aws.gemspec
|
157
|
+
- test/acf/test_helper.rb
|
158
|
+
- test/acf/test_right_acf.rb
|
159
|
+
- test/awsbase/test_helper.rb
|
160
|
+
- test/awsbase/test_right_awsbase.rb
|
137
161
|
- test/ec2/test_helper.rb
|
138
162
|
- test/ec2/test_right_ec2.rb
|
139
163
|
- test/http_connection.rb
|
164
|
+
- test/rds/test_helper.rb
|
165
|
+
- test/rds/test_right_rds.rb
|
140
166
|
- test/s3/test_helper.rb
|
141
167
|
- test/s3/test_right_s3.rb
|
142
168
|
- test/s3/test_right_s3_stubbed.rb
|
143
169
|
- test/sdb/test_active_sdb.rb
|
170
|
+
- test/sdb/test_batch_put_attributes.rb
|
144
171
|
- test/sdb/test_helper.rb
|
145
172
|
- test/sdb/test_right_sdb.rb
|
146
173
|
- test/sqs/test_helper.rb
|
@@ -148,10 +175,6 @@ files:
|
|
148
175
|
- test/sqs/test_right_sqs_gen2.rb
|
149
176
|
- test/test_credentials.rb
|
150
177
|
- test/ts_right_aws.rb
|
151
|
-
- test/acf/test_helper.rb
|
152
|
-
- test/acf/test_right_acf.rb
|
153
|
-
- test/rds/test_helper.rb
|
154
|
-
- test/rds/test_right_rds.rb
|
155
178
|
has_rdoc: true
|
156
179
|
homepage:
|
157
180
|
licenses: []
|
@@ -160,28 +183,56 @@ post_install_message:
|
|
160
183
|
rdoc_options:
|
161
184
|
- --main
|
162
185
|
- README.txt
|
186
|
+
- --title
|
187
|
+
- ""
|
163
188
|
require_paths:
|
164
189
|
- lib
|
165
190
|
required_ruby_version: !ruby/object:Gem::Requirement
|
191
|
+
none: false
|
166
192
|
requirements:
|
167
193
|
- - ">="
|
168
194
|
- !ruby/object:Gem::Version
|
195
|
+
hash: 57
|
169
196
|
segments:
|
170
|
-
-
|
171
|
-
|
197
|
+
- 1
|
198
|
+
- 8
|
199
|
+
- 7
|
200
|
+
version: 1.8.7
|
172
201
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
202
|
+
none: false
|
173
203
|
requirements:
|
174
204
|
- - ">="
|
175
205
|
- !ruby/object:Gem::Version
|
206
|
+
hash: 3
|
176
207
|
segments:
|
177
208
|
- 0
|
178
209
|
version: "0"
|
179
|
-
requirements:
|
180
|
-
|
210
|
+
requirements:
|
211
|
+
- libxml-ruby >= 0.5.2.0 is encouraged
|
181
212
|
rubyforge_project: rightaws
|
182
|
-
rubygems_version: 1.3.
|
213
|
+
rubygems_version: 1.3.7
|
183
214
|
signing_key:
|
184
215
|
specification_version: 3
|
185
216
|
summary: Interface classes for the Amazon EC2, SQS, and S3 Web Services
|
186
217
|
test_files:
|
218
|
+
- test/acf/test_helper.rb
|
219
|
+
- test/acf/test_right_acf.rb
|
220
|
+
- test/awsbase/test_helper.rb
|
221
|
+
- test/awsbase/test_right_awsbase.rb
|
222
|
+
- test/ec2/test_helper.rb
|
223
|
+
- test/ec2/test_right_ec2.rb
|
224
|
+
- test/http_connection.rb
|
225
|
+
- test/rds/test_helper.rb
|
226
|
+
- test/rds/test_right_rds.rb
|
227
|
+
- test/s3/test_helper.rb
|
228
|
+
- test/s3/test_right_s3.rb
|
229
|
+
- test/s3/test_right_s3_stubbed.rb
|
230
|
+
- test/sdb/test_active_sdb.rb
|
231
|
+
- test/sdb/test_batch_put_attributes.rb
|
232
|
+
- test/sdb/test_helper.rb
|
233
|
+
- test/sdb/test_right_sdb.rb
|
234
|
+
- test/sqs/test_helper.rb
|
235
|
+
- test/sqs/test_right_sqs.rb
|
236
|
+
- test/sqs/test_right_sqs_gen2.rb
|
237
|
+
- test/test_credentials.rb
|
187
238
|
- test/ts_right_aws.rb
|