internuity-awsum 0.2 → 0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. data/Rakefile +2 -1
  2. data/lib/awsum.rb +1 -1
  3. data/lib/ec2/address.rb +118 -0
  4. data/lib/ec2/availability_zone.rb +68 -0
  5. data/lib/ec2/keypair.rb +75 -0
  6. data/lib/ec2/region.rb +96 -0
  7. data/lib/ec2/security_group.rb +175 -0
  8. data/lib/error.rb +55 -0
  9. data/lib/net_fix.rb +100 -0
  10. data/lib/requestable.rb +2 -0
  11. data/lib/s3/bucket.rb +66 -0
  12. data/lib/s3/headers.rb +24 -0
  13. data/lib/s3/object.rb +138 -0
  14. data/lib/s3/s3.rb +219 -0
  15. data/test/fixtures/ec2/addresses.xml +10 -0
  16. data/test/fixtures/ec2/allocate_address.xml +5 -0
  17. data/test/fixtures/ec2/associate_address.xml +5 -0
  18. data/test/fixtures/ec2/authorize_ip_access.xml +5 -0
  19. data/test/fixtures/ec2/authorize_owner_group_access.xml +5 -0
  20. data/test/fixtures/ec2/authorize_owner_group_access_error.xml +2 -0
  21. data/test/fixtures/ec2/availability_zones.xml +16 -0
  22. data/test/fixtures/ec2/create_key_pair.xml +29 -0
  23. data/test/fixtures/ec2/create_security_group.xml +5 -0
  24. data/test/fixtures/ec2/delete_key_pair.xml +5 -0
  25. data/test/fixtures/ec2/delete_security_group.xml +5 -0
  26. data/test/fixtures/ec2/deregister_image.xml +5 -0
  27. data/test/fixtures/ec2/disassociate_address.xml +5 -0
  28. data/test/fixtures/ec2/internal_error.xml +2 -0
  29. data/test/fixtures/ec2/invalid_amiid_error.xml +2 -0
  30. data/test/fixtures/ec2/invalid_request_error.xml +2 -0
  31. data/test/fixtures/ec2/key_pairs.xml +10 -0
  32. data/test/fixtures/ec2/regions.xml +14 -0
  33. data/test/fixtures/ec2/register_image.xml +5 -0
  34. data/test/fixtures/ec2/release_address.xml +5 -0
  35. data/test/fixtures/ec2/revoke_ip_access.xml +5 -0
  36. data/test/fixtures/ec2/revoke_owner_group_access.xml +5 -0
  37. data/test/fixtures/ec2/security_groups.xml +159 -0
  38. data/test/fixtures/ec2/unassociated_address.xml +10 -0
  39. data/test/fixtures/s3/buckets.xml +2 -0
  40. data/test/fixtures/s3/copy_failure.xml +23 -0
  41. data/test/fixtures/s3/invalid_request_signature.xml +5 -0
  42. data/test/fixtures/s3/keys.xml +2 -0
  43. data/test/units/ec2/test_addresses.rb +60 -0
  44. data/test/units/ec2/test_keypair.rb +87 -0
  45. data/test/units/ec2/test_regions.rb +33 -0
  46. data/test/units/ec2/test_security_group.rb +105 -0
  47. data/test/units/s3/test_bucket.rb +58 -0
  48. data/test/units/s3/test_object.rb +111 -0
  49. data/test/units/s3/test_s3.rb +298 -0
  50. data/test/units/test_error.rb +101 -0
  51. data/test/units/test_requestable.rb +241 -0
  52. data/test/work_out_string_to_sign.rb +7 -0
  53. metadata +132 -43
@@ -0,0 +1,101 @@
1
+ require File.expand_path('../helper', File.dirname(__FILE__))
2
+
3
+ class ErrorTest < Test::Unit::TestCase
4
+ context "A request to EC2" do
5
+ setup {
6
+ @ec2 = Awsum::Ec2.new('abc', 'xyz')
7
+ }
8
+
9
+ context "a raised error" do
10
+ setup {
11
+ xml = load_fixture('ec2/invalid_request_error')
12
+ response = stub('Http Response', :body => xml, :code => 400)
13
+ @ec2.expects(:process_request).with{|method, uri| @uri = uri}.returns(response)
14
+
15
+ begin
16
+ @ec2.images
17
+ rescue Awsum::Error => e
18
+ @error = e
19
+ end
20
+ }
21
+
22
+ should "have the correct response code" do
23
+ assert_equal 400, @error.response_code
24
+ end
25
+
26
+ should "have the correct code" do
27
+ assert_equal 'InvalidRequest', @error.code
28
+ end
29
+
30
+ should "have the correct message" do
31
+ assert_equal 'The request received was invalid.', @error.message
32
+ end
33
+
34
+ should "have the correct request id" do
35
+ assert_equal '7cbacf61-c7df-468a-8130-cf5d659f8144', @error.request_id
36
+ end
37
+
38
+ should "return error info in inspect" do
39
+ assert_equal '#<Awsum::Error response_code=400 code=InvalidRequest request_id=7cbacf61-c7df-468a-8130-cf5d659f8144 message=The request received was invalid.>', @error.inspect
40
+ end
41
+ end
42
+
43
+ context "with an invalid request" do
44
+ setup {
45
+ xml = load_fixture('ec2/invalid_request_error')
46
+ response = stub('Http Response', :body => xml, :code => 400)
47
+ @ec2.expects(:process_request).with{|method, uri| @uri = uri}.returns(response)
48
+ }
49
+
50
+ should "raise an error" do
51
+ assert_raise Awsum::Error do
52
+ @ec2.images
53
+ end
54
+ end
55
+ end
56
+ end
57
+
58
+ context "A request to S3" do
59
+ setup {
60
+ @s3 = Awsum::S3.new('abc', 'xyz')
61
+ }
62
+
63
+ context "with an invalid signature" do
64
+ setup {
65
+ xml = load_fixture('s3/invalid_request_signature')
66
+ response = stub('Http Response', :body => xml, :code => 403)
67
+ @s3.expects(:process_request).yields(response)
68
+
69
+ begin
70
+ @s3.create_object('test', 'test.txt', 'some data')
71
+ rescue Awsum::Error => e
72
+ @error = e
73
+ end
74
+ }
75
+
76
+ should "have the correct response code" do
77
+ assert_equal 403, @error.response_code
78
+ end
79
+
80
+ should "have the correct code" do
81
+ assert_equal 'SignatureDoesNotMatch', @error.code
82
+ end
83
+
84
+ should "have the correct message" do
85
+ assert_equal 'The request signature we calculated does not match the signature you provided. Check your key and signing method.', @error.message
86
+ end
87
+
88
+ should "have the correct request id" do
89
+ assert_equal '508F513C9D42C30E', @error.request_id
90
+ end
91
+
92
+ should "have additional data" do
93
+ assert @error.additional.is_a?(Hash)
94
+ end
95
+
96
+ should "have the string to sign" do
97
+ assert_equal '50 55 54 0a 59 57 59 34 4d 47 4a 6c 4d 6d 55 32 5a 44 59 35 4e 32 59 79 4f 57 45 35 5a 44 67 31 59 6a 67 33 59 54 51 35 4f 54 6b 79 4d 44 55 3d 0a 61 70 70 6c 69 63 61 74 69 6f 6e 2f 78 2d 77 77 77 2d 66 6f 72 6d 2d 75 72 6c 65 6e 63 6f 64 65 64 0a 54 75 65 2c 20 32 37 20 4a 61 6e 20 32 30 30 39 20 30 35 3a 31 38 3a 30 36 20 2b 30 32 30 30 0a 2f 61 77 73 75 6d 2d 74 65 73 74 2d 62 75 63 6b 65 74 2f 74 65 73 74 31 2e 74 78 74', @error.additional['StringToSignBytes']
98
+ end
99
+ end
100
+ end
101
+ end
@@ -0,0 +1,241 @@
1
+ require File.expand_path('../helper', File.dirname(__FILE__))
2
+
3
+ class RequestableTest < Test::Unit::TestCase
4
+ #include Awsum::Requestable so we can test the private methods directly
5
+ include Awsum::Requestable
6
+
7
+ context "Mock HTTP calls: " do
8
+ setup {
9
+ @response = mock('HTTP Response', :is_a? => true)
10
+ }
11
+
12
+ context "A call to send_query_request" do
13
+ setup {
14
+ @access_key = 'ABCDEF'
15
+ @secret_key = '123456'
16
+ @host = 'test.amazonaws.com'
17
+ self.expects(:process_request).with{|method, uri|
18
+ uri == 'https://test.amazonaws.com/?AWSAccessKeyId=ABCDEF&Action=DescribeImages&ImageId.1=ami-1234567&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2009-01-23T03%3A34%3A38.000Z&Version=2008-12-01&Signature=Da66foYzsBTzMoCgCMBaUJrr4ha3NpWEWZ%2BHxl5h5eg%3D'
19
+ }.returns(@response)
20
+
21
+ send_query_request({'Action' => 'DescribeImages', 'ImageId.1' => 'ami-1234567', 'Timestamp' => '2009-01-23T03:34:38.000Z'})
22
+ }
23
+
24
+ should "pass" do
25
+ assert true
26
+ end
27
+ end
28
+
29
+ # These test are taken directly from Amazon's examples at
30
+ # http://docs.amazonwebservices.com/AmazonS3/2006-03-01/RESTAuthentication.html
31
+ context "AWS S3 Authentication examples: " do
32
+ setup {
33
+ @access_key = '0PN5J17HBGZHT7JJ3X82'
34
+ @secret_key = 'uV3F3YluFJax1cknvbcGwgjvx4QpvB+leU8dUj2o'
35
+ @host = 's3.amazonaws.com'
36
+ }
37
+
38
+ context "Example Object GET" do
39
+ setup {
40
+ method = 'GET'
41
+ key = '/photos/puppy.jpg'
42
+ bucket = 'johnsmith'
43
+ date = 'Tue, 27 Mar 2007 19:36:42 +0000'
44
+ headers = {
45
+ 'Date' => date
46
+ }
47
+
48
+ self.expects(:process_request).with{|method, uri, headers, data|
49
+ headers['authorization'] == 'AWS 0PN5J17HBGZHT7JJ3X82:xXjDGYUmKxnwqr5KXNPGldn5LbA='
50
+ }.yields(@response)
51
+
52
+ send_s3_request(method, :bucket => bucket, :key => key, :headers => headers)
53
+ }
54
+
55
+ should "pass" do
56
+ assert true
57
+ end
58
+ end
59
+
60
+ context "Example Object PUT" do
61
+ setup {
62
+ method = 'PUT'
63
+ key = '/photos/puppy.jpg'
64
+ bucket = 'johnsmith'
65
+ date = 'Tue, 27 Mar 2007 21:15:45 +0000'
66
+ headers = {
67
+ 'Date' => date,
68
+ 'Content-Type' => 'image/jpeg',
69
+ 'Content-Length' => 94328
70
+ }
71
+
72
+ self.expects(:process_request).with{|method, uri, headers, data|
73
+ headers['authorization'] == 'AWS 0PN5J17HBGZHT7JJ3X82:hcicpDDvL9SsO6AkvxqmIWkmOuQ='
74
+ }.yields(@response)
75
+
76
+ send_s3_request(method, :bucket => bucket, :key => key, :headers => headers)
77
+ }
78
+
79
+ should "pass" do
80
+ assert true
81
+ end
82
+ end
83
+
84
+ context "Example List" do
85
+ setup {
86
+ method = 'GET'
87
+ key = ''
88
+ parameters = {'acl' => nil}
89
+ bucket = 'johnsmith'
90
+ date = 'Tue, 27 Mar 2007 19:44:46 +0000'
91
+ headers = {
92
+ 'Date' => date
93
+ }
94
+
95
+ self.expects(:process_request).with{|method, uri, headers, data|
96
+ headers['authorization'] == 'AWS 0PN5J17HBGZHT7JJ3X82:thdUi9VAkzhkniLj96JIrOPGi0g='
97
+ }.yields(@response)
98
+
99
+ send_s3_request(method, :bucket => bucket, :key => key, :parameters => parameters, :headers => headers)
100
+ }
101
+
102
+ should "pass" do
103
+ assert true
104
+ end
105
+ end
106
+
107
+ context "Example Delete" do
108
+ setup {
109
+ method = 'DELETE'
110
+ key = '/photos/puppy.jpg'
111
+ parameters = {}
112
+ bucket = 'johnsmith'
113
+ date = 'Tue, 27 Mar 2007 21:20:27 +0000'
114
+ headers = {
115
+ 'Date' => date,
116
+ 'User-Agent' => 'dotnet',
117
+ 'x-amz-date' => 'Tue, 27 Mar 2007 21:20:26 +0000'
118
+ }
119
+
120
+ self.expects(:process_request).with{|method, uri, headers, data|
121
+ headers['authorization'] == 'AWS 0PN5J17HBGZHT7JJ3X82:k3nL7gH3+PadhTEVn5Ip83xlYzk='
122
+ }.yields(@response)
123
+
124
+ send_s3_request(method, :bucket => bucket, :key => key, :parameters => parameters, :headers => headers)
125
+ }
126
+
127
+ should "pass" do
128
+ assert true
129
+ end
130
+ end
131
+
132
+ context "Example Upload" do
133
+ setup {
134
+ method = 'PUT'
135
+ key = '/db-backup.dat.gz'
136
+ parameters = {}
137
+ bucket = 'static.johnsmith.net'
138
+ date = 'Tue, 27 Mar 2007 21:06:08 +0000'
139
+ headers = {
140
+ 'Date' => date,
141
+ 'User-Agent' => 'curl/7.15.5',
142
+ 'x-amz-acl' => 'public-read',
143
+ 'content-type' => 'application/x-download',
144
+ 'Content-MD5' => '4gJE4saaMU4BqNR0kLY+lw==',
145
+ 'X-Amz-Meta-ReviewedBy' => ['joe@johnsmith.net', 'jane@johnsmith.net'],
146
+ 'X-Amz-Meta-FileChecksum' => '0x02661779',
147
+ 'X-Amz-Meta-ChecksumAlgorithm' => 'crc32',
148
+ 'Content-Disposition' => 'attachment; filename=database.dat',
149
+ 'Content-Encoding' => 'gzip',
150
+ 'Content-Length' => '5913339'
151
+ }
152
+
153
+ self.expects(:process_request).with{|method, uri, headers, data|
154
+ headers['authorization'] == 'AWS 0PN5J17HBGZHT7JJ3X82:C0FlOtU8Ylb9KDTpZqYkZPX91iI='
155
+ }.yields(@response)
156
+
157
+ send_s3_request(method, :bucket => bucket, :key => key, :parameters => parameters, :headers => headers)
158
+ }
159
+
160
+ should "pass" do
161
+ assert true
162
+ end
163
+ end
164
+
165
+ context "Example List All My Buckets" do
166
+ setup {
167
+ method = 'GET'
168
+ key = ''
169
+ parameters = {}
170
+ bucket = ''
171
+ date = 'Wed, 28 Mar 2007 01:29:59 +0000'
172
+ headers = {
173
+ 'Date' => date
174
+ }
175
+
176
+ self.expects(:process_request).with{|method, uri, headers, data|
177
+ headers['authorization'] == 'AWS 0PN5J17HBGZHT7JJ3X82:Db+gepJSUbZKwpx1FR0DLtEYoZA='
178
+ }.yields(@response)
179
+
180
+ send_s3_request(method, :bucket => bucket, :key => key, :parameters => parameters, :headers => headers)
181
+ }
182
+
183
+ should "pass" do
184
+ assert true
185
+ end
186
+ end
187
+
188
+ context "Example Unicode Keys" do
189
+ setup {
190
+ method = 'GET'
191
+ key = '/fran%C3%A7ais/pr%c3%a9f%c3%a8re'
192
+ parameters = {}
193
+ bucket = 'dictionary'
194
+ date = 'Wed, 28 Mar 2007 01:49:49 +0000'
195
+ headers = {
196
+ 'Date' => date
197
+ }
198
+
199
+ self.expects(:process_request).with{|method, uri, headers, data|
200
+ headers['authorization'] == 'AWS 0PN5J17HBGZHT7JJ3X82:dxhSBHoI6eVSPcXJqEghlUzZMnY='
201
+ }.yields(@response)
202
+
203
+ send_s3_request(method, :bucket => bucket, :key => key, :parameters => parameters, :headers => headers)
204
+ }
205
+
206
+ should "pass" do
207
+ assert true
208
+ end
209
+ end
210
+ end
211
+ end
212
+
213
+ context "AWS S3 Authentication examples: " do
214
+ setup {
215
+ @access_key = '0PN5J17HBGZHT7JJ3X82'
216
+ @secret_key = 'uV3F3YluFJax1cknvbcGwgjvx4QpvB+leU8dUj2o'
217
+ @host = 's3.amazonaws.com'
218
+ }
219
+
220
+ context "Example Query String Request Authentication" do
221
+ setup {
222
+ method = 'GET'
223
+ key = '/photos/puppy.jpg'
224
+ parameters = {}
225
+ bucket = 'johnsmith'
226
+ expires = 1175139620
227
+ headers = {}
228
+ @signed_request = generate_s3_signed_request_url(method, bucket, key, expires)
229
+ }
230
+
231
+ should "pass" do
232
+ assert_equal 'http://johnsmith.s3.amazonaws.com/photos/puppy.jpg?AWSAccessKeyId=0PN5J17HBGZHT7JJ3X82&Signature=rucSbH0yNEcP9oM2XNlouVI3BH4%3D&Expires=1175139620', @signed_request
233
+ end
234
+ end
235
+ end
236
+
237
+ #Host helper
238
+ def host
239
+ @host
240
+ end
241
+ end
@@ -0,0 +1,7 @@
1
+ byte_array = ARGV
2
+ str = ""
3
+ byte_array.each do |byte|
4
+ str << byte.hex.chr
5
+ end
6
+
7
+ puts str
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: internuity-awsum
3
3
  version: !ruby/object:Gem::Version
4
- version: "0.2"
4
+ version: "0.3"
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Timberlake
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-01-15 00:00:00 -08:00
12
+ date: 2009-03-05 00:00:00 -08:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -44,45 +44,97 @@ files:
44
44
  - README.rdoc
45
45
  - LICENSE
46
46
  - Rakefile
47
- - lib/requestable.rb
47
+ - lib/error.rb
48
+ - lib/parser.rb
48
49
  - lib/support.rb
49
50
  - lib/ec2
50
- - lib/ec2/instance.rb
51
- - lib/ec2/image.rb
52
- - lib/ec2/volume.rb
53
51
  - lib/ec2/snapshot.rb
52
+ - lib/ec2/availability_zone.rb
53
+ - lib/ec2/security_group.rb
54
+ - lib/ec2/volume.rb
55
+ - lib/ec2/instance.rb
56
+ - lib/ec2/region.rb
57
+ - lib/ec2/address.rb
54
58
  - lib/ec2/ec2.rb
59
+ - lib/ec2/image.rb
60
+ - lib/ec2/keypair.rb
61
+ - lib/requestable.rb
62
+ - lib/s3
63
+ - lib/s3/headers.rb
64
+ - lib/s3/bucket.rb
65
+ - lib/s3/object.rb
66
+ - lib/s3/s3.rb
55
67
  - lib/awsum.rb
56
- - lib/parser.rb
57
- - test/units
58
- - test/units/ec2
59
- - test/units/ec2/test_image.rb
60
- - test/units/ec2/test_ec2.rb
61
- - test/units/ec2/test_snapshot.rb
62
- - test/units/ec2/test_instance.rb
63
- - test/units/ec2/test_volume.rb
64
- - test/units/test_awsum.rb
65
- - test/helper.rb
66
- - test/dump.rb
68
+ - lib/net_fix.rb
67
69
  - test/fixtures
70
+ - test/fixtures/errors
71
+ - test/fixtures/errors/invalid_parameter_value.xml
68
72
  - test/fixtures/ec2
69
- - test/fixtures/ec2/instances.xml
70
- - test/fixtures/ec2/instance.xml
71
- - test/fixtures/ec2/attach_volume.xml
73
+ - test/fixtures/ec2/terminate_instances.xml
72
74
  - test/fixtures/ec2/create_snapshot.xml
73
- - test/fixtures/ec2/available_volume.xml
74
- - test/fixtures/ec2/detach_volume.xml
75
- - test/fixtures/ec2/create_volume.xml
75
+ - test/fixtures/ec2/delete_security_group.xml
76
76
  - test/fixtures/ec2/delete_snapshot.xml
77
+ - test/fixtures/ec2/internal_error.xml
78
+ - test/fixtures/ec2/instance.xml
79
+ - test/fixtures/ec2/revoke_ip_access.xml
80
+ - test/fixtures/ec2/create_volume.xml
81
+ - test/fixtures/ec2/disassociate_address.xml
82
+ - test/fixtures/ec2/available_volume.xml
83
+ - test/fixtures/ec2/snapshots.xml
84
+ - test/fixtures/ec2/register_image.xml
85
+ - test/fixtures/ec2/deregister_image.xml
77
86
  - test/fixtures/ec2/volumes.xml
87
+ - test/fixtures/ec2/invalid_amiid_error.xml
88
+ - test/fixtures/ec2/regions.xml
89
+ - test/fixtures/ec2/create_security_group.xml
90
+ - test/fixtures/ec2/authorize_owner_group_access_error.xml
91
+ - test/fixtures/ec2/run_instances.xml
92
+ - test/fixtures/ec2/revoke_owner_group_access.xml
93
+ - test/fixtures/ec2/invalid_request_error.xml
94
+ - test/fixtures/ec2/attach_volume.xml
78
95
  - test/fixtures/ec2/images.xml
79
- - test/fixtures/ec2/delete_volume.xml
96
+ - test/fixtures/ec2/delete_key_pair.xml
97
+ - test/fixtures/ec2/authorize_owner_group_access.xml
98
+ - test/fixtures/ec2/availability_zones.xml
99
+ - test/fixtures/ec2/authorize_ip_access.xml
100
+ - test/fixtures/ec2/create_key_pair.xml
101
+ - test/fixtures/ec2/instances.xml
80
102
  - test/fixtures/ec2/image.xml
81
- - test/fixtures/ec2/run_instances.xml
82
- - test/fixtures/ec2/terminate_instances.xml
83
- - test/fixtures/ec2/snapshots.xml
84
- - test/fixtures/errors
85
- - test/fixtures/errors/invalid_parameter_value.xml
103
+ - test/fixtures/ec2/key_pairs.xml
104
+ - test/fixtures/ec2/addresses.xml
105
+ - test/fixtures/ec2/allocate_address.xml
106
+ - test/fixtures/ec2/unassociated_address.xml
107
+ - test/fixtures/ec2/security_groups.xml
108
+ - test/fixtures/ec2/detach_volume.xml
109
+ - test/fixtures/ec2/delete_volume.xml
110
+ - test/fixtures/ec2/associate_address.xml
111
+ - test/fixtures/ec2/release_address.xml
112
+ - test/fixtures/s3
113
+ - test/fixtures/s3/invalid_request_signature.xml
114
+ - test/fixtures/s3/copy_failure.xml
115
+ - test/fixtures/s3/buckets.xml
116
+ - test/fixtures/s3/keys.xml
117
+ - test/helper.rb
118
+ - test/dump.rb
119
+ - test/units
120
+ - test/units/test_error.rb
121
+ - test/units/ec2
122
+ - test/units/ec2/test_instance.rb
123
+ - test/units/ec2/test_snapshot.rb
124
+ - test/units/ec2/test_volume.rb
125
+ - test/units/ec2/test_image.rb
126
+ - test/units/ec2/test_regions.rb
127
+ - test/units/ec2/test_keypair.rb
128
+ - test/units/ec2/test_security_group.rb
129
+ - test/units/ec2/test_addresses.rb
130
+ - test/units/ec2/test_ec2.rb
131
+ - test/units/s3
132
+ - test/units/s3/test_bucket.rb
133
+ - test/units/s3/test_object.rb
134
+ - test/units/s3/test_s3.rb
135
+ - test/units/test_requestable.rb
136
+ - test/units/test_awsum.rb
137
+ - test/work_out_string_to_sign.rb
86
138
  has_rdoc: true
87
139
  homepage: http://www.internuity.net/projects/awsum
88
140
  post_install_message:
@@ -111,25 +163,62 @@ signing_key:
111
163
  specification_version: 2
112
164
  summary: Ruby library for working with Amazon Web Services
113
165
  test_files:
114
- - test/units/ec2/test_image.rb
115
- - test/units/ec2/test_ec2.rb
116
- - test/units/ec2/test_snapshot.rb
166
+ - test/units/test_error.rb
117
167
  - test/units/ec2/test_instance.rb
168
+ - test/units/ec2/test_snapshot.rb
118
169
  - test/units/ec2/test_volume.rb
170
+ - test/units/ec2/test_image.rb
171
+ - test/units/ec2/test_regions.rb
172
+ - test/units/ec2/test_keypair.rb
173
+ - test/units/ec2/test_security_group.rb
174
+ - test/units/ec2/test_addresses.rb
175
+ - test/units/ec2/test_ec2.rb
176
+ - test/units/s3/test_bucket.rb
177
+ - test/units/s3/test_object.rb
178
+ - test/units/s3/test_s3.rb
179
+ - test/units/test_requestable.rb
119
180
  - test/units/test_awsum.rb
120
- - test/fixtures/ec2/instances.xml
121
- - test/fixtures/ec2/instance.xml
122
- - test/fixtures/ec2/attach_volume.xml
181
+ - test/fixtures/errors/invalid_parameter_value.xml
182
+ - test/fixtures/ec2/terminate_instances.xml
123
183
  - test/fixtures/ec2/create_snapshot.xml
124
- - test/fixtures/ec2/available_volume.xml
125
- - test/fixtures/ec2/detach_volume.xml
126
- - test/fixtures/ec2/create_volume.xml
184
+ - test/fixtures/ec2/delete_security_group.xml
127
185
  - test/fixtures/ec2/delete_snapshot.xml
186
+ - test/fixtures/ec2/internal_error.xml
187
+ - test/fixtures/ec2/instance.xml
188
+ - test/fixtures/ec2/revoke_ip_access.xml
189
+ - test/fixtures/ec2/create_volume.xml
190
+ - test/fixtures/ec2/disassociate_address.xml
191
+ - test/fixtures/ec2/available_volume.xml
192
+ - test/fixtures/ec2/snapshots.xml
193
+ - test/fixtures/ec2/register_image.xml
194
+ - test/fixtures/ec2/deregister_image.xml
128
195
  - test/fixtures/ec2/volumes.xml
196
+ - test/fixtures/ec2/invalid_amiid_error.xml
197
+ - test/fixtures/ec2/regions.xml
198
+ - test/fixtures/ec2/create_security_group.xml
199
+ - test/fixtures/ec2/authorize_owner_group_access_error.xml
200
+ - test/fixtures/ec2/run_instances.xml
201
+ - test/fixtures/ec2/revoke_owner_group_access.xml
202
+ - test/fixtures/ec2/invalid_request_error.xml
203
+ - test/fixtures/ec2/attach_volume.xml
129
204
  - test/fixtures/ec2/images.xml
130
- - test/fixtures/ec2/delete_volume.xml
205
+ - test/fixtures/ec2/delete_key_pair.xml
206
+ - test/fixtures/ec2/authorize_owner_group_access.xml
207
+ - test/fixtures/ec2/availability_zones.xml
208
+ - test/fixtures/ec2/authorize_ip_access.xml
209
+ - test/fixtures/ec2/create_key_pair.xml
210
+ - test/fixtures/ec2/instances.xml
131
211
  - test/fixtures/ec2/image.xml
132
- - test/fixtures/ec2/run_instances.xml
133
- - test/fixtures/ec2/terminate_instances.xml
134
- - test/fixtures/ec2/snapshots.xml
135
- - test/fixtures/errors/invalid_parameter_value.xml
212
+ - test/fixtures/ec2/key_pairs.xml
213
+ - test/fixtures/ec2/addresses.xml
214
+ - test/fixtures/ec2/allocate_address.xml
215
+ - test/fixtures/ec2/unassociated_address.xml
216
+ - test/fixtures/ec2/security_groups.xml
217
+ - test/fixtures/ec2/detach_volume.xml
218
+ - test/fixtures/ec2/delete_volume.xml
219
+ - test/fixtures/ec2/associate_address.xml
220
+ - test/fixtures/ec2/release_address.xml
221
+ - test/fixtures/s3/invalid_request_signature.xml
222
+ - test/fixtures/s3/copy_failure.xml
223
+ - test/fixtures/s3/buckets.xml
224
+ - test/fixtures/s3/keys.xml