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.
Files changed (71) hide show
  1. data/History.txt +93 -15
  2. data/Manifest.txt +15 -1
  3. data/README.txt +0 -4
  4. data/Rakefile +34 -17
  5. data/lib/acf/right_acf_interface.rb +260 -124
  6. data/lib/acf/right_acf_invalidations.rb +144 -0
  7. data/lib/acf/right_acf_origin_access_identities.rb +230 -0
  8. data/lib/acf/right_acf_streaming_interface.rb +229 -0
  9. data/lib/acw/right_acw_interface.rb +4 -5
  10. data/lib/as/right_as_interface.rb +59 -51
  11. data/lib/awsbase/benchmark_fix.rb +0 -0
  12. data/lib/awsbase/right_awsbase.rb +351 -104
  13. data/lib/awsbase/support.rb +2 -82
  14. data/lib/awsbase/version.rb +9 -0
  15. data/lib/ec2/right_ec2.rb +97 -246
  16. data/lib/ec2/right_ec2_ebs.rb +88 -68
  17. data/lib/ec2/right_ec2_images.rb +90 -50
  18. data/lib/ec2/right_ec2_instances.rb +118 -89
  19. data/lib/ec2/right_ec2_placement_groups.rb +108 -0
  20. data/lib/ec2/right_ec2_reserved_instances.rb +51 -44
  21. data/lib/ec2/right_ec2_security_groups.rb +396 -0
  22. data/lib/ec2/right_ec2_spot_instances.rb +425 -0
  23. data/lib/ec2/right_ec2_tags.rb +139 -0
  24. data/lib/ec2/right_ec2_vpc.rb +152 -140
  25. data/lib/ec2/right_ec2_windows_mobility.rb +84 -0
  26. data/lib/elb/right_elb_interface.rb +205 -39
  27. data/lib/iam/right_iam_access_keys.rb +71 -0
  28. data/lib/iam/right_iam_groups.rb +195 -0
  29. data/lib/iam/right_iam_interface.rb +341 -0
  30. data/lib/iam/right_iam_mfa_devices.rb +67 -0
  31. data/lib/iam/right_iam_users.rb +251 -0
  32. data/lib/rds/right_rds_interface.rb +591 -205
  33. data/lib/right_aws.rb +16 -12
  34. data/lib/route_53/right_route_53_interface.rb +640 -0
  35. data/lib/s3/right_s3.rb +34 -13
  36. data/lib/s3/right_s3_interface.rb +17 -14
  37. data/lib/sdb/active_sdb.rb +215 -38
  38. data/lib/sdb/right_sdb_interface.rb +93 -12
  39. data/lib/sqs/right_sqs.rb +1 -2
  40. data/lib/sqs/right_sqs_gen2.rb +0 -1
  41. data/lib/sqs/right_sqs_gen2_interface.rb +9 -9
  42. data/lib/sqs/right_sqs_interface.rb +6 -7
  43. data/right_aws.gemspec +91 -0
  44. data/test/README.mdown +39 -0
  45. data/test/acf/test_helper.rb +0 -0
  46. data/test/acf/test_right_acf.rb +10 -18
  47. data/test/awsbase/test_helper.rb +0 -0
  48. data/test/awsbase/test_right_awsbase.rb +0 -1
  49. data/test/ec2/test_helper.rb +0 -0
  50. data/test/ec2/test_right_ec2.rb +0 -1
  51. data/test/elb/test_helper.rb +2 -0
  52. data/test/elb/test_right_elb.rb +43 -0
  53. data/test/http_connection.rb +0 -0
  54. data/test/route_53/fixtures/a_record.xml +18 -0
  55. data/test/route_53/fixtures/alias_record.xml +18 -0
  56. data/test/route_53/test_helper.rb +2 -0
  57. data/test/route_53/test_right_route_53.rb +141 -0
  58. data/test/s3/test_helper.rb +0 -0
  59. data/test/s3/test_right_s3.rb +11 -9
  60. data/test/s3/test_right_s3_stubbed.rb +6 -4
  61. data/test/sdb/test_active_sdb.rb +71 -13
  62. data/test/sdb/test_batch_put_attributes.rb +54 -0
  63. data/test/sdb/test_helper.rb +0 -0
  64. data/test/sdb/test_right_sdb.rb +13 -7
  65. data/test/sqs/test_helper.rb +0 -0
  66. data/test/sqs/test_right_sqs.rb +0 -6
  67. data/test/sqs/test_right_sqs_gen2.rb +22 -34
  68. data/test/test_credentials.rb +0 -0
  69. data/test/ts_right_aws.rb +0 -0
  70. metadata +146 -16
  71. 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
File without changes
@@ -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 = 2
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'].to_a.sort
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'].to_a.sort
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'].to_a.sort
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'].to_a.sort
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'].to_a.sort
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 5, items.keys.size
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 = {};
File without changes
@@ -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 = 'right_sqs_test_gen2_queue'
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 10
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 => 'SendMessage')
87
- assert @sqs.add_permissions(queue_url, 'test02', @grantee_aws_id => ['DeleteMessage','ReceiveMessage'])
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.blank?
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 30
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("#{@queue_name}_20", true)
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("#{@queue_name}_20", false)
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, "#{@queue_name}_21", true)
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, "#{@queue_name}_21", false)
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 30
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, "#{@queue_name}_21", false)
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, "#{@queue_name}_24", true)
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 15
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 15
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, "#{@queue_name}_24", false)
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 15
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, "#{@queue_name}_24", false)
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
File without changes
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
- - 1
7
- - 11
7
+ - 2
8
+ - 2
8
9
  - 0
9
- version: 1.11.0
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: 2010-04-14 00:00:00 +02:00
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
- - 1
31
- version: 1.2.1
33
+ - 5
34
+ version: 1.2.5
32
35
  type: :runtime
33
36
  version_requirements: *id001
34
- description:
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: http://github.com/icehouse/right_aws
186
+ homepage:
74
187
  licenses: []
75
188
 
76
189
  post_install_message:
77
190
  rdoc_options:
78
- - --charset=UTF-8
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
- - 0
87
- version: "0"
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.6
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