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.
- data/History.txt +164 -13
- data/Manifest.txt +28 -1
- data/README.txt +12 -10
- data/Rakefile +56 -29
- data/lib/acf/right_acf_interface.rb +343 -172
- 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 +248 -0
- data/lib/as/right_as_interface.rb +698 -0
- data/lib/awsbase/right_awsbase.rb +755 -115
- data/lib/awsbase/support.rb +2 -78
- data/lib/awsbase/version.rb +9 -0
- data/lib/ec2/right_ec2.rb +274 -1294
- data/lib/ec2/right_ec2_ebs.rb +514 -0
- data/lib/ec2/right_ec2_images.rb +444 -0
- data/lib/ec2/right_ec2_instances.rb +797 -0
- data/lib/ec2/right_ec2_monitoring.rb +70 -0
- data/lib/ec2/right_ec2_placement_groups.rb +108 -0
- data/lib/ec2/right_ec2_reserved_instances.rb +243 -0
- data/lib/ec2/right_ec2_security_groups.rb +496 -0
- data/lib/ec2/right_ec2_spot_instances.rb +422 -0
- data/lib/ec2/right_ec2_tags.rb +139 -0
- data/lib/ec2/right_ec2_vpc.rb +598 -0
- data/lib/ec2/right_ec2_vpc2.rb +382 -0
- data/lib/ec2/right_ec2_windows_mobility.rb +84 -0
- data/lib/elb/right_elb_interface.rb +573 -0
- data/lib/emr/right_emr_interface.rb +728 -0
- 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 +1657 -0
- data/lib/right_aws.rb +30 -13
- data/lib/route_53/right_route_53_interface.rb +641 -0
- data/lib/s3/right_s3.rb +108 -41
- data/lib/s3/right_s3_interface.rb +349 -118
- data/lib/sdb/active_sdb.rb +388 -54
- data/lib/sdb/right_sdb_interface.rb +323 -64
- data/lib/sns/right_sns_interface.rb +286 -0
- data/lib/sqs/right_sqs.rb +1 -2
- data/lib/sqs/right_sqs_gen2.rb +73 -17
- data/lib/sqs/right_sqs_gen2_interface.rb +146 -73
- data/lib/sqs/right_sqs_interface.rb +12 -22
- data/right_aws.gemspec +91 -0
- data/test/README.mdown +39 -0
- data/test/acf/test_right_acf.rb +11 -19
- data/test/awsbase/test_helper.rb +2 -0
- data/test/awsbase/test_right_awsbase.rb +11 -0
- data/test/ec2/test_right_ec2.rb +32 -1
- data/test/elb/test_helper.rb +2 -0
- data/test/elb/test_right_elb.rb +43 -0
- data/test/rds/test_helper.rb +2 -0
- data/test/rds/test_right_rds.rb +120 -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_right_s3.rb +176 -42
- data/test/s3/test_right_s3_stubbed.rb +6 -4
- data/test/sdb/test_active_sdb.rb +120 -19
- data/test/sdb/test_batch_put_attributes.rb +54 -0
- data/test/sdb/test_right_sdb.rb +71 -16
- data/test/sns/test_helper.rb +2 -0
- data/test/sns/test_right_sns.rb +153 -0
- data/test/sqs/test_right_sqs.rb +0 -6
- data/test/sqs/test_right_sqs_gen2.rb +104 -49
- data/test/ts_right_aws.rb +1 -0
- metadata +181 -22
@@ -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
|
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
|
@@ -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
|
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
|
-
|
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[/
|
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
|
-
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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(
|
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
|
-
|
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
|
164
|
+
def test_22_queue_create
|
111
165
|
# create new queue
|
112
|
-
queue = Rightscale::SqsGen2::Queue.create(@s,
|
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
|
119
|
-
queue = Rightscale::SqsGen2::Queue.create(@s,
|
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
|
-
|
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
|
140
|
-
queue = Rightscale::SqsGen2::Queue.create(@s,
|
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
|
156
|
-
queue = Rightscale::SqsGen2::Queue.create(@s,
|
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
|
174
|
-
queue = Rightscale::SqsGen2::Queue.create(@s,
|
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
|
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
|