aws 1.10.1

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt ADDED
@@ -0,0 +1,246 @@
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
+
227
+ The big new features are SDB's SQL-like query and query_with_attributes
228
+ support as well as signature v2 support for all services. There are also
229
+ numerous bug fixes, many of them reported and patched by users and
230
+ customers.
231
+
232
+ - AwsBase: signature v2 support added
233
+ - AwsBase: fix the regex matching for xmlpath which didn't work in Ruby
234
+ 1.8.7 (thanks to a customer report)
235
+ - Ec2: describe_availability_zones improved to support regions
236
+ - Ec2: Disabled retries when EC2 returns "ServiceUnavailable: Request limit
237
+ exceeded"
238
+ - Ec2: Use POST for large queries; this avoids truncation of large user data
239
+ when launching instances (thanks to Bob for the report)
240
+ - CloudFront: docs fixes
241
+ - SDB: added: SQL-like query, select and query_with_attributes support
242
+ - SDB: fixed no method error when searching for id that doesn't exist
243
+ (thanks to multiple users for reporting this)
244
+ - S3: Fixed overzealous URL-encoding when generating URLs for S3 keys
245
+ (thanks to a bug report on the RubyForge forum)
246
+
data/Manifest.txt ADDED
@@ -0,0 +1,19 @@
1
+ History.txt
2
+ Manifest.txt
3
+ README.txt
4
+ Rakefile
5
+ lib/awsbase/benchmark_fix.rb
6
+ lib/awsbase/right_awsbase.rb
7
+ lib/awsbase/support.rb
8
+ lib/ec2/right_ec2.rb
9
+ lib/right_aws.rb
10
+ lib/s3/right_s3.rb
11
+ lib/s3/right_s3_interface.rb
12
+ lib/sdb/active_sdb.rb
13
+ lib/sdb/right_sdb_interface.rb
14
+ lib/sqs/right_sqs.rb
15
+ lib/sqs/right_sqs_gen2.rb
16
+ lib/sqs/right_sqs_gen2_interface.rb
17
+ lib/sqs/right_sqs_interface.rb
18
+ lib/acf/right_acf_interface.rb
19
+
data/README.txt ADDED
@@ -0,0 +1,168 @@
1
+ = RightScale Amazon Web Services Ruby Gems
2
+
3
+ http://code.google.com/p/simple-record/
4
+
5
+ Published by RightScale, Inc. under the MIT License.
6
+ For information about RightScale, see http://www.rightscale.com
7
+
8
+ == DESCRIPTION:
9
+
10
+ The RightScale AWS gems have been designed to provide a robust, fast, and secure interface to Amazon EC2, EBS, S3, SQS, SDB, and CloudFront.
11
+ These gems have been used in production by RightScale since late 2006 and are being maintained to track enhancements made by Amazon.
12
+ The RightScale AWS gems comprise:
13
+
14
+ - RightAws::Ec2 -- interface to Amazon EC2 (Elastic Compute Cloud) and the
15
+ associated EBS (Elastic Block Store)
16
+ - RightAws::S3 and RightAws::S3Interface -- interface to Amazon S3 (Simple Storage Service)
17
+ - RightAws::Sqs and RightAws::SqsInterface -- interface to first-generation Amazon SQS (Simple Queue Service) (API version 2007-05-01)
18
+ - RightAws::SqsGen2 and RightAws::SqsGen2Interface -- interface to second-generation Amazon SQS (Simple Queue Service) (API version 2008-01-01)
19
+ - RightAws::SdbInterface and RightAws::ActiveSdb -- interface to Amazon SDB (SimpleDB)
20
+ - RightAws::AcfInterface -- interface to Amazon CloudFront, a content distribution service
21
+
22
+ == FEATURES:
23
+
24
+ - Full programmmatic access to EC2, EBS, S3, SQS, SDB, and CloudFront.
25
+ - Complete error handling: all operations check for errors and report complete
26
+ error information by raising an AwsError.
27
+ - Persistent HTTP connections with robust network-level retry layer using
28
+ RightHttpConnection). This includes socket timeouts and retries.
29
+ - Robust HTTP-level retry layer. Certain (user-adjustable) HTTP errors returned
30
+ by Amazon's services are classified as temporary errors.
31
+ These errors are automaticallly retried using exponentially increasing intervals.
32
+ The number of retries is user-configurable.
33
+ - Fast REXML-based parsing of responses (as fast as a pure Ruby solution allows).
34
+ - Uses libxml (if available) for faster response parsing.
35
+ - Support for large S3 list operations. Buckets and key subfolders containing
36
+ many (> 1000) keys are listed in entirety. Operations based on list (like
37
+ bucket clear) work on arbitrary numbers of keys.
38
+ - Support for streaming GETs from S3, and streaming PUTs to S3 if the data source is a file.
39
+ - Support for single-threaded usage, multithreaded usage, as well as usage with multiple
40
+ AWS accounts.
41
+ - Support for both first- and second-generation SQS (API versions 2007-05-01
42
+ and 2008-01-01). These versions of SQS are not compatible.
43
+ - Support for signature versions 0, 1 and 2 on all services.
44
+ - Interoperability with any cloud running Eucalyptus (http://eucalyptus.cs.ucsb.edu)
45
+ - Test suite (requires AWS account to do "live" testing).
46
+
47
+ == THREADING:
48
+
49
+ All RightScale AWS interfaces offer two threading options:
50
+ 1. Use a single persistent HTTP connection per process.
51
+ 2. Use a persistent HTTP connection per Ruby thread.
52
+
53
+ Either way, it doesn't matter how many (for example) RightAws::S3 objects you create,
54
+ they all use the same per-program or per-thread
55
+ connection. The purpose of sharing the connection is to keep a single
56
+ persistent HTTP connection open to avoid paying connection
57
+ overhead on every request. However, if you have multiple concurrent
58
+ threads, you may want or need an HTTP connection per thread to enable
59
+ concurrent requests to AWS. The way this plays out in practice is:
60
+ 1. If you have a non-multithreaded Ruby program, use the non-multithreaded setting.
61
+ 2. If you have a multi-threaded Ruby program, use the multithreaded setting to enable
62
+ concurrent requests to S3 (or SQS, or SDB, or EC2).
63
+ 3. For running under Mongrel/Rails, use the non-multithreaded setting even though
64
+ mongrel is multithreaded. This is because only one Rails handler is invoked at
65
+ time (i.e. it acts like a single-threaded program)
66
+
67
+ Note that due to limitations in the I/O of the Ruby interpreter you
68
+ may not get the degree of parallelism you may expect with the multi-threaded setting.
69
+
70
+ By default, EC2/S3/SQS/SDB/ACF interface instances are created in single-threaded mode. Set
71
+ "params[:multi_thread]" to "true" in the initialization arguments to use
72
+ multithreaded mode.
73
+
74
+ == GETTING STARTED:
75
+
76
+ * For EC2 read RightAws::Ec2 and consult the Amazon EC2 API documentation at
77
+ http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=87
78
+ * For S3 read RightAws::S3 and consult the Amazon S3 API documentation at
79
+ http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=48
80
+ * For first generation SQS read RightAws::Sqs and consult the Amazon SQS API documentation at
81
+ http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=31
82
+ * For second generation SQS read RightAws::SqsGen2, RightAws::SqsGen2Interface, and consult the Amazon SQS API documentation at
83
+ http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1214&categoryID=31
84
+
85
+ Amazon's Migration Guide for moving from first to second generation SQS is
86
+ avalable at:
87
+ http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1148
88
+ * For SDB read RightAws::SdbInterface, RightAws::ActiveSdb, and consult the Amazon SDB API documentation at
89
+ http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=141
90
+ * For CloudFront (ACF) read RightAws::AcfInterface and consult the Amazon CloudFront API documentation at
91
+ http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=213
92
+
93
+ == KNOWN ISSUES:
94
+
95
+ - 7/08: A user has reported that uploads of large files on Windows may be broken on some
96
+ Win platforms due to a buggy File.lstat.size. Use the following monkey-patch at your own risk,
97
+ as it has been proven to break Rails 2.0 on Windows:
98
+
99
+ require 'win32/file'
100
+ class File
101
+ def lstat
102
+ self.stat
103
+ end
104
+ end
105
+
106
+
107
+ - Attempting to use the Gibberish plugin (used by the Beast forum app)
108
+ will break right_aws as well as lots of other code. Gibberish
109
+ changes the semantics of core Ruby (specifically, the String class) and thus presents a reliability
110
+ problem for most Ruby programs.
111
+
112
+ - 2/11/08: If you use RightAws in conjunction with attachment_fu, the
113
+ right_aws gem must be included (using the require statement) AFTER
114
+ attachment_fu. If right_aws is loaded before attachment_fu, you'll
115
+ encounter errors similar to:
116
+
117
+ s3.amazonaws.com temporarily unavailable: (wrong number of arguments (5 for 4))
118
+
119
+ or
120
+
121
+ 'incompatible Net::HTTP monkey-patch'
122
+
123
+ This is due to a conflict between the right_http_connection gem and another
124
+ gem required by attachment_fu. It may be possible to require right_aws (and
125
+ thus right_http_connection) in the .after_initialize method of the config object in
126
+ environment.rb (check the docs for Rails::Configuration.after_initialize).
127
+
128
+ - 8/07: Amazon has changed the semantics of the SQS service. A
129
+ new queue may not be created within 60 seconds of the destruction of any
130
+ older queue with the same name. Certain methods of RightAws::Sqs and
131
+ RightAws::SqsInterface will fail with the message:
132
+ "AWS.SimpleQueueService.QueueDeletedRecently: You must wait 60 seconds after deleting a queue before you can create another with the same name."
133
+
134
+ == REQUIREMENTS:
135
+
136
+ RightAws requires REXML and the right_http_connection gem.
137
+ If libxml and its Ruby bindings (distributed in the libxml-ruby gem) are
138
+ present, RightAws can be configured to use them:
139
+ RightAws::RightAWSParser.xml_lib = 'libxml'
140
+ Any error with the libxml installation will result in RightAws failing-safe to
141
+ REXML parsing.
142
+
143
+ == INSTALL:
144
+
145
+ sudo gem install right_aws
146
+
147
+ == LICENSE:
148
+
149
+ Copyright (c) 2007-2009 RightScale, Inc.
150
+
151
+ Permission is hereby granted, free of charge, to any person obtaining
152
+ a copy of this software and associated documentation files (the
153
+ 'Software'), to deal in the Software without restriction, including
154
+ without limitation the rights to use, copy, modify, merge, publish,
155
+ distribute, sublicense, and/or sell copies of the Software, and to
156
+ permit persons to whom the Software is furnished to do so, subject to
157
+ the following conditions:
158
+
159
+ The above copyright notice and this permission notice shall be
160
+ included in all copies or substantial portions of the Software.
161
+
162
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
163
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
164
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
165
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
166
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
167
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
168
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Rakefile ADDED
@@ -0,0 +1,17 @@
1
+ # -*- ruby -*-
2
+
3
+ require 'rubygems'
4
+ require 'hoe'
5
+ require 'lib/right_aws.rb'
6
+
7
+
8
+ Hoe.new('aws', RightAws::VERSION::STRING) do |p|
9
+ p.rubyforge_name = 'spacegems'
10
+ p.developer('Travis Reeder', 'travis@crankapps.com')
11
+ # p.author = 'RightScale, Inc.'
12
+ # p.email = 'rubygems@rightscale.com'
13
+
14
+ end
15
+
16
+
17
+ # vim: syntax=Ruby