aboisvert_aws 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. data/History.txt +329 -0
  2. data/Manifest.txt +61 -0
  3. data/README.txt +163 -0
  4. data/Rakefile +130 -0
  5. data/lib/acf/right_acf_interface.rb +549 -0
  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/benchmark_fix.rb +39 -0
  12. data/lib/awsbase/right_awsbase.rb +1343 -0
  13. data/lib/awsbase/support.rb +35 -0
  14. data/lib/awsbase/version.rb +9 -0
  15. data/lib/ec2/right_ec2.rb +541 -0
  16. data/lib/ec2/right_ec2_ebs.rb +481 -0
  17. data/lib/ec2/right_ec2_images.rb +444 -0
  18. data/lib/ec2/right_ec2_instances.rb +788 -0
  19. data/lib/ec2/right_ec2_monitoring.rb +70 -0
  20. data/lib/ec2/right_ec2_placement_groups.rb +108 -0
  21. data/lib/ec2/right_ec2_reserved_instances.rb +184 -0
  22. data/lib/ec2/right_ec2_security_groups.rb +491 -0
  23. data/lib/ec2/right_ec2_spot_instances.rb +422 -0
  24. data/lib/ec2/right_ec2_tags.rb +139 -0
  25. data/lib/ec2/right_ec2_vpc.rb +590 -0
  26. data/lib/ec2/right_ec2_vpc2.rb +381 -0
  27. data/lib/ec2/right_ec2_windows_mobility.rb +84 -0
  28. data/lib/elb/right_elb_interface.rb +573 -0
  29. data/lib/emr/right_emr_interface.rb +727 -0
  30. data/lib/iam/right_iam_access_keys.rb +71 -0
  31. data/lib/iam/right_iam_groups.rb +195 -0
  32. data/lib/iam/right_iam_interface.rb +341 -0
  33. data/lib/iam/right_iam_mfa_devices.rb +67 -0
  34. data/lib/iam/right_iam_users.rb +251 -0
  35. data/lib/rds/right_rds_interface.rb +1384 -0
  36. data/lib/right_aws.rb +86 -0
  37. data/lib/route_53/right_route_53_interface.rb +640 -0
  38. data/lib/s3/right_s3.rb +1138 -0
  39. data/lib/s3/right_s3_interface.rb +1278 -0
  40. data/lib/sdb/active_sdb.rb +1107 -0
  41. data/lib/sdb/right_sdb_interface.rb +762 -0
  42. data/lib/sns/right_sns_interface.rb +286 -0
  43. data/lib/sqs/right_sqs.rb +387 -0
  44. data/lib/sqs/right_sqs_gen2.rb +342 -0
  45. data/lib/sqs/right_sqs_gen2_interface.rb +523 -0
  46. data/lib/sqs/right_sqs_interface.rb +593 -0
  47. data/right_aws.gemspec +90 -0
  48. data/test/README.mdown +39 -0
  49. data/test/acf/test_helper.rb +2 -0
  50. data/test/acf/test_right_acf.rb +138 -0
  51. data/test/awsbase/test_helper.rb +2 -0
  52. data/test/awsbase/test_right_awsbase.rb +11 -0
  53. data/test/ec2/test_helper.rb +2 -0
  54. data/test/ec2/test_right_ec2.rb +107 -0
  55. data/test/elb/test_helper.rb +2 -0
  56. data/test/elb/test_right_elb.rb +43 -0
  57. data/test/http_connection.rb +87 -0
  58. data/test/rds/test_helper.rb +2 -0
  59. data/test/rds/test_right_rds.rb +120 -0
  60. data/test/route_53/fixtures/a_record.xml +18 -0
  61. data/test/route_53/fixtures/alias_record.xml +18 -0
  62. data/test/route_53/test_helper.rb +2 -0
  63. data/test/route_53/test_right_route_53.rb +141 -0
  64. data/test/s3/test_helper.rb +2 -0
  65. data/test/s3/test_right_s3.rb +528 -0
  66. data/test/s3/test_right_s3_stubbed.rb +97 -0
  67. data/test/sdb/test_active_sdb.rb +357 -0
  68. data/test/sdb/test_batch_put_attributes.rb +54 -0
  69. data/test/sdb/test_helper.rb +3 -0
  70. data/test/sdb/test_right_sdb.rb +253 -0
  71. data/test/sns/test_helper.rb +2 -0
  72. data/test/sns/test_right_sns.rb +153 -0
  73. data/test/sqs/test_helper.rb +2 -0
  74. data/test/sqs/test_right_sqs.rb +285 -0
  75. data/test/sqs/test_right_sqs_gen2.rb +264 -0
  76. data/test/test_credentials.rb +37 -0
  77. data/test/ts_right_aws.rb +15 -0
  78. metadata +257 -0
@@ -0,0 +1,329 @@
1
+ == 1.1.0 2007-08-10
2
+ Initial release.
3
+
4
+ == 1.2.0 2007-09-12
5
+
6
+ * r1718, todd, 2007-09-12 15:34:37
7
+ * # 458, Extensive documentation review, rework, and expansion. Also added
8
+ coverage analysis to the test suite using RCov.
9
+
10
+ * r1690, todd, 2007-09-07 15:23:11
11
+ * # 447, Add support.rb to manifest
12
+
13
+ * r1688, todd, 2007-09-07 13:57:39
14
+ * # 447, Use Active Support if available, but don't require it. Load our own
15
+ extensions if it's not present. This keeps us from overloading ActiveSupport if
16
+ a user's already using it.
17
+
18
+ * r1687, todd, 2007-09-07 11:36:43
19
+ * # 447, Removed dependency on activesupport
20
+
21
+ * r1676, konstantin, 2007-09-06 01:27:09
22
+ * paid AMIs, small fix
23
+
24
+ * r1667, konstantin, 2007-09-05 12:58:10
25
+ * # 427, paid AMI support for ec2_instances
26
+
27
+ * r1658, konstantin, 2007-09-05 01:02:25
28
+ * params improvements for ec2.describe_xxx, now ones can use a String as well as an Array.
29
+
30
+ * r1653, konstantin, 2007-09-04 12:31:19
31
+ * libxml and paid AMI support added
32
+
33
+ * r1581, tve, 2007-08-24 16:21:45
34
+ * Improved RightAws documentation
35
+
36
+ == 1.3.0 2007-09-26
37
+
38
+ * r1754, todd, 2007-09-19 13:48:34
39
+ * # 487, # 488, Consolidate a lot of code that was repeated in three places.
40
+ Fix error handling path when using streaming GET interfaces with S3.
41
+ Also add a stub for RightHttpConnection which allows more control over the
42
+ unit tests. Expand the unit tests and coverage tests.
43
+
44
+ * r1755, todd, 2007-09-19 14:29:19
45
+ * # 487, RDoc fixes after code consolidation
46
+
47
+ * r1866, konstantin, 2007-10-05 06:17:36
48
+ * # 220, close connection on HTTP 5xx/4xx errors
49
+
50
+ == 1.4.0 2007-10-10
51
+
52
+ * r1868, konstantin, 2007-10-05 06:38:37
53
+ * # 220, inst_type branch merge into 1.3.0 release
54
+
55
+ * r1869, konstantin, 2007-10-05 07:32:34
56
+ * right_http_connection 1.1.1 requirements fixed
57
+
58
+ * r1879, konstantin, 2007-10-07 02:11:24
59
+ * # 524, blocks added to ec2_describe_xxx to support aws_cache
60
+
61
+ * r1924, konstantin, 2007-10-12 11:35:06
62
+ * # 536, user_data bug fix
63
+
64
+ * r1929, tve, 2007-10-15 00:00:11
65
+ * Fix libxml/rexml selection bug
66
+
67
+ * r1938, konstantin, 2007-10-16 10:53:56
68
+ * instance type support is set to default
69
+
70
+ == 1.4.3 2007-10-25
71
+
72
+ * r1983, konstantin, 2007-10-25 22:33:00 +0400
73
+ * Fixed ActiveSupport requirement bug (thanks to Toby)
74
+ * Fixed HttpConnection logging to stdout bug (thanks to Toby)
75
+
76
+ == 1.4.4
77
+
78
+ * r1999, tve, 2007-11-01 00:07:00 -0700
79
+ * Fixed escaping issue affecting key names in S3 gem
80
+ * Fixed duplicate marker in S3 incremental bucket listing
81
+
82
+ * r2001, konstantin, 2007-11-01 12:03:13 +0300
83
+ * Fixed multiple permissions assignment on Grantee#grant/revoke
84
+ * Fixed new grantee permissions set ingnore (Grantee#apply)
85
+ * S3::Grantee#exists? method added
86
+
87
+ * r2109, konstantin, 2007-11-12 21:49:36 +0300
88
+ * RightAwsBaseInterface: caching implemented.
89
+ (The Ec2 functions are being cached: describe_images, describe_instances,
90
+ describe_security_groups and describe_key_pairs)
91
+
92
+ == 1.4.5 - 1.4.6
93
+ * r 2619, konstantin, 01-17-08 16:18:36 +0300
94
+ * S3 Location constraints support added.
95
+ * Fixed bug with trailing '/' in the bucket name for 'EU' located buckets
96
+ * Added: S3Interface#bucket_location, S3::Bucket#location
97
+
98
+ == 1.4.7
99
+ * r 2622, konstantin, 01-18-08 13:52:20 +0300
100
+ * Virtual domains doc added
101
+ * S3 Query API fixed to support virtual domains.
102
+
103
+ == 1.4.8
104
+ * r 2650, konstantin, 01-24-08 11:12:00 +0300
105
+ * net_fix.rb moved to right_http_connection
106
+
107
+ == 1.5.0
108
+ * r 2688, konstantin, 02-30-08 15:42:00 +0300
109
+ * SDB support added.
110
+ * RightAws::S3::bucket and RightAws::S3::Bucket.create methods behaviour
111
+ changed: param +create+ is set to +false+ by default.
112
+
113
+ == 1.6.0
114
+
115
+ * r2780, todd, 2008-02-11 11:41:07 -0800 (Mon, 11 Feb 2008), 4 lines
116
+ * Some doc updates & tweaks: we now support ultra-large PUTs to S3, small SDB
117
+ cleanups, add SDB to the list of interfaces in RightAws, update some copyrights,
118
+ warn about loading attachment_fu AFTER right_aws (big no-no).
119
+
120
+ * r2784, todd, 2008-02-11 13:46:47 -0800 (Mon, 11 Feb 2008), 2 lines
121
+ * One final clarification: you may get a Net::HTTP bad monkey patch exception
122
+
123
+ * r2880, todd, 2008-02-25 18:06:22 -0800 (Mon, 25 Feb 2008), 2 lines
124
+ * Add SQS 'Gen 2' interface implementation
125
+
126
+ * r2913, todd, 2008-02-29 16:57:07 -0800 (Fri, 29 Feb 2008), 3 lines
127
+ * SqsGen2 (object interface), unit tests for both interfaces, documentation updates.
128
+
129
+ * r2922, todd, 2008-03-03 15:26:42 -0800 (Mon, 03 Mar 2008), 2 lines
130
+ * couple of documentation tweaks in prep for 1.6.0
131
+
132
+ == 1.6.1
133
+
134
+ * r2963, todd, 2008-03-06 19:10:23 -0800 (Thu, 06 Mar 2008), 3 lines
135
+ * (#950) Many minor fixes in incrementally_list_bucket to prevent a death loop
136
+ in certain rare conditions
137
+
138
+ == 1.7.0
139
+
140
+ * r3051, konstantin, 2008-03-14 21:26:12 +0300 (Fri, 14 Mar 2008), 1 line
141
+ * #897, ActiveSdb alpha release
142
+
143
+ == 1.7.1
144
+
145
+ Do not autoload right_sdb with the rest of the modules; it requires uuidtools.
146
+ We want the user to explicly request ActiveSdb, at least as long as it is
147
+ alpha/beta.
148
+
149
+ Fix escaping problem in SqsGen2Interface: POST bodies did not properly escape the '&' character
150
+
151
+ == 1.7.2
152
+
153
+ Release Notes:
154
+
155
+ RightAws includes some new features, including:
156
+ - Support in RightAws::S3 and RightAws::S3Interface for S3 key copy, move, and rename
157
+ - Support for signature version 0 request authentication to EC2, SQS, and SDB
158
+ - Enhanced S3 object meta-header read and update
159
+ - Interoperability with clouds running Eucalyptus (http://eucalyptus.cs.ucsb.edu)
160
+ [ Contributed by the Eucalyptus group ]
161
+ - Support for c1.medium and c1.xlarge instance types
162
+
163
+ Bug fixes include:
164
+ - Corrected the failure, under certain conditions, of retries of streaming PUTs to S3.
165
+ We now reset the seek pointer of the streaming IO object to its initial position.
166
+ - Removal of an accidental dependency on ActiveSupport in RightAws::S3Interface.get_link().
167
+ - Monkey-patch of the Ruby File class on Windows platforms to correct a problem in lstat.
168
+ The lstat bug was causing failure of very large file uploads on Windows [ Contributed by Benjamin Allfree ]
169
+ - Fixed parsing of the ETag field for S3 objects
170
+
171
+ == 1.7.3
172
+
173
+ Release Notes:
174
+
175
+ - Removed the 1.7.2 monkey-patch of the Ruby File class on Windows. This patch broke Rails 2.0.
176
+ The patch is now included in the README for anyone to use at their own risk.
177
+
178
+ == 1.8.0
179
+
180
+ Release Notes:
181
+
182
+ This release adds major new features to RightAws to support Amazon's new
183
+ Elastic Block Store (EBS). Via the RightAws::Ec2 module, users can create
184
+ and delete EBS volumes, attach and detach them from instances, snapshot
185
+ volumes, and list the available volumes and snapshots.
186
+
187
+ Bug fixes include correction of RightAws::S3 copy's failure to url-encode
188
+ the source key.
189
+
190
+ == 1.8.1
191
+
192
+ Release Notes:
193
+
194
+ RightScale::SdbInterface & ::ActiveSdb have several enhancements, including:
195
+ - RightAws::SdbInterface#last_query_expression added for debug puposes
196
+ - RightAws::ActiveSdb::Base#query :order and :auto_load options added to support query
197
+ result sorting and attributes auto loading
198
+ - RightAws::ActiveSdb::Base#find_all_by_ and find_by_ helpers improved to support
199
+ :order, :auto_load, :limit and :next_token options
200
+ - RightAws::SdbInterface#delete_attributes bug fixed
201
+ - SdbInterface allows specification of a string value to use for
202
+ representing Ruby nil in SDB.
203
+ - Sdb tests fixed and improved
204
+
205
+ The ::S3 interface now has support for S3's server access logging.
206
+ Amazon considers server access logging to be a beta or provisional feature.
207
+
208
+ === 1.9.0
209
+
210
+ Release Notes:
211
+ - RightAws::Ec2 now supports Windows instances. Added:
212
+ - Ec2::get_initial_password
213
+ - Ec2::bundle_instance
214
+ - Ec2::describe_bundle_tasks
215
+ - Ec::cancel_bundle_task
216
+
217
+ - Full Amazon CloudFront support added with RightAws::AcfInterface
218
+ - Bug fixes to S3Interface::store_object_and_verify and
219
+ S3Interface::retrieve_object_and_verify (thanks to numerous user reports)
220
+ - Updates to caching for Ec2::describe_images_by methods
221
+ - Ec2 now has Ec2::last_request_id
222
+
223
+ === 1.10.0
224
+
225
+ Release Notes:
226
+ - AwsBase: signature v2 support added
227
+ - Ec2: describe_availability_zones improved to support regions
228
+ - CloudFront: docs fixes
229
+ - SDB: added: SQL-like query, select and query_with_attributes support
230
+ - SDB: fixed no method error when searching for id that doesn't exist
231
+
232
+ === 1.11.0
233
+
234
+ Release Notes:
235
+ - Full Amazon RDS instances support added with RightAws::RdsInterface
236
+ - Boot from EBS support added
237
+ - VPC support added
238
+ - Latest EC2 API 2009-10-31 support added
239
+ - Some of bugs fixed
240
+
241
+ === 2.0.0
242
+
243
+ Release Notes:
244
+ - Added:
245
+ - Ruby 1.9 support
246
+ - Ec2:
247
+ - SpotInstances support
248
+ - m2.xlarge instances
249
+ - GetPasswordData API call (see get_password_data_v2)
250
+ - SecurityGroups support for Eucalyptus clouds
251
+ - EBS:
252
+ - :delete_on_termination field for volumes
253
+ - SimpleDB:
254
+ - BatchPutAttributes support
255
+ - ActiveSDB:
256
+ - Dynamic attribute accessors
257
+ - "Columns" support
258
+ - Simple Type Casting support
259
+ - ELB:
260
+ - API '2009-11-25' support (stickiness policies)
261
+ - ACF:
262
+ - API '2010-03-01' support (origin access policy and streaming distributions)
263
+ - Bunch of small issues were fixed
264
+ - Time objects were replaced by Strings (as Amazon returns them) to make the gem more consistent:
265
+ - :last_modified_time in:
266
+ RightAws::AcfInterface#incrementally_list_distributions,
267
+ RightAws::AcfInterface#create_distribution_by_config,
268
+ RightAws::AcfInterface#get_distribution,
269
+ RightAws::AcfInterface#get_distribution_config
270
+ - :timestamp in:
271
+ RightAws::AcwInterface#get_metric_statistics
272
+ - :aws_created_at in:
273
+ RightAws::Ec2#create_volume,
274
+ RightAws::Ec2#describe_volumes
275
+ - :aws_attached_at in:
276
+ RightAws::Ec2#attach_volume,
277
+ RightAws::Ec2#detach_volume,
278
+ RightAws::Ec2#describe_volumes
279
+ - :aws_started_at in:
280
+ RightAws::Ec2#describe_snapshots,
281
+ RightAws::Ec2#create_snapshot,
282
+ RightAws::Ec2#try_create_snapshot
283
+ - :created_time in:
284
+ RightAws::ElbInterface#describe_load_balancers
285
+
286
+ === 2.1.0
287
+ Release Notes:
288
+ - Added:
289
+ - Route 53: API '2010-10-01'
290
+ - ACF: API '2010-11-01'
291
+ - EC2:
292
+ - API '2010-08-31'
293
+ - Port based group permissions support
294
+ - HPC Support
295
+ - Tags Suport
296
+ - ClientToken support added on instance launch
297
+ - RDS: API "2010-07-28"
298
+ - ELB: API '2010-07-01' (SSL support)
299
+ - IAM: API '2010-05-08' (AWS Identity and Access Management interface)
300
+ - 301 Redirect support added
301
+ - Removed:
302
+ - ActiveSupport dependency
303
+ - SDB: uuid gem dependency
304
+ - this gem requires right_http_connection 0bc3343232133bdb38c237d8285525d74495d3f5 or later
305
+ - "Raise On Timeout On Action" feature added to avoid duplicate resources creation if a timeout error occures and a retry is performed
306
+
307
+ === 3.0.0
308
+ Release Notes:
309
+ - Fixed/Added:
310
+ - ClientToken (launch_instances, run_instances) is not used for Eucalyptus clouds
311
+ - VPC2, stage1. Next methods were updated:
312
+ - associate_address, modify_security_group, create_security_group, create_vpc, delete_security_group,
313
+ describe_addresses, describe_images, describe_instance_attribute, describe_regions, describe_reserved_instances_offerings,
314
+ describe_security_groups, describe_snapshots, describe_spot_instance_requests, describe_spot_price_history,
315
+ describe_vpcs, disassociate_address, modify_image_attribute, modify_snapshot_attribute, release_address,
316
+ request_spot_instances, stop_instances
317
+ - EC2: ClientToken (launch_instances, run_instances) is not used for Eucalyptus clouds
318
+ - RDS:
319
+ - RDS: API 2011-04-01
320
+ - Make :instance_class param more consistent: :db_instance_class --> :instance_class
321
+ - Issue 53: regression in latest master version of right_rds_interface
322
+ - Issue 73: Can't get list of instances with RdsInterface
323
+ - EBS: Issue 54: regression in right_ec2_ebs.rb
324
+ - Add the port number with server name in the v2 signature string if it is not the RFC standard number (author: unakatsuo).
325
+ - EMR (Elastic Map Reduce) support
326
+ - SNS (Simple Notification Service) support
327
+ - SDB: ConsistentRead support
328
+ - bunch of micro bugs
329
+
@@ -0,0 +1,61 @@
1
+ History.txt
2
+ Manifest.txt
3
+ README.txt
4
+ Rakefile
5
+ lib/awsbase/support.rb
6
+ lib/awsbase/benchmark_fix.rb
7
+ lib/awsbase/right_awsbase.rb
8
+ lib/ec2/right_ec2.rb
9
+ lib/ec2/right_ec2_images.rb
10
+ lib/ec2/right_ec2_instances.rb
11
+ lib/ec2/right_ec2_security_groups.rb
12
+ lib/ec2/right_ec2_spot_instances.rb
13
+ lib/ec2/right_ec2_ebs.rb
14
+ lib/ec2/right_ec2_reserved_instances.rb
15
+ lib/ec2/right_ec2_vpc.rb
16
+ lib/ec2/right_ec2_vpc2.rb
17
+ lib/ec2/right_ec2_monitoring.rb
18
+ lib/ec2/right_ec2_placement_groups.rb
19
+ lib/ec2/right_ec2_windows_mobility.rb
20
+ lib/ec2/right_ec2_tags.rb
21
+ lib/right_aws.rb
22
+ lib/s3/right_s3.rb
23
+ lib/acw/right_acw_interface.rb
24
+ lib/elb/right_elb_interface.rb
25
+ lib/as/right_as_interface.rb
26
+ lib/s3/right_s3_interface.rb
27
+ lib/sdb/active_sdb.rb
28
+ lib/sdb/right_sdb_interface.rb
29
+ lib/sqs/right_sqs.rb
30
+ lib/sqs/right_sqs_gen2.rb
31
+ lib/sqs/right_sqs_gen2_interface.rb
32
+ lib/sqs/right_sqs_interface.rb
33
+ lib/acf/right_acf_interface.rb
34
+ lib/acf/right_acf_streaming_interface.rb
35
+ lib/acf/right_acf_origin_access_identities.rb
36
+ lib/acf/right_acf_invalidations.rb
37
+ lib/rds/right_rds_interface.rb
38
+ lib/iam/right_iam_interface.rb
39
+ lib/iam/right_iam_groups.rb
40
+ lib/iam/right_iam_users.rb
41
+ lib/iam/right_iam_access_keys.rb
42
+ lib/iam/right_iam_mfa_devices.rb
43
+ lib/route_53/right_route_53_interface.rb
44
+ test/ec2/test_helper.rb
45
+ test/ec2/test_right_ec2.rb
46
+ test/http_connection.rb
47
+ test/s3/test_helper.rb
48
+ test/s3/test_right_s3.rb
49
+ test/s3/test_right_s3_stubbed.rb
50
+ test/sdb/test_active_sdb.rb
51
+ test/sdb/test_helper.rb
52
+ test/sdb/test_right_sdb.rb
53
+ test/sqs/test_helper.rb
54
+ test/sqs/test_right_sqs.rb
55
+ test/sqs/test_right_sqs_gen2.rb
56
+ test/test_credentials.rb
57
+ test/ts_right_aws.rb
58
+ test/acf/test_helper.rb
59
+ test/acf/test_right_acf.rb
60
+ test/rds/test_helper.rb
61
+ test/rds/test_right_rds.rb
@@ -0,0 +1,163 @@
1
+ = RightScale Amazon Web Services Ruby Gems
2
+
3
+ Published by RightScale, Inc. under the MIT License.
4
+ For information about RightScale, see http://www.rightscale.com
5
+
6
+ == DESCRIPTION:
7
+
8
+ The RightScale AWS gems have been designed to provide a robust, fast, and secure interface to Amazon EC2, EBS, S3, SQS, SDB, and CloudFront.
9
+ These gems have been used in production by RightScale since late 2006 and are being maintained to track enhancements made by Amazon.
10
+ The RightScale AWS gems comprise:
11
+
12
+ - RightAws::Ec2 -- interface to Amazon EC2 (Elastic Compute Cloud), VPC (Virtual Private Cloud) and the associated EBS (Elastic Block Store)
13
+ - RightAws::S3 and RightAws::S3Interface -- interface to Amazon S3 (Simple Storage Service)
14
+ - RightAws::Sqs and RightAws::SqsInterface -- interface to first-generation Amazon SQS (Simple Queue Service)
15
+ - RightAws::SqsGen2 and RightAws::SqsGen2Interface -- interface to second-generation Amazon SQS (Simple Queue Service)
16
+ - RightAws::SdbInterface and RightAws::ActiveSdb -- interface to Amazon SDB (SimpleDB)
17
+ - RightAws::AcfInterface -- interface to Amazon CloudFront, a content distribution service
18
+ - RightAws::AsInterface -- interface to Amazon Auto Scaling
19
+ - RightAws::AcwInterface -- interface to Amazon Cloud Watch
20
+ - RightAws::ElbInterface -- interface to Amazon Elastic Load Balancer
21
+ - RightAws::RdsInterface -- interface to Amazon RDS instances
22
+
23
+ == FEATURES:
24
+
25
+ - Full programmmatic access to EC2, EBS, S3, SQS, SDB, CloudFront, AS, ACW, ELB and RDS.
26
+ - Complete error handling: all operations check for errors and report complete
27
+ error information by raising an AwsError.
28
+ - Persistent HTTP connections with robust network-level retry layer using
29
+ RightHttpConnection). This includes socket timeouts and retries.
30
+ - Robust HTTP-level retry layer. Certain (user-adjustable) HTTP errors returned
31
+ by Amazon's services are classified as temporary errors.
32
+ These errors are automaticallly retried using exponentially increasing intervals.
33
+ The number of retries is user-configurable.
34
+ - Fast REXML-based parsing of responses (as fast as a pure Ruby solution allows).
35
+ - Uses libxml (if available) for faster response parsing.
36
+ - Support for large S3 list operations. Buckets and key subfolders containing
37
+ many (> 1000) keys are listed in entirety. Operations based on list (like
38
+ bucket clear) work on arbitrary numbers of keys.
39
+ - Support for streaming GETs from S3, and streaming PUTs to S3 if the data source is a file.
40
+ - Support for single-threaded usage, multithreaded usage, as well as usage with multiple
41
+ AWS accounts.
42
+ - Support for both first- and second-generation SQS (API versions 2007-05-01
43
+ and 2008-01-01). These versions of SQS are not compatible.
44
+ - Support for signature versions 0 and 1 on SQS, SDB, and EC2.
45
+ - Interoperability with any cloud running Eucalyptus (http://eucalyptus.cs.ucsb.edu)
46
+ - Test suite (requires AWS account to do "live" testing).
47
+
48
+ == THREADING:
49
+
50
+ All RightScale AWS interfaces offer two threading options:
51
+ 1. Use a single persistent HTTP connection per process.
52
+ 2. Use a persistent HTTP connection per Ruby thread.
53
+
54
+ Either way, it doesn't matter how many (for example) RightAws::S3 objects you create,
55
+ they all use the same per-program or per-thread
56
+ connection. The purpose of sharing the connection is to keep a single
57
+ persistent HTTP connection open to avoid paying connection
58
+ overhead on every request. However, if you have multiple concurrent
59
+ threads, you may want or need an HTTP connection per thread to enable
60
+ concurrent requests to AWS. The way this plays out in practice is:
61
+ 1. If you have a non-multithreaded Ruby program, use the non-multithreaded setting.
62
+ 2. If you have a multi-threaded Ruby program, use the multithreaded setting to enable
63
+ concurrent requests to S3 (or SQS, or SDB, or EC2).
64
+ 3. For running under Mongrel/Rails, use the non-multithreaded setting even though
65
+ mongrel is multithreaded. This is because only one Rails handler is invoked at
66
+ time (i.e. it acts like a single-threaded program)
67
+
68
+ Note that due to limitations in the I/O of the Ruby interpreter you
69
+ may not get the degree of parallelism you may expect with the multi-threaded setting.
70
+
71
+ == GETTING STARTED:
72
+
73
+ * For EC2 read RightAws::Ec2 and consult the Amazon EC2 API documentation at
74
+ http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=87
75
+ * For S3 read RightAws::S3 and consult the Amazon S3 API documentation at
76
+ http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=48
77
+ * For first generation SQS read RightAws::Sqs and consult the Amazon SQS API documentation at
78
+ http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=31
79
+ * For second generation SQS read RightAws::SqsGen2, RightAws::SqsGen2Interface, and consult the Amazon SQS API documentation at
80
+ http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1214&categoryID=31
81
+
82
+ Amazon's Migration Guide for moving from first to second generation SQS is
83
+ avalable at:
84
+ http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1148
85
+ * For SDB read RightAws::SdbInterface, RightAws::ActiveSdb, and consult the Amazon SDB API documentation at
86
+ http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=141
87
+ * For CloudFront (ACF) read RightAws::AcfInterface and consult the Amazon CloudFront API documentation at
88
+ http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=213
89
+
90
+ == KNOWN ISSUES:
91
+
92
+ - 7/08: A user has reported that uploads of large files on Windows may be broken on some
93
+ Win platforms due to a buggy File.lstat.size. Use the following monkey-patch at your own risk,
94
+ as it has been proven to break Rails 2.0 on Windows:
95
+
96
+ require 'win32/file'
97
+ class File
98
+ def lstat
99
+ self.stat
100
+ end
101
+ end
102
+
103
+
104
+ - Attempting to use the Gibberish plugin (used by the Beast forum app)
105
+ will break right_aws as well as lots of other code. Gibberish
106
+ changes the semantics of core Ruby (specifically, the String class) and thus presents a reliability
107
+ problem for most Ruby programs.
108
+
109
+ - 2/11/08: If you use RightAws in conjunction with attachment_fu, the
110
+ right_aws gem must be included (using the require statement) AFTER
111
+ attachment_fu. If right_aws is loaded before attachment_fu, you'll
112
+ encounter errors similar to:
113
+
114
+ s3.amazonaws.com temporarily unavailable: (wrong number of arguments (5 for 4))
115
+
116
+ or
117
+
118
+ 'incompatible Net::HTTP monkey-patch'
119
+
120
+ This is due to a conflict between the right_http_connection gem and another
121
+ gem required by attachment_fu.
122
+
123
+ - 8/07: Amazon has changed the semantics of the SQS service. A
124
+ new queue may not be created within 60 seconds of the destruction of any
125
+ older queue with the same name. Certain methods of RightAws::Sqs and
126
+ RightAws::SqsInterface will fail with the message:
127
+ "AWS.SimpleQueueService.QueueDeletedRecently: You must wait 60 seconds after deleting a queue before you can create another with the same name."
128
+
129
+ == REQUIREMENTS:
130
+
131
+ RightAws requires REXML and the right_http_connection gem.
132
+ If libxml and its Ruby bindings (distributed in the libxml-ruby gem) are
133
+ present, RightAws can be configured to use them:
134
+ RightAws::RightAWSParser.xml_lib = 'libxml'
135
+ Any error with the libxml installation will result in RightAws failing-safe to
136
+ REXML parsing.
137
+
138
+ == INSTALL:
139
+
140
+ sudo gem install right_aws
141
+
142
+ == LICENSE:
143
+
144
+ Copyright (c) 2007-2009 RightScale, Inc.
145
+
146
+ Permission is hereby granted, free of charge, to any person obtaining
147
+ a copy of this software and associated documentation files (the
148
+ 'Software'), to deal in the Software without restriction, including
149
+ without limitation the rights to use, copy, modify, merge, publish,
150
+ distribute, sublicense, and/or sell copies of the Software, and to
151
+ permit persons to whom the Software is furnished to do so, subject to
152
+ the following conditions:
153
+
154
+ The above copyright notice and this permission notice shall be
155
+ included in all copies or substantial portions of the Software.
156
+
157
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
158
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
159
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
160
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
161
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
162
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
163
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.