icehouse-right_aws 1.11.0 → 2.2.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.
- data/History.txt +93 -15
- data/Manifest.txt +15 -1
- data/README.txt +0 -4
- data/Rakefile +34 -17
- data/lib/acf/right_acf_interface.rb +260 -124
- data/lib/acf/right_acf_invalidations.rb +144 -0
- data/lib/acf/right_acf_origin_access_identities.rb +230 -0
- data/lib/acf/right_acf_streaming_interface.rb +229 -0
- data/lib/acw/right_acw_interface.rb +4 -5
- data/lib/as/right_as_interface.rb +59 -51
- data/lib/awsbase/benchmark_fix.rb +0 -0
- data/lib/awsbase/right_awsbase.rb +351 -104
- data/lib/awsbase/support.rb +2 -82
- data/lib/awsbase/version.rb +9 -0
- data/lib/ec2/right_ec2.rb +97 -246
- data/lib/ec2/right_ec2_ebs.rb +88 -68
- data/lib/ec2/right_ec2_images.rb +90 -50
- data/lib/ec2/right_ec2_instances.rb +118 -89
- data/lib/ec2/right_ec2_placement_groups.rb +108 -0
- data/lib/ec2/right_ec2_reserved_instances.rb +51 -44
- data/lib/ec2/right_ec2_security_groups.rb +396 -0
- data/lib/ec2/right_ec2_spot_instances.rb +425 -0
- data/lib/ec2/right_ec2_tags.rb +139 -0
- data/lib/ec2/right_ec2_vpc.rb +152 -140
- data/lib/ec2/right_ec2_windows_mobility.rb +84 -0
- data/lib/elb/right_elb_interface.rb +205 -39
- 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 +591 -205
- data/lib/right_aws.rb +16 -12
- data/lib/route_53/right_route_53_interface.rb +640 -0
- data/lib/s3/right_s3.rb +34 -13
- data/lib/s3/right_s3_interface.rb +17 -14
- data/lib/sdb/active_sdb.rb +215 -38
- data/lib/sdb/right_sdb_interface.rb +93 -12
- 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 +9 -9
- data/lib/sqs/right_sqs_interface.rb +6 -7
- data/right_aws.gemspec +91 -0
- data/test/README.mdown +39 -0
- data/test/acf/test_helper.rb +0 -0
- data/test/acf/test_right_acf.rb +10 -18
- data/test/awsbase/test_helper.rb +0 -0
- data/test/awsbase/test_right_awsbase.rb +0 -1
- data/test/ec2/test_helper.rb +0 -0
- data/test/ec2/test_right_ec2.rb +0 -1
- data/test/elb/test_helper.rb +2 -0
- data/test/elb/test_right_elb.rb +43 -0
- data/test/http_connection.rb +0 -0
- data/test/route_53/fixtures/a_record.xml +18 -0
- data/test/route_53/fixtures/alias_record.xml +18 -0
- data/test/route_53/test_helper.rb +2 -0
- data/test/route_53/test_right_route_53.rb +141 -0
- data/test/s3/test_helper.rb +0 -0
- data/test/s3/test_right_s3.rb +11 -9
- data/test/s3/test_right_s3_stubbed.rb +6 -4
- data/test/sdb/test_active_sdb.rb +71 -13
- data/test/sdb/test_batch_put_attributes.rb +54 -0
- data/test/sdb/test_helper.rb +0 -0
- data/test/sdb/test_right_sdb.rb +13 -7
- data/test/sqs/test_helper.rb +0 -0
- data/test/sqs/test_right_sqs.rb +0 -6
- data/test/sqs/test_right_sqs_gen2.rb +22 -34
- data/test/test_credentials.rb +0 -0
- data/test/ts_right_aws.rb +0 -0
- metadata +146 -16
- data/VERSION +0 -1
@@ -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/sdb/test_helper.rb
CHANGED
File without changes
|
data/test/sdb/test_right_sdb.rb
CHANGED
@@ -11,7 +11,7 @@ class TestSdb < Test::Unit::TestCase
|
|
11
11
|
@sdb = Rightscale::SdbInterface.new(TestCredentials.aws_access_key_id, TestCredentials.aws_secret_access_key)
|
12
12
|
end
|
13
13
|
|
14
|
-
SDB_DELAY =
|
14
|
+
SDB_DELAY = 7
|
15
15
|
|
16
16
|
def wait(delay, msg='')
|
17
17
|
print "waiting #{delay} seconds #{msg}"
|
@@ -51,7 +51,7 @@ class TestSdb < Test::Unit::TestCase
|
|
51
51
|
|
52
52
|
def test_03_get_attributes
|
53
53
|
# get attributes
|
54
|
-
values = @sdb.get_attributes(@domain, @item)[:attributes]['Jon'].
|
54
|
+
values = Array(@sdb.get_attributes(@domain, @item)[:attributes]['Jon']).sort
|
55
55
|
# compare to original list
|
56
56
|
assert_equal values, @attr['Jon'].sort
|
57
57
|
end
|
@@ -62,7 +62,7 @@ class TestSdb < Test::Unit::TestCase
|
|
62
62
|
@sdb.put_attributes @domain, @item, {'Jon' => new_value}
|
63
63
|
wait SDB_DELAY, 'after putting attributes'
|
64
64
|
# get attributes ('girls' must be added to already existent attributes)
|
65
|
-
values = @sdb.get_attributes(@domain, @item)[:attributes]['Jon'].
|
65
|
+
values = Array(@sdb.get_attributes(@domain, @item)[:attributes]['Jon']).sort
|
66
66
|
assert_equal values, (@attr['Jon'] << new_value).sort
|
67
67
|
end
|
68
68
|
|
@@ -80,7 +80,7 @@ class TestSdb < Test::Unit::TestCase
|
|
80
80
|
@sdb.put_attributes @domain, @item, {'Jon' => ['girls','vodka']}
|
81
81
|
wait SDB_DELAY, 'after adding attributes'
|
82
82
|
# get attributes ('girls' and 'vodka' must be added 'pub')
|
83
|
-
values = @sdb.get_attributes(@domain, @item)[:attributes]['Jon'].
|
83
|
+
values = Array(@sdb.get_attributes(@domain, @item)[:attributes]['Jon']).sort
|
84
84
|
assert_equal values, ['girls', 'pub', 'vodka']
|
85
85
|
# delete a single value 'girls' from attribute 'Jon'
|
86
86
|
@sdb.delete_attributes @domain, @item, 'Jon' => ['girls']
|
@@ -100,10 +100,11 @@ class TestSdb < Test::Unit::TestCase
|
|
100
100
|
@sdb.put_attributes @domain, @item, {'Volodya' => ['girls','vodka']}
|
101
101
|
wait SDB_DELAY, 'after adding attributes'
|
102
102
|
# get attributes ('girls' and 'vodka' must be there)
|
103
|
-
values = @sdb.get_attributes(@domain, @item)[:attributes]['Volodya'].
|
103
|
+
values = Array(@sdb.get_attributes(@domain, @item)[:attributes]['Volodya']).sort
|
104
104
|
assert_equal values, ['girls', 'vodka']
|
105
105
|
# delete an item
|
106
106
|
@sdb.delete_attributes @domain, @item
|
107
|
+
wait SDB_DELAY, 'after deleting attributes'
|
107
108
|
# get attributes (values must be empty)
|
108
109
|
values = @sdb.get_attributes(@domain, @item)[:attributes]['Volodya']
|
109
110
|
assert_equal values, nil
|
@@ -128,7 +129,7 @@ class TestSdb < Test::Unit::TestCase
|
|
128
129
|
assert sdb.put_attributes(@domain, item, attributes)
|
129
130
|
wait SDB_DELAY, 'after putting attributes'
|
130
131
|
# get attributes
|
131
|
-
values = sdb.get_attributes(@domain, item)[:attributes]['Jurgen'].
|
132
|
+
values = Array(sdb.get_attributes(@domain, item)[:attributes]['Jurgen']).sort
|
132
133
|
# compare to original list
|
133
134
|
assert_equal values, attributes['Jurgen'].sort
|
134
135
|
# check that the request has correct signature version
|
@@ -173,6 +174,7 @@ class TestSdb < Test::Unit::TestCase
|
|
173
174
|
assert_nothing_thrown do
|
174
175
|
@sdb.put_attributes(@domain, item, {:one=>nil, :two=>nil, :three=>'chunder'})
|
175
176
|
end
|
177
|
+
wait SDB_DELAY, 'after putting attributes'
|
176
178
|
assert_nothing_thrown do
|
177
179
|
res = @sdb.get_attributes(@domain, item)
|
178
180
|
end
|
@@ -186,6 +188,7 @@ class TestSdb < Test::Unit::TestCase
|
|
186
188
|
content = {:a=>"one & two & three",
|
187
189
|
:b=>"one ? two / three"}
|
188
190
|
@sdb.put_attributes(@domain, item, content)
|
191
|
+
wait SDB_DELAY, 'after putting attributes'
|
189
192
|
|
190
193
|
res = @sdb.get_attributes(@domain, item)
|
191
194
|
assert_equal(content[:a], res[:attributes]['a'][0])
|
@@ -201,6 +204,7 @@ class TestSdb < Test::Unit::TestCase
|
|
201
204
|
i += 1
|
202
205
|
end
|
203
206
|
@sdb.put_attributes(@domain, item, {:a => sa, :b => sa, :c => sa, :d => sa, :e => sa})
|
207
|
+
wait SDB_DELAY, 'after putting attributes'
|
204
208
|
end
|
205
209
|
|
206
210
|
def test_20_query_with_atributes
|
@@ -209,12 +213,13 @@ class TestSdb < Test::Unit::TestCase
|
|
209
213
|
items = {};
|
210
214
|
response[:items].each{ |item| items.merge!(item) }
|
211
215
|
# check we have receied all 5 items each full of attributes
|
212
|
-
assert_equal
|
216
|
+
assert_equal 6, items.keys.size
|
213
217
|
assert items['toys'].size > 0
|
214
218
|
assert items['nils'].size > 0
|
215
219
|
assert items['urlescapes'].size > 0
|
216
220
|
assert items['multiples'].size > 0
|
217
221
|
assert items['reqgirth'].size > 0
|
222
|
+
assert items['zeroes'].size > 0
|
218
223
|
# fetch only Jon's attributes from all items
|
219
224
|
response = @sdb.query_with_attributes(@domain,['Jon'])
|
220
225
|
items = {};
|
@@ -227,6 +232,7 @@ class TestSdb < Test::Unit::TestCase
|
|
227
232
|
assert_equal 0, items['urlescapes'].size
|
228
233
|
assert_equal 0, items['multiples'].size
|
229
234
|
assert_equal 0, items['reqgirth'].size
|
235
|
+
assert_equal 0, items['zeroes'].size
|
230
236
|
# kust Jurgen's attriburs
|
231
237
|
response = @sdb.query_with_attributes(@domain,['Jurgen'], "['Jurgen'='piglet']")
|
232
238
|
items = {};
|
data/test/sqs/test_helper.rb
CHANGED
File without changes
|
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
|
@@ -10,7 +10,10 @@ class TestSqsGen2 < Test::Unit::TestCase
|
|
10
10
|
$stdout.sync = true
|
11
11
|
@grantee_aws_id = '100000000001'
|
12
12
|
@sqs = Rightscale::SqsGen2Interface.new(TestCredentials.aws_access_key_id, TestCredentials.aws_secret_access_key)
|
13
|
-
@queue_name
|
13
|
+
@queue_name = 'right_sqs_test_gen2_queue'
|
14
|
+
@queue2_name = @queue_name + '_2'
|
15
|
+
@queue3_name = @queue_name + '_3'
|
16
|
+
@queue4_name = @queue_name + '_4'
|
14
17
|
# for classes
|
15
18
|
@s = Rightscale::SqsGen2.new(TestCredentials.aws_access_key_id, TestCredentials.aws_secret_access_key)
|
16
19
|
end
|
@@ -24,7 +27,7 @@ class TestSqsGen2 < Test::Unit::TestCase
|
|
24
27
|
do_sleep(180) do
|
25
28
|
queue_url = @sqs.queue_url_by_name(queue_name)
|
26
29
|
end
|
27
|
-
sleep
|
30
|
+
sleep 30
|
28
31
|
queue_url
|
29
32
|
end
|
30
33
|
|
@@ -83,15 +86,15 @@ class TestSqsGen2 < Test::Unit::TestCase
|
|
83
86
|
|
84
87
|
def test_05_add_permissions
|
85
88
|
queue_url = @sqs.queue_url_by_name(@queue_name)
|
86
|
-
assert @sqs.add_permissions(queue_url, 'test01', @grantee_aws_id
|
87
|
-
assert @sqs.add_permissions(queue_url, 'test02', @grantee_aws_id
|
89
|
+
assert @sqs.add_permissions(queue_url, 'test01', @grantee_aws_id, 'SendMessage')
|
90
|
+
assert @sqs.add_permissions(queue_url, 'test02', @grantee_aws_id, ['DeleteMessage','ReceiveMessage'])
|
88
91
|
do_sleep 60
|
89
92
|
end
|
90
93
|
|
91
94
|
def test_06_test_permissions
|
92
95
|
queue_url = @sqs.queue_url_by_name(@queue_name)
|
93
96
|
permissions = @sqs.get_queue_attributes(queue_url, 'Policy')
|
94
|
-
assert !permissions.
|
97
|
+
assert !permissions.right_blank?
|
95
98
|
end
|
96
99
|
|
97
100
|
def test_07_revoke_permissions
|
@@ -108,7 +111,7 @@ class TestSqsGen2 < Test::Unit::TestCase
|
|
108
111
|
assert @sqs.send_message(queue_url, RIGHT_MESSAGE_TEXT)
|
109
112
|
assert @sqs.send_message(queue_url, RIGHT_MESSAGE_TEXT)
|
110
113
|
assert @sqs.send_message(queue_url, RIGHT_MESSAGE_TEXT)
|
111
|
-
do_sleep
|
114
|
+
do_sleep 60
|
112
115
|
end
|
113
116
|
|
114
117
|
def test_15_get_queue_length
|
@@ -144,7 +147,7 @@ class TestSqsGen2 < Test::Unit::TestCase
|
|
144
147
|
# get queues list
|
145
148
|
queues_size = @s.queues.size
|
146
149
|
# create new queue
|
147
|
-
queue = @s.queue(
|
150
|
+
queue = @s.queue(@queue2_name, true)
|
148
151
|
# check that it is created
|
149
152
|
assert queue.is_a?(Rightscale::SqsGen2::Queue)
|
150
153
|
wait_for_queue_url(queue.name)
|
@@ -154,21 +157,21 @@ class TestSqsGen2 < Test::Unit::TestCase
|
|
154
157
|
end
|
155
158
|
|
156
159
|
def test_21_sqs_delete_queue
|
157
|
-
queue = @s.queue(
|
160
|
+
queue = @s.queue(@queue2_name, false)
|
158
161
|
assert queue.delete
|
159
162
|
end
|
160
163
|
|
161
164
|
def test_22_queue_create
|
162
165
|
# create new queue
|
163
|
-
queue = Rightscale::SqsGen2::Queue.create(@s,
|
166
|
+
queue = Rightscale::SqsGen2::Queue.create(@s, @queue3_name, true)
|
164
167
|
# check that it is created
|
165
168
|
assert queue.is_a?(Rightscale::SqsGen2::Queue)
|
166
|
-
wait_for_queue_url(@queue_name)
|
169
|
+
wait_for_queue_url("#{@queue_name}_21")
|
167
170
|
do_sleep 10
|
168
171
|
end
|
169
172
|
|
170
173
|
def test_23_queue_attributes
|
171
|
-
queue = Rightscale::SqsGen2::Queue.create(@s,
|
174
|
+
queue = Rightscale::SqsGen2::Queue.create(@s, @queue3_name, false)
|
172
175
|
# get a list of attrinutes
|
173
176
|
attributes = queue.get_attribute
|
174
177
|
assert attributes.is_a?(Hash) && attributes.size>0
|
@@ -177,7 +180,7 @@ class TestSqsGen2 < Test::Unit::TestCase
|
|
177
180
|
# set attribute
|
178
181
|
assert queue.set_attribute('VisibilityTimeout', v)
|
179
182
|
# wait a bit
|
180
|
-
do_sleep
|
183
|
+
do_sleep 60
|
181
184
|
# check that attribute has changed
|
182
185
|
assert_equal v, queue.get_attribute('VisibilityTimeout')
|
183
186
|
# get queue visibility timeout
|
@@ -189,12 +192,12 @@ class TestSqsGen2 < Test::Unit::TestCase
|
|
189
192
|
end
|
190
193
|
|
191
194
|
def test_24
|
192
|
-
queue = Rightscale::SqsGen2::Queue.create(@s,
|
195
|
+
queue = Rightscale::SqsGen2::Queue.create(@s, @queue3_name, false)
|
193
196
|
assert queue.delete
|
194
197
|
end
|
195
198
|
|
196
199
|
def test_25_send_size
|
197
|
-
queue = Rightscale::SqsGen2::Queue.create(@s,
|
200
|
+
queue = Rightscale::SqsGen2::Queue.create(@s, @queue4_name, true)
|
198
201
|
# send 5 messages
|
199
202
|
assert queue.push('a1')
|
200
203
|
assert queue.push('a2')
|
@@ -202,19 +205,19 @@ class TestSqsGen2 < Test::Unit::TestCase
|
|
202
205
|
assert queue.push('a4')
|
203
206
|
assert queue.push('a5')
|
204
207
|
#
|
205
|
-
do_sleep
|
208
|
+
do_sleep(300){ queue.size == 5 }
|
206
209
|
# check queue size
|
207
210
|
assert_equal 5, queue.size
|
208
211
|
# send one more
|
209
212
|
assert queue.push('a6')
|
210
213
|
#
|
211
|
-
do_sleep
|
214
|
+
do_sleep(300){ queue.size == 6 }
|
212
215
|
# check queue size again
|
213
216
|
assert_equal 6, queue.size
|
214
217
|
end
|
215
218
|
|
216
219
|
def test_26_message_receive_pop_delete
|
217
|
-
queue = Rightscale::SqsGen2::Queue.create(@s,
|
220
|
+
queue = Rightscale::SqsGen2::Queue.create(@s, @queue4_name, false)
|
218
221
|
# get queue size
|
219
222
|
size = queue.size
|
220
223
|
# get first message
|
@@ -224,7 +227,7 @@ class TestSqsGen2 < Test::Unit::TestCase
|
|
224
227
|
m2 = queue.pop
|
225
228
|
assert m2.is_a?(Rightscale::SqsGen2::Message)
|
226
229
|
#
|
227
|
-
do_sleep
|
230
|
+
do_sleep 30
|
228
231
|
# make sure that queue size has decreased
|
229
232
|
assert_equal size-1, queue.size
|
230
233
|
# delete messsage
|
@@ -236,7 +239,7 @@ class TestSqsGen2 < Test::Unit::TestCase
|
|
236
239
|
end
|
237
240
|
|
238
241
|
def test_27
|
239
|
-
queue = Rightscale::SqsGen2::Queue.create(@s,
|
242
|
+
queue = Rightscale::SqsGen2::Queue.create(@s, @queue4_name, false)
|
240
243
|
# lock message
|
241
244
|
queue.receive(100)
|
242
245
|
# clear queue
|
@@ -257,20 +260,5 @@ class TestSqsGen2 < Test::Unit::TestCase
|
|
257
260
|
Rightscale::SqsGen2Interface.amazon_problems= nil
|
258
261
|
assert_nil(Rightscale::SqsGen2Interface.amazon_problems)
|
259
262
|
end
|
260
|
-
|
261
|
-
def test_29_check_threading_model
|
262
|
-
assert(!@sqs.multi_thread)
|
263
|
-
newsqs = Rightscale::SqsGen2Interface.new(TestCredentials.aws_access_key_id, TestCredentials.aws_secret_access_key, {:multi_thread => true})
|
264
|
-
assert(newsqs.multi_thread)
|
265
|
-
end
|
266
|
-
|
267
|
-
def test_30_signature_version_0
|
268
|
-
sqs = Rightscale::SqsInterface.new(TestCredentials.aws_access_key_id, TestCredentials.aws_secret_access_key, :signature_version => '0')
|
269
|
-
assert_nothing_raised do
|
270
|
-
sqs.list_queues
|
271
|
-
end
|
272
|
-
# check that the request has correct signature version
|
273
|
-
assert sqs.last_request.path.include?('SignatureVersion=0')
|
274
|
-
end
|
275
263
|
|
276
264
|
end
|
data/test/test_credentials.rb
CHANGED
File without changes
|
data/test/ts_right_aws.rb
CHANGED
File without changes
|
metadata
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: icehouse-right_aws
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
hash: 7
|
4
5
|
prerelease: false
|
5
6
|
segments:
|
6
|
-
-
|
7
|
-
-
|
7
|
+
- 2
|
8
|
+
- 2
|
8
9
|
- 0
|
9
|
-
version:
|
10
|
+
version: 2.2.0
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- RightScale, Inc.
|
@@ -14,24 +15,93 @@ autorequire:
|
|
14
15
|
bindir: bin
|
15
16
|
cert_chain: []
|
16
17
|
|
17
|
-
date:
|
18
|
+
date: 2011-08-19 00:00:00 +02: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
|
38
|
+
name: rake
|
39
|
+
prerelease: false
|
40
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ">="
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
hash: 3
|
46
|
+
segments:
|
47
|
+
- 0
|
48
|
+
version: "0"
|
49
|
+
type: :development
|
50
|
+
version_requirements: *id002
|
51
|
+
- !ruby/object:Gem::Dependency
|
52
|
+
name: rcov
|
53
|
+
prerelease: false
|
54
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
55
|
+
none: false
|
56
|
+
requirements:
|
57
|
+
- - ">="
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
hash: 3
|
60
|
+
segments:
|
61
|
+
- 0
|
62
|
+
version: "0"
|
63
|
+
type: :development
|
64
|
+
version_requirements: *id003
|
65
|
+
description: |
|
66
|
+
== DESCRIPTION:
|
67
|
+
|
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.
|
70
|
+
The RightScale AWS gems comprise:
|
71
|
+
|
72
|
+
- RightAws::Ec2 -- interface to Amazon EC2 (Elastic Compute Cloud) and the
|
73
|
+
associated EBS (Elastic Block Store)
|
74
|
+
- RightAws::S3 and RightAws::S3Interface -- interface to Amazon S3 (Simple Storage 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)
|
77
|
+
- RightAws::SdbInterface and RightAws::ActiveSdb -- interface to Amazon SDB (SimpleDB)
|
78
|
+
- RightAws::AcfInterface -- interface to Amazon CloudFront, a content distribution service
|
79
|
+
|
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
|
+
|
35
105
|
email: support@rightscale.com
|
36
106
|
executables: []
|
37
107
|
|
@@ -44,23 +114,37 @@ files:
|
|
44
114
|
- Manifest.txt
|
45
115
|
- README.txt
|
46
116
|
- Rakefile
|
47
|
-
- VERSION
|
48
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
|
49
121
|
- lib/acw/right_acw_interface.rb
|
50
122
|
- lib/as/right_as_interface.rb
|
51
123
|
- lib/awsbase/benchmark_fix.rb
|
52
124
|
- lib/awsbase/right_awsbase.rb
|
53
125
|
- lib/awsbase/support.rb
|
126
|
+
- lib/awsbase/version.rb
|
54
127
|
- lib/ec2/right_ec2.rb
|
55
128
|
- lib/ec2/right_ec2_ebs.rb
|
56
129
|
- lib/ec2/right_ec2_images.rb
|
57
130
|
- lib/ec2/right_ec2_instances.rb
|
58
131
|
- lib/ec2/right_ec2_monitoring.rb
|
132
|
+
- lib/ec2/right_ec2_placement_groups.rb
|
59
133
|
- lib/ec2/right_ec2_reserved_instances.rb
|
134
|
+
- lib/ec2/right_ec2_security_groups.rb
|
135
|
+
- lib/ec2/right_ec2_spot_instances.rb
|
136
|
+
- lib/ec2/right_ec2_tags.rb
|
60
137
|
- lib/ec2/right_ec2_vpc.rb
|
138
|
+
- lib/ec2/right_ec2_windows_mobility.rb
|
61
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
|
62
145
|
- lib/rds/right_rds_interface.rb
|
63
146
|
- lib/right_aws.rb
|
147
|
+
- lib/route_53/right_route_53_interface.rb
|
64
148
|
- lib/s3/right_s3.rb
|
65
149
|
- lib/s3/right_s3_interface.rb
|
66
150
|
- lib/sdb/active_sdb.rb
|
@@ -69,33 +153,71 @@ files:
|
|
69
153
|
- lib/sqs/right_sqs_gen2.rb
|
70
154
|
- lib/sqs/right_sqs_gen2_interface.rb
|
71
155
|
- lib/sqs/right_sqs_interface.rb
|
156
|
+
- right_aws.gemspec
|
157
|
+
- test/README.mdown
|
158
|
+
- test/acf/test_helper.rb
|
159
|
+
- test/acf/test_right_acf.rb
|
160
|
+
- test/awsbase/test_helper.rb
|
161
|
+
- test/awsbase/test_right_awsbase.rb
|
162
|
+
- test/ec2/test_helper.rb
|
163
|
+
- test/ec2/test_right_ec2.rb
|
164
|
+
- test/elb/test_helper.rb
|
165
|
+
- test/elb/test_right_elb.rb
|
166
|
+
- test/http_connection.rb
|
167
|
+
- test/rds/test_helper.rb
|
168
|
+
- test/rds/test_right_rds.rb
|
169
|
+
- test/route_53/fixtures/a_record.xml
|
170
|
+
- test/route_53/fixtures/alias_record.xml
|
171
|
+
- test/route_53/test_helper.rb
|
172
|
+
- test/route_53/test_right_route_53.rb
|
173
|
+
- test/s3/test_helper.rb
|
174
|
+
- test/s3/test_right_s3.rb
|
175
|
+
- test/s3/test_right_s3_stubbed.rb
|
176
|
+
- test/sdb/test_active_sdb.rb
|
177
|
+
- test/sdb/test_batch_put_attributes.rb
|
178
|
+
- test/sdb/test_helper.rb
|
179
|
+
- test/sdb/test_right_sdb.rb
|
180
|
+
- test/sqs/test_helper.rb
|
181
|
+
- test/sqs/test_right_sqs.rb
|
182
|
+
- test/sqs/test_right_sqs_gen2.rb
|
183
|
+
- test/test_credentials.rb
|
184
|
+
- test/ts_right_aws.rb
|
72
185
|
has_rdoc: true
|
73
|
-
homepage:
|
186
|
+
homepage:
|
74
187
|
licenses: []
|
75
188
|
|
76
189
|
post_install_message:
|
77
190
|
rdoc_options:
|
78
|
-
- --
|
191
|
+
- --main
|
192
|
+
- README.txt
|
193
|
+
- --title
|
194
|
+
- ""
|
79
195
|
require_paths:
|
80
196
|
- lib
|
81
197
|
required_ruby_version: !ruby/object:Gem::Requirement
|
198
|
+
none: false
|
82
199
|
requirements:
|
83
200
|
- - ">="
|
84
201
|
- !ruby/object:Gem::Version
|
202
|
+
hash: 57
|
85
203
|
segments:
|
86
|
-
-
|
87
|
-
|
204
|
+
- 1
|
205
|
+
- 8
|
206
|
+
- 7
|
207
|
+
version: 1.8.7
|
88
208
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
209
|
+
none: false
|
89
210
|
requirements:
|
90
211
|
- - ">="
|
91
212
|
- !ruby/object:Gem::Version
|
213
|
+
hash: 3
|
92
214
|
segments:
|
93
215
|
- 0
|
94
216
|
version: "0"
|
95
|
-
requirements:
|
96
|
-
|
97
|
-
rubyforge_project:
|
98
|
-
rubygems_version: 1.3.
|
217
|
+
requirements:
|
218
|
+
- libxml-ruby >= 0.5.2.0 is encouraged
|
219
|
+
rubyforge_project: rightaws
|
220
|
+
rubygems_version: 1.3.7
|
99
221
|
signing_key:
|
100
222
|
specification_version: 3
|
101
223
|
summary: Interface classes for the Amazon EC2, SQS, and S3 Web Services
|
@@ -106,13 +228,21 @@ test_files:
|
|
106
228
|
- test/awsbase/test_right_awsbase.rb
|
107
229
|
- test/ec2/test_helper.rb
|
108
230
|
- test/ec2/test_right_ec2.rb
|
231
|
+
- test/elb/test_helper.rb
|
232
|
+
- test/elb/test_right_elb.rb
|
109
233
|
- test/http_connection.rb
|
110
234
|
- test/rds/test_helper.rb
|
111
235
|
- test/rds/test_right_rds.rb
|
236
|
+
- test/README.mdown
|
237
|
+
- test/route_53/fixtures/a_record.xml
|
238
|
+
- test/route_53/fixtures/alias_record.xml
|
239
|
+
- test/route_53/test_helper.rb
|
240
|
+
- test/route_53/test_right_route_53.rb
|
112
241
|
- test/s3/test_helper.rb
|
113
242
|
- test/s3/test_right_s3.rb
|
114
243
|
- test/s3/test_right_s3_stubbed.rb
|
115
244
|
- test/sdb/test_active_sdb.rb
|
245
|
+
- test/sdb/test_batch_put_attributes.rb
|
116
246
|
- test/sdb/test_helper.rb
|
117
247
|
- test/sdb/test_right_sdb.rb
|
118
248
|
- test/sqs/test_helper.rb
|