right_aws 1.9.0 → 3.1.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 (70) hide show
  1. data/History.txt +164 -13
  2. data/Manifest.txt +28 -1
  3. data/README.txt +12 -10
  4. data/Rakefile +56 -29
  5. data/lib/acf/right_acf_interface.rb +343 -172
  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 +248 -0
  10. data/lib/as/right_as_interface.rb +698 -0
  11. data/lib/awsbase/right_awsbase.rb +755 -115
  12. data/lib/awsbase/support.rb +2 -78
  13. data/lib/awsbase/version.rb +9 -0
  14. data/lib/ec2/right_ec2.rb +274 -1294
  15. data/lib/ec2/right_ec2_ebs.rb +514 -0
  16. data/lib/ec2/right_ec2_images.rb +444 -0
  17. data/lib/ec2/right_ec2_instances.rb +797 -0
  18. data/lib/ec2/right_ec2_monitoring.rb +70 -0
  19. data/lib/ec2/right_ec2_placement_groups.rb +108 -0
  20. data/lib/ec2/right_ec2_reserved_instances.rb +243 -0
  21. data/lib/ec2/right_ec2_security_groups.rb +496 -0
  22. data/lib/ec2/right_ec2_spot_instances.rb +422 -0
  23. data/lib/ec2/right_ec2_tags.rb +139 -0
  24. data/lib/ec2/right_ec2_vpc.rb +598 -0
  25. data/lib/ec2/right_ec2_vpc2.rb +382 -0
  26. data/lib/ec2/right_ec2_windows_mobility.rb +84 -0
  27. data/lib/elb/right_elb_interface.rb +573 -0
  28. data/lib/emr/right_emr_interface.rb +728 -0
  29. data/lib/iam/right_iam_access_keys.rb +71 -0
  30. data/lib/iam/right_iam_groups.rb +195 -0
  31. data/lib/iam/right_iam_interface.rb +341 -0
  32. data/lib/iam/right_iam_mfa_devices.rb +67 -0
  33. data/lib/iam/right_iam_users.rb +251 -0
  34. data/lib/rds/right_rds_interface.rb +1657 -0
  35. data/lib/right_aws.rb +30 -13
  36. data/lib/route_53/right_route_53_interface.rb +641 -0
  37. data/lib/s3/right_s3.rb +108 -41
  38. data/lib/s3/right_s3_interface.rb +349 -118
  39. data/lib/sdb/active_sdb.rb +388 -54
  40. data/lib/sdb/right_sdb_interface.rb +323 -64
  41. data/lib/sns/right_sns_interface.rb +286 -0
  42. data/lib/sqs/right_sqs.rb +1 -2
  43. data/lib/sqs/right_sqs_gen2.rb +73 -17
  44. data/lib/sqs/right_sqs_gen2_interface.rb +146 -73
  45. data/lib/sqs/right_sqs_interface.rb +12 -22
  46. data/right_aws.gemspec +91 -0
  47. data/test/README.mdown +39 -0
  48. data/test/acf/test_right_acf.rb +11 -19
  49. data/test/awsbase/test_helper.rb +2 -0
  50. data/test/awsbase/test_right_awsbase.rb +11 -0
  51. data/test/ec2/test_right_ec2.rb +32 -1
  52. data/test/elb/test_helper.rb +2 -0
  53. data/test/elb/test_right_elb.rb +43 -0
  54. data/test/rds/test_helper.rb +2 -0
  55. data/test/rds/test_right_rds.rb +120 -0
  56. data/test/route_53/fixtures/a_record.xml +18 -0
  57. data/test/route_53/fixtures/alias_record.xml +18 -0
  58. data/test/route_53/test_helper.rb +2 -0
  59. data/test/route_53/test_right_route_53.rb +141 -0
  60. data/test/s3/test_right_s3.rb +176 -42
  61. data/test/s3/test_right_s3_stubbed.rb +6 -4
  62. data/test/sdb/test_active_sdb.rb +120 -19
  63. data/test/sdb/test_batch_put_attributes.rb +54 -0
  64. data/test/sdb/test_right_sdb.rb +71 -16
  65. data/test/sns/test_helper.rb +2 -0
  66. data/test/sns/test_right_sns.rb +153 -0
  67. data/test/sqs/test_right_sqs.rb +0 -6
  68. data/test/sqs/test_right_sqs_gen2.rb +104 -49
  69. data/test/ts_right_aws.rb +1 -0
  70. metadata +181 -22
@@ -0,0 +1,2 @@
1
+ require 'test/unit'
2
+ require File.dirname(__FILE__) + '/../../lib/right_aws'
@@ -0,0 +1,153 @@
1
+ require File.dirname(__FILE__) + '/test_helper.rb'
2
+
3
+ class TestSns < Test::Unit::TestCase
4
+
5
+ # You can change these things to whatever you like
6
+ @@subscriber_email = 'foo@bar.baz'
7
+ @@topic_name = 'RightTestTopic'
8
+ @@topic_display_name = 'right_aws test notification topic'
9
+ @@queue_name = "sns_subscribe_queue_#{Time.now.utc.to_i}"
10
+
11
+ # These are placeholders for values that get set, and consumed during the course of testing.
12
+ @@topic_arn = ''
13
+ @@subscription_arn = ''
14
+ @@queue_url = ''
15
+ @@queue_arn = ''
16
+
17
+ @@policy_template = <<-EOF
18
+ {
19
+ "Id": "Policy1300753700208",
20
+ "Statement": [
21
+ {
22
+ "Sid": "Stmt1300753696680",
23
+ "Action": [
24
+ "SNS:Publish",
25
+ "SNS:RemovePermission",
26
+ "SNS:SetTopicAttributes",
27
+ "SNS:DeleteTopic",
28
+ "SNS:ListSubscriptionsByTopic",
29
+ "SNS:GetTopicAttributes",
30
+ "SNS:Receive",
31
+ "SNS:AddPermission",
32
+ "SNS:Subscribe"
33
+ ],
34
+ "Effect": "Allow",
35
+ "Resource": "@@topic_arn@@",
36
+ "Principal": {
37
+ "AWS": [
38
+ "*"
39
+ ]
40
+ }
41
+ }
42
+ ]
43
+ }
44
+ EOF
45
+
46
+ def policy_text
47
+ @@policy_template.gsub('@@topic_arn@@', @@topic_arn)
48
+ end
49
+
50
+ def setup
51
+ @sns = Rightscale::SnsInterface.new(TestCredentials.aws_access_key_id, TestCredentials.aws_secret_access_key)
52
+ @sqs = Rightscale::SqsGen2Interface.new(TestCredentials.aws_access_key_id, TestCredentials.aws_secret_access_key)
53
+ end
54
+
55
+ def test_01_create_topic
56
+ response = @sns.create_topic(@@topic_name)
57
+ assert_not_nil(response)
58
+ @@topic_arn = response
59
+ end
60
+
61
+ def test_02_set_topic_attributes
62
+ response = @sns.set_topic_attribute(@@topic_arn, 'Policy', policy_text())
63
+ assert_not_nil(response)
64
+
65
+ response = @sns.set_topic_attribute(@@topic_arn, 'DisplayName', @@topic_display_name)
66
+ assert_not_nil(response)
67
+
68
+ assert_raise ArgumentError do
69
+ @sns.set_topic_attribute(@@topic_arn, 'Foo', 'val')
70
+ end
71
+ end
72
+
73
+ def test_03_get_topic_attributes
74
+ response = @sns.get_topic_attributes(@@topic_arn)
75
+ assert_not_nil(response)
76
+ assert(response['DisplayName'] == @@topic_display_name)
77
+ assert(response['Policy'] =~ /Policy1300753700208/)
78
+ end
79
+
80
+ def test_04_list_topics
81
+ sleep(1)
82
+ assert(@sns.list_topics.collect{|topic| topic[:arn] }.include?(@@topic_arn))
83
+ end
84
+
85
+ def test_05_subscribe_email
86
+ response = @sns.subscribe(@@topic_arn, 'email', @@subscriber_email)
87
+ assert_not_nil(response)
88
+ @@subscription_arn = response
89
+ end
90
+
91
+ def test_06_list_subscriptions
92
+ sleep(1)
93
+
94
+ response = @sns.list_subscriptions()
95
+ assert_not_nil(response)
96
+ assert(response.count == 1)
97
+ assert(response[0][:endpoint] == @@subscriber_email)
98
+ assert(response[0][:protocol] == 'email')
99
+ assert(response[0][:subscription_arn] == 'PendingConfirmation')
100
+ assert(response[0][:topic_arn] == @@topic_arn)
101
+ end
102
+
103
+ def test_07_list_subscriptions_by_topic
104
+ response = @sns.list_subscriptions(@@topic_arn)
105
+ assert_not_nil(response)
106
+ assert(response.count == 1)
107
+ assert(response[0][:endpoint] == @@subscriber_email)
108
+ assert(response[0][:protocol] == 'email')
109
+ assert(response[0][:subscription_arn] == 'PendingConfirmation')
110
+ assert(response[0][:topic_arn] == @@topic_arn)
111
+ end
112
+
113
+ def test_08_unsubscribe
114
+ @@queue_url = @sqs.create_queue(@@queue_name)
115
+ @@queue_arn = "arn:aws:sqs:us-east-1:#{TestCredentials.account_number.gsub('-','')}:#{@@queue_name}"
116
+ sub_response = @sns.subscribe(@@topic_arn, 'sqs', @@queue_arn)
117
+ assert_not_nil(sub_response)
118
+ unsub_response = @sns.unsubscribe(sub_response)
119
+ @sqs.delete_queue(@@queue_url)
120
+ end
121
+
122
+ def test_09_publish
123
+ response = @sns.publish(@@topic_arn, 'Message to publish', 'Message Subject')
124
+ assert_not_nil(response)
125
+ end
126
+
127
+ def test_10_add_and_remove_permission
128
+ acct_num = TestCredentials.account_number.gsub('-','')
129
+
130
+ add_response = @sns.add_permission(@@topic_arn, 'PermissionLbl', [
131
+ {:aws_account_id => acct_num, :action => "GetTopicAttributes"},
132
+ {:aws_account_id => acct_num, :action => "Publish"}
133
+ ])
134
+ assert_not_nil(add_response)
135
+
136
+ remove_response = @sns.remove_permission(@@topic_arn, 'PermissionLbl')
137
+ assert_not_nil(remove_response)
138
+ end
139
+
140
+ # TODO: Cannot easily test confirming subscription because it's only valid for http(s) and email subscriptions.
141
+ # Since we don't want to setup an email box or HTTP server to recive the token, we can't really simulate this
142
+ # def test_10_confirm_subscription
143
+ # response = @sns.confirm_subscription(@@topic_arn, 'SomeToken')
144
+ # assert_not_null(response)
145
+ # end
146
+
147
+ def test_30_delete_topic
148
+ response = @sns.delete_topic(@@topic_arn)
149
+ assert_not_nil(response)
150
+ sleep(1)
151
+ assert(!@sns.list_topics.collect{|topic| topic[:arn] }.include?(@@topic_arn))
152
+ end
153
+ end
@@ -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
@@ -7,8 +7,13 @@ class TestSqsGen2 < Test::Unit::TestCase
7
7
 
8
8
 
9
9
  def setup
10
+ $stdout.sync = true
11
+ @grantee_aws_id = '100000000001'
10
12
  @sqs = Rightscale::SqsGen2Interface.new(TestCredentials.aws_access_key_id, TestCredentials.aws_secret_access_key)
11
- @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'
12
17
  # for classes
13
18
  @s = Rightscale::SqsGen2.new(TestCredentials.aws_access_key_id, TestCredentials.aws_secret_access_key)
14
19
  end
@@ -19,18 +24,24 @@ class TestSqsGen2 < Test::Unit::TestCase
19
24
  # the additional faults then wait a bit...
20
25
  def wait_for_queue_url(queue_name)
21
26
  queue_url = nil
22
- until queue_url
27
+ do_sleep(180) do
23
28
  queue_url = @sqs.queue_url_by_name(queue_name)
24
- unless queue_url
25
- print '-'
26
- STDOUT.flush
27
- sleep 1
28
- end
29
29
  end
30
+ sleep 30
30
31
  queue_url
31
32
  end
32
-
33
-
33
+
34
+ def do_sleep(delay, &block)
35
+ puts "sleeping #{block ? 'up to ' : ''}#{delay} seconds:"
36
+ wake_up_at = Time.now+delay
37
+ while Time.now < wake_up_at do
38
+ sleep 1
39
+ print '.'
40
+ break if block && block.call
41
+ end
42
+ puts
43
+ end
44
+
34
45
  #---------------------------
35
46
  # Rightscale::SqsInterface
36
47
  #---------------------------
@@ -48,13 +59,51 @@ class TestSqsGen2 < Test::Unit::TestCase
48
59
 
49
60
  def test_03_set_and_get_queue_attributes
50
61
  queue_url = @sqs.queue_url_by_name(@queue_name)
51
- assert queue_url[/http.*#{@queue_name}/], "#{@queue_name} must exist!"
62
+ assert queue_url[/https.*#{@queue_name}/], "#{@queue_name} must exist!"
52
63
  assert @sqs.set_queue_attributes(queue_url, 'VisibilityTimeout', 111), 'Set_queue_attributes fail'
53
- sleep 20 # Amazon needs some time to change attribute
64
+ do_sleep 60 # Amazon needs some time to change attribute
54
65
  assert_equal '111', @sqs.get_queue_attributes(queue_url)['VisibilityTimeout'], 'New VisibilityTimeout must be equal to 111'
55
66
  end
56
-
57
- def test_06_send_message
67
+
68
+ def test_04_get_queue_attributes_forms
69
+ queue_url = @sqs.queue_url_by_name(@queue_name)
70
+ all = nil
71
+ assert_nothing_raised do
72
+ all = @sqs.get_queue_attributes(queue_url, 'All')
73
+ end
74
+ assert_nothing_raised do
75
+ assert all, @sqs.get_queue_attributes(queue_url)
76
+ end
77
+ assert_nothing_raised do
78
+ attributes = @sqs.get_queue_attributes(queue_url, 'ApproximateNumberOfMessages', 'VisibilityTimeout')
79
+ assert_equal 2, attributes.size
80
+ end
81
+ assert_nothing_raised do
82
+ attributes = @sqs.get_queue_attributes(queue_url, ['ApproximateNumberOfMessages', 'VisibilityTimeout'])
83
+ assert_equal 2, attributes.size
84
+ end
85
+ end
86
+
87
+ def test_05_add_permissions
88
+ queue_url = @sqs.queue_url_by_name(@queue_name)
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'])
91
+ do_sleep 60
92
+ end
93
+
94
+ def test_06_test_permissions
95
+ queue_url = @sqs.queue_url_by_name(@queue_name)
96
+ permissions = @sqs.get_queue_attributes(queue_url, 'Policy')
97
+ assert !permissions.right_blank?
98
+ end
99
+
100
+ def test_07_revoke_permissions
101
+ queue_url = @sqs.queue_url_by_name(@queue_name)
102
+ assert @sqs.remove_permissions(queue_url, 'test01')
103
+ assert @sqs.remove_permissions(queue_url, 'test02')
104
+ end
105
+
106
+ def test_14_send_message
58
107
  queue_url = @sqs.queue_url_by_name(@queue_name)
59
108
  # send 5 messages for the tests below
60
109
  assert @sqs.send_message(queue_url, RIGHT_MESSAGE_TEXT)
@@ -62,28 +111,29 @@ class TestSqsGen2 < Test::Unit::TestCase
62
111
  assert @sqs.send_message(queue_url, RIGHT_MESSAGE_TEXT)
63
112
  assert @sqs.send_message(queue_url, RIGHT_MESSAGE_TEXT)
64
113
  assert @sqs.send_message(queue_url, RIGHT_MESSAGE_TEXT)
114
+ do_sleep 60
65
115
  end
66
116
 
67
- def test_07_get_queue_length
117
+ def test_15_get_queue_length
68
118
  queue_url = @sqs.queue_url_by_name(@queue_name)
69
119
  assert_equal 5, @sqs.get_queue_length(queue_url), 'Queue must have 5 messages'
70
120
  end
71
121
 
72
- def test_08_receive_message
122
+ def test_16_receive_message
73
123
  queue_url = @sqs.queue_url_by_name(@queue_name)
74
124
  r_message = @sqs.receive_message(queue_url, 1)[0]
75
125
  assert r_message, "Receive returned no message(s), but this is not necessarily incorrect"
76
126
  assert_equal RIGHT_MESSAGE_TEXT, r_message['Body'], 'Receive message got wrong message text'
77
127
  end
78
128
 
79
- def test_09_delete_message
129
+ def test_17_delete_message
80
130
  queue_url = @sqs.queue_url_by_name(@queue_name)
81
131
  message = @sqs.receive_message(queue_url)[0]
82
132
  assert @sqs.delete_message(queue_url, message['ReceiptHandle']), 'Delete_message fail'
83
133
  assert @sqs.pop_message(queue_url), 'Pop_message fail'
84
134
  end
85
135
 
86
- def test_10_clear_and_delete_queue
136
+ def test_18_clear_and_delete_queue
87
137
  queue_url = @sqs.queue_url_by_name(@queue_name)
88
138
  assert @sqs.delete_queue(queue_url)
89
139
  end
@@ -92,31 +142,36 @@ class TestSqsGen2 < Test::Unit::TestCase
92
142
  # Rightscale::Sqs classes
93
143
  #---------------------------
94
144
 
95
- def test_20_sqs_create_delete_queue
145
+ def test_20_sqs_create_queue
96
146
  assert @s, 'Rightscale::SqsGen2 must exist'
97
147
  # get queues list
98
148
  queues_size = @s.queues.size
99
149
  # create new queue
100
- queue = @s.queue("#{@queue_name}_20", true)
150
+ queue = @s.queue(@queue2_name, true)
101
151
  # check that it is created
102
152
  assert queue.is_a?(Rightscale::SqsGen2::Queue)
103
- wait_for_queue_url(@queue_name)
153
+ wait_for_queue_url(queue.name)
104
154
  # check that amount of queues has increased
105
155
  assert_equal queues_size + 1, @s.queues.size
106
- # delete queue
156
+ do_sleep 10
157
+ end
158
+
159
+ def test_21_sqs_delete_queue
160
+ queue = @s.queue(@queue2_name, false)
107
161
  assert queue.delete
108
162
  end
109
163
 
110
- def test_21_queue_create
164
+ def test_22_queue_create
111
165
  # create new queue
112
- queue = Rightscale::SqsGen2::Queue.create(@s, "#{@queue_name}_21", true)
166
+ queue = Rightscale::SqsGen2::Queue.create(@s, @queue3_name, true)
113
167
  # check that it is created
114
168
  assert queue.is_a?(Rightscale::SqsGen2::Queue)
115
- wait_for_queue_url(@queue_name)
169
+ wait_for_queue_url("#{@queue_name}_21")
170
+ do_sleep 10
116
171
  end
117
172
 
118
- def test_22_queue_attributes
119
- queue = Rightscale::SqsGen2::Queue.create(@s, "#{@queue_name}_21", false)
173
+ def test_23_queue_attributes
174
+ queue = Rightscale::SqsGen2::Queue.create(@s, @queue3_name, false)
120
175
  # get a list of attrinutes
121
176
  attributes = queue.get_attribute
122
177
  assert attributes.is_a?(Hash) && attributes.size>0
@@ -125,7 +180,7 @@ class TestSqsGen2 < Test::Unit::TestCase
125
180
  # set attribute
126
181
  assert queue.set_attribute('VisibilityTimeout', v)
127
182
  # wait a bit
128
- sleep 20
183
+ do_sleep 60
129
184
  # check that attribute has changed
130
185
  assert_equal v, queue.get_attribute('VisibilityTimeout')
131
186
  # get queue visibility timeout
@@ -135,25 +190,34 @@ class TestSqsGen2 < Test::Unit::TestCase
135
190
  # make sure that it is changed
136
191
  assert v.to_i + 10, queue.visibility
137
192
  end
193
+
194
+ def test_24
195
+ queue = Rightscale::SqsGen2::Queue.create(@s, @queue3_name, false)
196
+ assert queue.delete
197
+ end
138
198
 
139
- def test_24_send_size
140
- queue = Rightscale::SqsGen2::Queue.create(@s, "#{@queue_name}_24", true)
199
+ def test_25_send_size
200
+ queue = Rightscale::SqsGen2::Queue.create(@s, @queue4_name, true)
141
201
  # send 5 messages
142
202
  assert queue.push('a1')
143
203
  assert queue.push('a2')
144
204
  assert queue.push('a3')
145
205
  assert queue.push('a4')
146
206
  assert queue.push('a5')
207
+ #
208
+ do_sleep(300){ queue.size == 5 }
147
209
  # check queue size
148
210
  assert_equal 5, queue.size
149
211
  # send one more
150
212
  assert queue.push('a6')
213
+ #
214
+ do_sleep(300){ queue.size == 6 }
151
215
  # check queue size again
152
216
  assert_equal 6, queue.size
153
217
  end
154
218
 
155
- def test_25_message_receive_pop_delete
156
- queue = Rightscale::SqsGen2::Queue.create(@s, "#{@queue_name}_24", false)
219
+ def test_26_message_receive_pop_delete
220
+ queue = Rightscale::SqsGen2::Queue.create(@s, @queue4_name, false)
157
221
  # get queue size
158
222
  size = queue.size
159
223
  # get first message
@@ -162,25 +226,31 @@ class TestSqsGen2 < Test::Unit::TestCase
162
226
  # pop second message
163
227
  m2 = queue.pop
164
228
  assert m2.is_a?(Rightscale::SqsGen2::Message)
229
+ #
230
+ do_sleep 30
165
231
  # make sure that queue size has decreased
166
232
  assert_equal size-1, queue.size
167
233
  # delete messsage
168
234
  assert m1.delete
235
+ #
236
+ do_sleep 15
169
237
  # make sure that queue size has decreased again
170
238
  assert_equal size-2, queue.size
171
239
  end
172
240
 
173
- def test_26
174
- queue = Rightscale::SqsGen2::Queue.create(@s, "#{@queue_name}_24", false)
241
+ def test_27
242
+ queue = Rightscale::SqsGen2::Queue.create(@s, @queue4_name, false)
175
243
  # lock message
176
244
  queue.receive(100)
177
245
  # clear queue
178
246
  assert queue.clear
179
247
  # queue size is greater than zero
180
248
  assert queue.size>0
249
+ # delete queue
250
+ assert queue.delete
181
251
  end
182
252
 
183
- def test_27_set_amazon_problems
253
+ def test_28_set_amazon_problems
184
254
  original_problems = Rightscale::SqsGen2Interface.amazon_problems
185
255
  assert(original_problems.length > 0)
186
256
  Rightscale::SqsGen2Interface.amazon_problems= original_problems << "A New Problem"
@@ -190,20 +260,5 @@ class TestSqsGen2 < Test::Unit::TestCase
190
260
  Rightscale::SqsGen2Interface.amazon_problems= nil
191
261
  assert_nil(Rightscale::SqsGen2Interface.amazon_problems)
192
262
  end
193
-
194
- def test_28_check_threading_model
195
- assert(!@sqs.multi_thread)
196
- newsqs = Rightscale::SqsGen2Interface.new(TestCredentials.aws_access_key_id, TestCredentials.aws_secret_access_key, {:multi_thread => true})
197
- assert(newsqs.multi_thread)
198
- end
199
-
200
- def test_29_signature_version_0
201
- sqs = Rightscale::SqsInterface.new(TestCredentials.aws_access_key_id, TestCredentials.aws_secret_access_key, :signature_version => '0')
202
- assert_nothing_raised do
203
- sqs.list_queues
204
- end
205
- # check that the request has correct signature version
206
- assert sqs.last_request.path.include?('SignatureVersion=0')
207
- end
208
263
 
209
264
  end