amazon-ec2 0.2.6 → 0.2.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,6 @@
1
+ === 0.2.7 2008-02-17
2
+ * Add support for HTTP Proxy when :proxy_server argument is passed. Based on patch from Mathias Dalheimer.
3
+
1
4
  === 0.2.6 2007-10-16
2
5
  * Updated to support EC2 API version 2007-08-29 released on 2007-10-16
3
6
  * Supports new instances type feature. Specify an instance type to launch
data/lib/EC2.rb CHANGED
@@ -77,20 +77,23 @@ module EC2
77
77
  #
78
78
  # :use_ssl => Boolean (default : true)
79
79
  # :server => String (default : 'ec2.amazonaws.com')
80
+ # :proxy_server => String (default : nil)
80
81
  #
81
82
  class Base
82
83
 
83
- attr_reader :use_ssl, :server, :port
84
+ attr_reader :use_ssl, :server, :proxy_server, :port
84
85
 
85
86
  def initialize( options = {} )
86
87
 
87
88
  options = { :access_key_id => "",
88
89
  :secret_access_key => "",
89
90
  :use_ssl => true,
90
- :server => DEFAULT_HOST
91
+ :server => DEFAULT_HOST,
92
+ :proxy_server => nil
91
93
  }.merge(options)
92
94
 
93
95
  @server = options[:server]
96
+ @proxy_server = options[:proxy_server]
94
97
  @use_ssl = options[:use_ssl]
95
98
 
96
99
  raise ArgumentError, "No :access_key_id provided" if options[:access_key_id].nil? || options[:access_key_id].empty?
@@ -112,7 +115,15 @@ module EC2
112
115
 
113
116
  @access_key_id = options[:access_key_id]
114
117
  @secret_access_key = options[:secret_access_key]
115
- @http = Net::HTTP.new(options[:server], @port)
118
+
119
+ # Use proxy server if defined
120
+ # Based on patch by Mathias Dalheimer. 20070217
121
+ proxy = @proxy_server ? URI.parse(@proxy_server) : OpenStruct.new
122
+ @http = Net::HTTP::Proxy( proxy.host,
123
+ proxy.port,
124
+ proxy.user,
125
+ proxy.password).new(options[:server], @port)
126
+
116
127
  @http.use_ssl = @use_ssl
117
128
 
118
129
  # Don't verify the SSL certificates. Avoids SSL Cert warning in log on every GET.
@@ -12,7 +12,7 @@ module EC2 #:nodoc:
12
12
  module VERSION #:nodoc:
13
13
  MAJOR = 0
14
14
  MINOR = 2
15
- TINY = 6
15
+ TINY = 7
16
16
  STRING = [MAJOR, MINOR, TINY].join('.')
17
17
  end
18
18
  end
@@ -16,7 +16,7 @@ context "The EC2 Gem " do
16
16
  setup do
17
17
  @major = 0
18
18
  @minor = 2
19
- @tiny = 6
19
+ @tiny = 7
20
20
  @string = [@major, @minor, @tiny].join('.')
21
21
  end
22
22
 
@@ -33,7 +33,7 @@
33
33
  <h1>Amazon Web Services EC2 Ruby Gem</h1>
34
34
  <div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/amazon-ec2"; return false'>
35
35
  <p>Get Version</p>
36
- <a href="http://rubyforge.org/projects/amazon-ec2" class="numbers">0.2.6</a>
36
+ <a href="http://rubyforge.org/projects/amazon-ec2" class="numbers">0.2.7</a>
37
37
  </div>
38
38
  <h2>&#x2192; &#8216;amazon-ec2&#8217;</h2>
39
39
 
@@ -47,35 +47,27 @@
47
47
  <p>This &#8216;amazon-ec2&#8217; Ruby Gem is an interface library that can be used to interact with the Amazon <span class="caps">EC2</span> system and control server resources on demand from your Ruby scripts, or from Ruby on Rails applications.</p>
48
48
 
49
49
 
50
- <h2>Important! : Are you upgrading from an earlier release?</h2>
51
-
52
-
53
- <p>This latest release of the gem has undergone a pretty massive re-write. It is no longer compatible with code you may have written that made use of an older version of &#8216;amazon-ec2&#8217; (&lt; 0.2.0).</p>
54
-
55
-
56
- <p>Any other gems which depended on &#8216;amazon-ec2&#8217; &lt; 0.2.0 will also no longer work with the new release. The only project I am aware of that depended on the earlier version of &#8216;amazon-ec2&#8217; was &#8216;Capazon&#8217;. This project, which allows you to control <span class="caps">EC2</span> from your Capistrano recipies, has now been deprecated and is being reborn as &#8216;Capsize&#8217;. I rewrote the code for Capsize with the assistance of the original creator of Capazon; Jesse Newland. Feel free to check out <a href="http://capsize.rubyforge.org/">Capsize</a> to learn more about this exciting new release!</p>
57
-
58
-
59
- <p>While we apologize for not being able to maintain backward compatibility with the original &#8216;amazon-ec2&#8217; gem, there were just too many major enhancements that needed to be made and it just was&#8217;nt possible. I hope that the new robustness and new features in this new release make any transitional pain worthwhile! Of course the old versions are still out there on RubyForge, and you can still install them if you pass the version string into the gem install command. I just don&#8217;t recommend it unless you really have to.</p>
50
+ <h2>What&#8217;s new?</h2>
60
51
 
61
52
 
62
- <h2>What&#8217;s new?</h2>
53
+ <p>20070217 &#8211; This project&#8217;s source code now only available from our master Git repository at GitHub. The Subversion repository at Rubyforge will be cleared but we&#8217;ll still publish any new gem versions to Rubyforge so you can still easily install them. Unless you plan to work on the source code this should have no effect on you. Now you can browse, clone or fork from our Git repository at <a href="http://github.com/grempe/amazon-ec2">http://github.com/grempe/amazon-ec2</a>. Please let us know if you have patches you would like us to pull from your git repository.</p>
63
54
 
64
55
 
65
- <p>This release (&gt;= 0.2.0) represents a major re-write of this gem and contains contributions from several people who make use of this gem for their own applications. Trust us, its worth the pain of upgrading if you have been using an older version. Some of the major enhancements you will find are:</p>
56
+ <p>This 0.2.0 + series represents a major re-write of this gem and contains contributions from several people who make use of this gem for their own applications. Trust us, its worth the pain of upgrading if you have been using an older version. Some of the major enhancements you will find are:</p>
66
57
 
67
58
 
68
59
  <ul>
69
- <li>Updated <span class="caps">API</span> version in the query <span class="caps">API</span> request to 2007-03-01, and added all known method calls
70
- in this version of the <span class="caps">API</span> to the gem (including paid <span class="caps">AMI</span> support with product codes, reboot, viewing console output, <span class="caps">NAT</span> addressing
71
- and more!)</li>
60
+ <li>Updated <span class="caps">API</span> version in the query <span class="caps">API</span> request to 2007-08-29, and added all known method calls
61
+ in this version of the <span class="caps">API</span> to the gem (including the new instance types(small, medium, large)).
62
+ Previous releases have kept pace with changes such as the addition of paid <span class="caps">AMI</span> support with
63
+ product codes, instance reboot, viewing of console output, <span class="caps">NAT</span> addressing and more!</li>
72
64
  </ul>
73
65
 
74
66
 
75
67
  <ul>
76
- <li><span class="caps">MAJOR</span> library changes : <span class="caps">THESE CHANGES ARE NOT BACKWARD COMPATIBLE</span>!! You will need to update
77
- the way in which you make calls, handle responses, and rescue exceptions from this library.
78
- If you prefer not to make these changes you can feel free to continue to use the older version
68
+ <li><span class="caps">MAJOR</span> library changes : <span class="caps">THESE CHANGES ARE NOT BACKWARD COMPATIBLE</span>!! You will need to update
69
+ the way in which you make calls, handle responses, and rescue exceptions from this library.
70
+ If you prefer not to make these changes you can feel free to continue to use the older version
79
71
  of the gem. These older versions however will no longer be maintained.</li>
80
72
  </ul>
81
73
 
@@ -87,14 +79,14 @@ of arguments and none of them are positional. This feels much more &#8220;Ruby&
87
79
 
88
80
 
89
81
  <ul>
90
- <li><span class="caps">MAJOR</span> refactoring of how responses are returned to users. No longer do you have to call the
91
- .parse method, and no longer are you getting back simple arrays of information. Responses
92
- now come in the form of OpenStruct objects that contain all of the data for an object in
82
+ <li><span class="caps">MAJOR</span> refactoring of how responses are returned to users. No longer do you have to call the
83
+ .parse method, and no longer are you getting back simple arrays of information. Responses
84
+ now come in the form of OpenStruct objects that contain all of the data for an object in
93
85
  Enumerable form so you can use iterators (.each, .each_pair, etc). All methods return an <span class="caps">EC2</span>::Response object
94
86
  which inherits from OpenStruct. The return data from <span class="caps">EC2</span>, which is in <span class="caps">XML</span> form, is parsed
95
87
  with XmlSimple and is used to directly construct the return data structure. This allows us
96
88
  to know with some confidence that the data structure returned from <span class="caps">AWS</span> will always be consistent
97
- with this library&#8217;s responses. There is also an .xml attribute for each response object that lets you
89
+ with this library&#8217;s responses. There is also an .xml attribute for each response object that lets you
98
90
  see the full and complete <span class="caps">XML</span> response from <span class="caps">AWS</span> if that is useful to you.</li>
99
91
  </ul>
100
92
 
@@ -102,27 +94,27 @@ see the full and complete <span class="caps">XML</span> response from <span clas
102
94
  <ul>
103
95
  <li>Added an exception framework which will now throw appropriate Ruby exceptions
104
96
  that match those handed to us by Amazon <span class="caps">EC2</span>. ArgumentError exceptions will also
105
- be thrown if you are making calls we know to be illegal or malformed. You should rescue
106
- these exceptions in your application instead of parsing text responses. All exceptions
97
+ be thrown if you are making calls we know to be illegal or malformed. You should rescue
98
+ these exceptions in your application instead of parsing text responses. All exceptions
107
99
  descend from <span class="caps">EC2</span>::Error. You can see them all in exceptions.rb in the gem install.</li>
108
100
  </ul>
109
101
 
110
102
 
111
103
  <ul>
112
104
  <li>Added a full suite of test/spec unit tests which currently cover 100% of the public methods
113
- in this library. We have abot 92% code coverage according to rcov. This has greatly enhanced
114
- the reliability of the library as well as our confidence in the code.
105
+ in this library. We have abot 92% code coverage according to rcov. This has greatly enhanced
106
+ the reliability of the library as well as our confidence in the code.
115
107
  We used to have 0% test coverage. :-/</li>
116
108
  </ul>
117
109
 
118
110
 
119
111
  <ul>
120
112
  <li>Added an <span class="caps">EC2</span> command shell : &#8216;ec2sh&#8217; which can be called from anywhere and gives you
121
- an interactive irb session with an <span class="caps">EC2</span> connection pre-made for you as @ec2. You can use this
122
- to interactively execute any command on <span class="caps">EC2</span> that this library supports. Try @ec2.methods.sort
113
+ an interactive irb session with an <span class="caps">EC2</span> connection pre-made for you as @ec2. You can use this
114
+ to interactively execute any command on <span class="caps">EC2</span> that this library supports. Try @ec2.methods.sort
123
115
  or @ec2.describe_images to test it out. You must first setup two shell environment variables
124
116
  which contain your <span class="caps">ACCESS</span>_KEY_ID and <span class="caps">SECRET</span>_ACCESS_KEY for this to work. Otherwise an error
125
- will be thrown when you try to start it. This is way cool and shamelessly borrowed from
117
+ will be thrown when you try to start it. This is way cool and shamelessly borrowed from
126
118
  Marcel Molina&#8217;s fine <span class="caps">AWS</span>::S3 library.</li>
127
119
  </ul>
128
120
 
@@ -186,11 +178,11 @@ Marcel Molina&#8217;s fine <span class="caps">AWS</span>::S3 library.</li>
186
178
  <h3>Setting up&#8230;</h3>
187
179
 
188
180
 
189
- <p>The &#8216;ec2sh&#8217; and &#8216;ec2-gem-example.rb&#8217; scripts which will be introduced to you shortly expect your <span class="caps">AWS EC2</span> credentials to
190
- be stored as shell environment variables which are accessible to those scripts. This makes them convenient to use whenever
191
- you need to do a quick query to see what images you have available to you, whats running now, or to start or stop an
192
- instance on <span class="caps">EC2</span>. You&#8217;ll find &#8216;ec2sh&#8217; to be a very handy tool. I&#8217;ll describe only the <span class="caps">OS X</span> route for setting up (of course
193
- the setup steps will vary depending on your particular system and preferred shell). If you don&#8217;t want to
181
+ <p>The &#8216;ec2sh&#8217; and &#8216;ec2-gem-example.rb&#8217; scripts which will be introduced to you shortly expect your <span class="caps">AWS EC2</span> credentials to
182
+ be stored as shell environment variables which are accessible to those scripts. This makes them convenient to use whenever
183
+ you need to do a quick query to see what images you have available to you, whats running now, or to start or stop an
184
+ instance on <span class="caps">EC2</span>. You&#8217;ll find &#8216;ec2sh&#8217; to be a very handy tool. I&#8217;ll describe only the <span class="caps">OS X</span> route for setting up (of course
185
+ the setup steps will vary depending on your particular system and preferred shell). If you don&#8217;t want to
194
186
  do it this way, feel free to copy these scripts from the gem dir to any location where you can run them from and modify them directly to include your credentials.</p>
195
187
 
196
188
 
@@ -223,7 +215,7 @@ do it this way, feel free to copy these scripts from the gem dir to any location
223
215
  <p>The library exposes one main interface module <pre class='syntax'><span class="constant">EC2</span><span class="punct">::</span><span class="constant">Base</span></pre></p>
224
216
 
225
217
 
226
- <p>This method requires arguments which include your <span class="caps">AWS</span> credentials and it will return an object that you can use to make
218
+ <p>This method requires arguments which include your <span class="caps">AWS</span> credentials and it will return an object that you can use to make
227
219
  method calls directly against <span class="caps">EC2</span>. All the operations for using the <span class="caps">EC2</span> service, including query string header signing,
228
220
  are handled automatically for you. The connection string will look something like this:</p>
229
221
 
@@ -233,9 +225,9 @@ are handled automatically for you. The connection string will look something li
233
225
  </pre></p>
234
226
 
235
227
 
236
- <p>We have tried to keep the public methods on &#8216;amazon-ec2&#8217; as close as possible to the <span class="caps">AWS EC2</span> Query <span class="caps">API</span>.
237
- This similarity allows you to reference the Query <span class="caps">API</span> Reference in the <a href="http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=84"><span class="caps">EC2</span> Developer Guide</a> and be able to get started right away.
238
- In most cases the methods names only differ in how they are presented. e.g. &#8216;DescribeImages&#8217; becomes &#8217;#describe_images() in Ruby.
228
+ <p>We have tried to keep the public methods on &#8216;amazon-ec2&#8217; as close as possible to the <span class="caps">AWS EC2</span> Query <span class="caps">API</span>.
229
+ This similarity allows you to reference the Query <span class="caps">API</span> Reference in the <a href="http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=84"><span class="caps">EC2</span> Developer Guide</a> and be able to get started right away.
230
+ In most cases the methods names only differ in how they are presented. e.g. &#8216;DescribeImages&#8217; becomes &#8217;#describe_images() in Ruby.
239
231
  Feel free to browse the full <a href="http://amazon-ec2.rubyforge.org/rdoc/">RDoc documentation</a> for all classes and methods of &#8216;amazon-ec2&#8217; if you want more details.</p>
240
232
 
241
233
 
@@ -269,42 +261,42 @@ Feel free to browse the full <a href="http://amazon-ec2.rubyforge.org/rdoc/">RDo
269
261
  <p><pre class='syntax'>
270
262
 
271
263
  <span class="ident">hostname</span><span class="punct">:/</span><span class="regex">tmp</span><span class="punct">/</span><span class="ident">rails</span><span class="punct">/</span><span class="ident">amazon_test</span> <span class="ident">glenn</span><span class="global">$ </span><span class="ident">ec2sh</span>
272
-
264
+
273
265
  <span class="punct">'</span><span class="string">ec2sh</span><span class="punct">'</span> <span class="ident">usage</span> <span class="punct">:</span>
274
- <span class="constant">This</span> <span class="ident">is</span> <span class="ident">an</span> <span class="ident">interactive</span> <span class="punct">'</span><span class="string">irb</span><span class="punct">'</span> <span class="ident">command</span> <span class="ident">shell</span> <span class="ident">that</span> <span class="ident">allows</span> <span class="ident">you</span> <span class="ident">to</span> <span class="ident">use</span> <span class="ident">all</span>
266
+ <span class="constant">This</span> <span class="ident">is</span> <span class="ident">an</span> <span class="ident">interactive</span> <span class="punct">'</span><span class="string">irb</span><span class="punct">'</span> <span class="ident">command</span> <span class="ident">shell</span> <span class="ident">that</span> <span class="ident">allows</span> <span class="ident">you</span> <span class="ident">to</span> <span class="ident">use</span> <span class="ident">all</span>
275
267
  <span class="ident">commands</span> <span class="ident">available</span> <span class="ident">to</span> <span class="ident">the</span> <span class="ident">amazon</span><span class="punct">-</span><span class="ident">ec2</span> <span class="ident">gem</span><span class="punct">.</span> <span class="ident">You</span><span class="punct">'</span><span class="string">ll find this to be a
276
268
  great tool to help you debug issues and practice running commands
277
269
  against the live EC2 servers prior to putting them in your code.
278
-
279
- The EC2 connection is wired to the class instance </span><span class="punct">'</span><span class="attribute">@ec2</span><span class="punct">'</span><span class="string">. Make method calls
280
- on this to execute commands on EC2. Adding a #to_s
270
+
271
+ The EC2 connection is wired to the class instance </span><span class="punct">'</span><span class="attribute">@ec2</span><span class="punct">'</span><span class="string">. Make method calls
272
+ on this to execute commands on EC2. Adding a #to_s
281
273
  at the end of any command should give you a full String representation of the
282
274
  response. The #xml data is available for each response
283
275
  which allows you to view the full and complete XML response returned by
284
- EC2 without any parsing applied. This is useful for viewing the
276
+ EC2 without any parsing applied. This is useful for viewing the
285
277
  hierarchy of an entire response in a friendly way (if XML is friendly
286
278
  to you!). Understanding the hierarchy of the XML response is critical
287
279
  to making effective use of this library.
288
-
280
+
289
281
  Examples to try:
290
-
282
+
291
283
  returns : all ec2 public methods
292
284
  &gt;&gt; @ec2.methods.sort
293
-
285
+
294
286
  returns : a string representation of ALL images
295
287
  &gt;&gt; @ec2.describe_images.to_s
296
-
288
+
297
289
  returns : an Array of EC2::Response objects, each an EC2 image and its data
298
290
  &gt;&gt; @ec2.describe_images.imagesSet.item
299
291
  &gt;&gt; @ec2.describe_images.imagesSet.item[0] (an OpenStruct of a single item in that array)
300
292
  &gt;&gt; @ec2.describe_images.imagesSet.item[0].to_s (a String representation of that OpenStruct item)
301
-
293
+
302
294
  returns : an XML representation of all images
303
295
  &gt;&gt; puts @ec2.describe_images.xml
304
-
296
+
305
297
  returns : an XML representation of all images owned by Amazon
306
298
  &gt;&gt; puts @ec2.describe_images(:owner_id =&gt; </span><span class="punct">'</span><span class="ident">amazon</span><span class="punct">'</span><span class="string">).xml
307
-
299
+
308
300
  &gt;&gt; @ec2.describe_images.imagesSet.item[0].to_s
309
301
  =&gt; &quot;#&lt;EC2::Response:0x100A465B4 imageId=\&quot;ami-018e6b68\&quot; imageLocation=\&quot;rbuilder-online/phonehome-1.5.6-x86_10132.img.manifest.xml\&quot; imageOwnerId=\&quot;099034111737\&quot; imageState=\&quot;available\&quot; isPublic=\&quot;true\&quot; parent=#&lt;EC2::Response:0x100A469A6 ...&gt;&gt;&quot;
310
302
  <span class="normal">
@@ -325,14 +317,14 @@ Feel free to browse the full <a href="http://amazon-ec2.rubyforge.org/rdoc/">RDo
325
317
 
326
318
  <span class="constant">ACCESS_KEY_ID</span> <span class="punct">=</span> <span class="punct">'</span><span class="string">--YOUR AWS ACCESS KEY ID--</span><span class="punct">'</span>
327
319
  <span class="constant">SECRET_ACCESS_KEY</span> <span class="punct">=</span> <span class="punct">'</span><span class="string">--YOUR AWS SECRET ACCESS KEY--</span><span class="punct">'</span>
328
-
320
+
329
321
  <span class="ident">ec2</span> <span class="punct">=</span> <span class="constant">EC2</span><span class="punct">::</span><span class="constant">Base</span><span class="punct">.</span><span class="ident">new</span><span class="punct">(</span><span class="symbol">:access_key_id</span> <span class="punct">=&gt;</span> <span class="constant">ACCESS_KEY_ID</span><span class="punct">,</span> <span class="symbol">:secret_access_key</span> <span class="punct">=&gt;</span> <span class="constant">SECRET_ACCESS_KEY</span><span class="punct">)</span>
330
-
322
+
331
323
  <span class="ident">puts</span> <span class="punct">&quot;</span><span class="string">----- listing images owned by 'amazon' -----</span><span class="punct">&quot;</span>
332
324
  <span class="ident">ec2</span><span class="punct">.</span><span class="ident">describe_images</span><span class="punct">(</span><span class="symbol">:owner_id</span> <span class="punct">=&gt;</span> <span class="punct">&quot;</span><span class="string">amazon</span><span class="punct">&quot;).</span><span class="ident">imagesSet</span><span class="punct">.</span><span class="ident">item</span><span class="punct">.</span><span class="ident">each</span> <span class="keyword">do</span> <span class="punct">|</span><span class="ident">image</span><span class="punct">|</span>
333
325
  <span class="comment"># OpenStruct objects have members!</span>
334
326
  <span class="ident">image</span><span class="punct">.</span><span class="ident">members</span><span class="punct">.</span><span class="ident">each</span> <span class="keyword">do</span> <span class="punct">|</span><span class="ident">member</span><span class="punct">|</span>
335
- <span class="ident">puts</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{member}</span> =&gt; <span class="expr">#{image[member]}</span></span><span class="punct">&quot;</span>
327
+ <span class="ident">puts</span> <span class="punct">&quot;</span><span class="string"><span class="expr">#{member}</span> =&gt; <span class="expr">#{image[member]}</span></span><span class="punct">&quot;</span>
336
328
  <span class="keyword">end</span>
337
329
  <span class="keyword">end</span>
338
330
  </pre></p>
@@ -390,7 +382,7 @@ Feel free to browse the full <a href="http://amazon-ec2.rubyforge.org/rdoc/">RDo
390
382
  &lt;th&gt;image.imageState&lt;</span><span class="punct">/</span><span class="ident">th</span><span class="punct">&gt;</span>
391
383
  <span class="punct">&lt;</span><span class="ident">th</span><span class="punct">&gt;</span><span class="ident">image</span><span class="punct">.</span><span class="ident">isPublic</span><span class="punct">&lt;/</span><span class="regex">th&gt;
392
384
  &lt;</span><span class="punct">/</span><span class="ident">tr</span><span class="punct">&gt;</span>
393
-
385
+
394
386
  <span class="punct">&lt;%</span> <span class="keyword">for</span> <span class="ident">image</span> <span class="keyword">in</span> <span class="attribute">@ec2_images_amazon</span> <span class="punct">%&gt;</span><span class="string">
395
387
  &lt;tr</span><span class="punct">&gt;</span>
396
388
  <span class="punct">&lt;</span><span class="ident">td</span><span class="punct">&gt;&lt;%=</span><span class="string">h image.imageId %&gt;&lt;/td&gt;
@@ -419,11 +411,11 @@ Feel free to browse the full <a href="http://amazon-ec2.rubyforge.org/rdoc/">RDo
419
411
  <h4>Important notes regarding the structure of <span class="caps">EC2</span>::Response Objects</h4>
420
412
 
421
413
 
422
- <p>One of the key benefits of this new version of the library is that all responses from <span class="caps">EC2</span> are bundled up in
423
- a real data structure and no longer require parsing of text. We use an OpenStruct as the parent for the <span class="caps">EC2</span>::Response
424
- object and we populate it directly from the <span class="caps">XML</span> given to us by <span class="caps">EC2</span> in response to any command we issue. This means that
425
- future changes to the <span class="caps">API</span> and what is returned by <span class="caps">EC2</span> will largely be handled transparently by the gem. This is a huge
426
- benefit. What this means though, is that you may have to do a little homework on what actually gets returned by <span class="caps">EC2</span> as <span class="caps">XML</span>.
414
+ <p>One of the key benefits of this new version of the library is that all responses from <span class="caps">EC2</span> are bundled up in
415
+ a real data structure and no longer require parsing of text. We use an OpenStruct as the parent for the <span class="caps">EC2</span>::Response
416
+ object and we populate it directly from the <span class="caps">XML</span> given to us by <span class="caps">EC2</span> in response to any command we issue. This means that
417
+ future changes to the <span class="caps">API</span> and what is returned by <span class="caps">EC2</span> will largely be handled transparently by the gem. This is a huge
418
+ benefit. What this means though, is that you may have to do a little homework on what actually gets returned by <span class="caps">EC2</span> as <span class="caps">XML</span>.
427
419
  For example, when you make a #describe_images call in ec2sh to <span class="caps">EC2</span> what you will get back will look like:</p>
428
420
 
429
421
 
@@ -506,7 +498,7 @@ For example, when you make a #describe_images call in ec2sh to <span class="caps
506
498
  <h2>Project Info</h2>
507
499
 
508
500
 
509
- <p>This project is managed as a RubyForge project which you can find at <a href="http://amazon-ec2.rubyforge.org/">http://amazon-ec2.rubyforge.org/</a> and this is always the best place to find the latest news, report any bugs, submit feature requests, or provide patches.</p>
501
+ <p>This project is managed as a RubyForge project which you can find at <a href="http://amazon-ec2.rubyforge.org/">http://amazon-ec2.rubyforge.org/</a> and this is always the best place to find the latest news, report any bugs, or submit feature requests. If you are interesting in viewing or working with the source code you can find everything you need at : <a href="http://github.com/grempe/amazon-ec2">http://github.com/grempe/amazon-ec2</a>.</p>
510
502
 
511
503
 
512
504
  <h2>Learning More</h2>
@@ -524,7 +516,7 @@ For example, when you make a #describe_images call in ec2sh to <span class="caps
524
516
  <p><a href="http://aws.amazon.com/">Amazon Web Services Home</a>
525
517
  <a href="http://rubyforge.org/projects/amazon-ec2/">Project Home</a>
526
518
  <a href="http://rubyforge.org/frs/?group_id=2753">Downloads</a>
527
- <a href="http://rubyforge.org/scm/?group_id=2753">Browse Code</a>
519
+ <a href="http://github.com/grempe/amazon-ec2">Browse Code</a>
528
520
  <a href="http://rubyforge.org/tracker/?group_id=2753">Report Bugs</a>
529
521
  <a href="http://rubyforge.org/tracker/?group_id=2753">Request Features</a>
530
522
  <a href="http://rubyforge.org/tracker/?group_id=2753">Submit Patches</a></p>
@@ -553,7 +545,7 @@ For example, when you make a #describe_images call in ec2sh to <span class="caps
553
545
 
554
546
  <p>Comments, patches, and bug reports are welcome. Send an email to the address below or use the RubyForge forum for this project.</p>
555
547
  <p class="coda">
556
- <a href="mailto:grempe-at-rubyforge-dot-org">Glenn Rempe</a>, 26th September 2007<br>
548
+ <a href="mailto:grempe-at-rubyforge-dot-org">Glenn Rempe</a>, 17th February 2008<br>
557
549
  </p>
558
550
  </div>
559
551
 
@@ -5,62 +5,56 @@ h2. &#x2192; 'amazon-ec2'
5
5
  h2. About
6
6
 
7
7
  Amazon Web Services offers a compute power on demand capability known as the Elastic Compute Cloud (EC2). The server resources in the cloud can be provisioned on demand by making HTTP Query API calls to EC2.
8
-
9
- This 'amazon-ec2' Ruby Gem is an interface library that can be used to interact with the Amazon EC2 system and control server resources on demand from your Ruby scripts, or from Ruby on Rails applications.
10
-
11
-
12
- h2. Important! : Are you upgrading from an earlier release?
13
8
 
14
- This latest release of the gem has undergone a pretty massive re-write. It is no longer compatible with code you may have written that made use of an older version of 'amazon-ec2' (< 0.2.0).
15
-
16
- Any other gems which depended on 'amazon-ec2' < 0.2.0 will also no longer work with the new release. The only project I am aware of that depended on the earlier version of 'amazon-ec2' was 'Capazon'. This project, which allows you to control EC2 from your Capistrano recipies, has now been deprecated and is being reborn as 'Capsize'. I rewrote the code for Capsize with the assistance of the original creator of Capazon; Jesse Newland. Feel free to check out "Capsize":http://capsize.rubyforge.org/ to learn more about this exciting new release!
17
-
18
- While we apologize for not being able to maintain backward compatibility with the original 'amazon-ec2' gem, there were just too many major enhancements that needed to be made and it just was'nt possible. I hope that the new robustness and new features in this new release make any transitional pain worthwhile! Of course the old versions are still out there on RubyForge, and you can still install them if you pass the version string into the gem install command. I just don't recommend it unless you really have to.
9
+ This 'amazon-ec2' Ruby Gem is an interface library that can be used to interact with the Amazon EC2 system and control server resources on demand from your Ruby scripts, or from Ruby on Rails applications.
19
10
 
20
11
 
21
12
  h2. What's new?
22
13
 
23
- This release (>= 0.2.0) represents a major re-write of this gem and contains contributions from several people who make use of this gem for their own applications. Trust us, its worth the pain of upgrading if you have been using an older version. Some of the major enhancements you will find are:
14
+ 20070217 - This project's source code now only available from our master Git repository at GitHub. The Subversion repository at Rubyforge will be cleared but we'll still publish any new gem versions to Rubyforge so you can still easily install them. Unless you plan to work on the source code this should have no effect on you. Now you can browse, clone or fork from our Git repository at "http://github.com/grempe/amazon-ec2":http://github.com/grempe/amazon-ec2. Please let us know if you have patches you would like us to pull from your git repository.
24
15
 
25
- * Updated API version in the query API request to 2007-03-01, and added all known method calls
26
- in this version of the API to the gem (including paid AMI support with product codes, reboot, viewing console output, NAT addressing
27
- and more!)
16
+ This 0.2.0 + series represents a major re-write of this gem and contains contributions from several people who make use of this gem for their own applications. Trust us, its worth the pain of upgrading if you have been using an older version. Some of the major enhancements you will find are:
28
17
 
29
- * MAJOR library changes : THESE CHANGES ARE NOT BACKWARD COMPATIBLE!! You will need to update
30
- the way in which you make calls, handle responses, and rescue exceptions from this library.
31
- If you prefer not to make these changes you can feel free to continue to use the older version
18
+ * Updated API version in the query API request to 2007-08-29, and added all known method calls
19
+ in this version of the API to the gem (including the new instance types(small, medium, large)).
20
+ Previous releases have kept pace with changes such as the addition of paid AMI support with
21
+ product codes, instance reboot, viewing of console output, NAT addressing and more!
22
+
23
+ * MAJOR library changes : THESE CHANGES ARE NOT BACKWARD COMPATIBLE!! You will need to update
24
+ the way in which you make calls, handle responses, and rescue exceptions from this library.
25
+ If you prefer not to make these changes you can feel free to continue to use the older version
32
26
  of the gem. These older versions however will no longer be maintained.
33
27
 
34
28
  * MAJOR refactoring of how methods calls are made. Now all methods are called with a simple hash
35
29
  of arguments and none of them are positional. This feels much more "Ruby'ish".
36
30
 
37
- * MAJOR refactoring of how responses are returned to users. No longer do you have to call the
38
- .parse method, and no longer are you getting back simple arrays of information. Responses
39
- now come in the form of OpenStruct objects that contain all of the data for an object in
31
+ * MAJOR refactoring of how responses are returned to users. No longer do you have to call the
32
+ .parse method, and no longer are you getting back simple arrays of information. Responses
33
+ now come in the form of OpenStruct objects that contain all of the data for an object in
40
34
  Enumerable form so you can use iterators (.each, .each_pair, etc). All methods return an EC2::Response object
41
35
  which inherits from OpenStruct. The return data from EC2, which is in XML form, is parsed
42
36
  with XmlSimple and is used to directly construct the return data structure. This allows us
43
37
  to know with some confidence that the data structure returned from AWS will always be consistent
44
- with this library's responses. There is also an .xml attribute for each response object that lets you
38
+ with this library's responses. There is also an .xml attribute for each response object that lets you
45
39
  see the full and complete XML response from AWS if that is useful to you.
46
40
 
47
41
  * Added an exception framework which will now throw appropriate Ruby exceptions
48
42
  that match those handed to us by Amazon EC2. ArgumentError exceptions will also
49
- be thrown if you are making calls we know to be illegal or malformed. You should rescue
50
- these exceptions in your application instead of parsing text responses. All exceptions
43
+ be thrown if you are making calls we know to be illegal or malformed. You should rescue
44
+ these exceptions in your application instead of parsing text responses. All exceptions
51
45
  descend from EC2::Error. You can see them all in exceptions.rb in the gem install.
52
46
 
53
47
  * Added a full suite of test/spec unit tests which currently cover 100% of the public methods
54
- in this library. We have abot 92% code coverage according to rcov. This has greatly enhanced
55
- the reliability of the library as well as our confidence in the code.
56
- We used to have 0% test coverage. :-/
48
+ in this library. We have abot 92% code coverage according to rcov. This has greatly enhanced
49
+ the reliability of the library as well as our confidence in the code.
50
+ We used to have 0% test coverage. :-/
57
51
 
58
52
  * Added an EC2 command shell : 'ec2sh' which can be called from anywhere and gives you
59
- an interactive irb session with an EC2 connection pre-made for you as @ec2. You can use this
60
- to interactively execute any command on EC2 that this library supports. Try @ec2.methods.sort
53
+ an interactive irb session with an EC2 connection pre-made for you as @ec2. You can use this
54
+ to interactively execute any command on EC2 that this library supports. Try @ec2.methods.sort
61
55
  or @ec2.describe_images to test it out. You must first setup two shell environment variables
62
56
  which contain your ACCESS_KEY_ID and SECRET_ACCESS_KEY for this to work. Otherwise an error
63
- will be thrown when you try to start it. This is way cool and shamelessly borrowed from
57
+ will be thrown when you try to start it. This is way cool and shamelessly borrowed from
64
58
  Marcel Molina's fine AWS::S3 library.
65
59
 
66
60
  * Removed .parse method as it is no longer needed or wanted.
@@ -82,7 +76,7 @@ h4. Gem Dependencies
82
76
  The following gems should be installed automatically as part of your install of amazon-ec2. Most of them are testing or build dependencies but they should be painless to install even if you don't plan on running the tests or building this gem manually on your own.
83
77
 
84
78
  "XmlSimple":http://xml-simple.rubyforge.org/ (required)
85
-
79
+
86
80
  "Mocha":http://mocha.rubyforge.org/ (optional for testing)
87
81
 
88
82
  "Rcov":http://eigenclass.org/hiki.rb?rcov (optional for testing)
@@ -105,11 +99,11 @@ h2. Using the library
105
99
 
106
100
  h3. Setting up...
107
101
 
108
- The 'ec2sh' and 'ec2-gem-example.rb' scripts which will be introduced to you shortly expect your AWS EC2 credentials to
109
- be stored as shell environment variables which are accessible to those scripts. This makes them convenient to use whenever
110
- you need to do a quick query to see what images you have available to you, whats running now, or to start or stop an
111
- instance on EC2. You'll find 'ec2sh' to be a very handy tool. I'll describe only the OS X route for setting up (of course
112
- the setup steps will vary depending on your particular system and preferred shell). If you don't want to
102
+ The 'ec2sh' and 'ec2-gem-example.rb' scripts which will be introduced to you shortly expect your AWS EC2 credentials to
103
+ be stored as shell environment variables which are accessible to those scripts. This makes them convenient to use whenever
104
+ you need to do a quick query to see what images you have available to you, whats running now, or to start or stop an
105
+ instance on EC2. You'll find 'ec2sh' to be a very handy tool. I'll describe only the OS X route for setting up (of course
106
+ the setup steps will vary depending on your particular system and preferred shell). If you don't want to
113
107
  do it this way, feel free to copy these scripts from the gem dir to any location where you can run them from and modify them directly to include your credentials.
114
108
 
115
109
  h4. OS X Setup
@@ -134,7 +128,7 @@ h3. The basics...
134
128
 
135
129
  The library exposes one main interface module <pre syntax="ruby">EC2::Base</pre>
136
130
 
137
- This method requires arguments which include your AWS credentials and it will return an object that you can use to make
131
+ This method requires arguments which include your AWS credentials and it will return an object that you can use to make
138
132
  method calls directly against EC2. All the operations for using the EC2 service, including query string header signing,
139
133
  are handled automatically for you. The connection string will look something like this:
140
134
 
@@ -142,9 +136,9 @@ are handled automatically for you. The connection string will look something li
142
136
  @ec2 = EC2::Base.new(:access_key_id => ACCESS_KEY_ID, :secret_access_key => SECRET_ACCESS_KEY)
143
137
  </pre>
144
138
 
145
- We have tried to keep the public methods on 'amazon-ec2' as close as possible to the AWS EC2 Query API.
146
- This similarity allows you to reference the Query API Reference in the "EC2 Developer Guide":http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=84 and be able to get started right away.
147
- In most cases the methods names only differ in how they are presented. e.g. 'DescribeImages' becomes '#describe_images() in Ruby.
139
+ We have tried to keep the public methods on 'amazon-ec2' as close as possible to the AWS EC2 Query API.
140
+ This similarity allows you to reference the Query API Reference in the "EC2 Developer Guide":http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=84 and be able to get started right away.
141
+ In most cases the methods names only differ in how they are presented. e.g. 'DescribeImages' becomes '#describe_images() in Ruby.
148
142
  Feel free to browse the full "RDoc documentation":http://amazon-ec2.rubyforge.org/rdoc/ for all classes and methods of 'amazon-ec2' if you want more details.
149
143
 
150
144
 
@@ -171,42 +165,42 @@ If your not in front of a terminal shell now (perhaps you're browsing this site
171
165
  <pre syntax="ruby">
172
166
 
173
167
  hostname:/tmp/rails/amazon_test glenn$ ec2sh
174
-
168
+
175
169
  'ec2sh' usage :
176
- This is an interactive 'irb' command shell that allows you to use all
170
+ This is an interactive 'irb' command shell that allows you to use all
177
171
  commands available to the amazon-ec2 gem. You'll find this to be a
178
172
  great tool to help you debug issues and practice running commands
179
173
  against the live EC2 servers prior to putting them in your code.
180
-
181
- The EC2 connection is wired to the class instance '@ec2'. Make method calls
182
- on this to execute commands on EC2. Adding a #to_s
174
+
175
+ The EC2 connection is wired to the class instance '@ec2'. Make method calls
176
+ on this to execute commands on EC2. Adding a #to_s
183
177
  at the end of any command should give you a full String representation of the
184
178
  response. The #xml data is available for each response
185
179
  which allows you to view the full and complete XML response returned by
186
- EC2 without any parsing applied. This is useful for viewing the
180
+ EC2 without any parsing applied. This is useful for viewing the
187
181
  hierarchy of an entire response in a friendly way (if XML is friendly
188
182
  to you!). Understanding the hierarchy of the XML response is critical
189
183
  to making effective use of this library.
190
-
184
+
191
185
  Examples to try:
192
-
186
+
193
187
  returns : all ec2 public methods
194
188
  >> @ec2.methods.sort
195
-
189
+
196
190
  returns : a string representation of ALL images
197
191
  >> @ec2.describe_images.to_s
198
-
192
+
199
193
  returns : an Array of EC2::Response objects, each an EC2 image and its data
200
194
  >> @ec2.describe_images.imagesSet.item
201
195
  >> @ec2.describe_images.imagesSet.item[0] (an OpenStruct of a single item in that array)
202
196
  >> @ec2.describe_images.imagesSet.item[0].to_s (a String representation of that OpenStruct item)
203
-
197
+
204
198
  returns : an XML representation of all images
205
199
  >> puts @ec2.describe_images.xml
206
-
200
+
207
201
  returns : an XML representation of all images owned by Amazon
208
202
  >> puts @ec2.describe_images(:owner_id => 'amazon').xml
209
-
203
+
210
204
  >> @ec2.describe_images.imagesSet.item[0].to_s
211
205
  => "#<EC2::Response:0x100A465B4 imageId=\"ami-018e6b68\" imageLocation=\"rbuilder-online/phonehome-1.5.6-x86_10132.img.manifest.xml\" imageOwnerId=\"099034111737\" imageState=\"available\" isPublic=\"true\" parent=#<EC2::Response:0x100A469A6 ...>>"
212
206
 
@@ -225,14 +219,14 @@ require 'ec2'
225
219
 
226
220
  ACCESS_KEY_ID = '--YOUR AWS ACCESS KEY ID--'
227
221
  SECRET_ACCESS_KEY = '--YOUR AWS SECRET ACCESS KEY--'
228
-
222
+
229
223
  ec2 = EC2::Base.new(:access_key_id => ACCESS_KEY_ID, :secret_access_key => SECRET_ACCESS_KEY)
230
-
224
+
231
225
  puts "----- listing images owned by 'amazon' -----"
232
226
  ec2.describe_images(:owner_id => "amazon").imagesSet.item.each do |image|
233
227
  # OpenStruct objects have members!
234
228
  image.members.each do |member|
235
- puts "#{member} => #{image[member]}"
229
+ puts "#{member} => #{image[member]}"
236
230
  end
237
231
  end
238
232
  </pre>
@@ -285,7 +279,7 @@ and then you can show off your EC2 image data with some code in app/views/your_v
285
279
  <th>image.imageState</th>
286
280
  <th>image.isPublic</th>
287
281
  </tr>
288
-
282
+
289
283
  <% for image in @ec2_images_amazon %>
290
284
  <tr>
291
285
  <td><%=h image.imageId %></td>
@@ -313,11 +307,11 @@ and then you can show off your EC2 image data with some code in app/views/your_v
313
307
 
314
308
  h4. Important notes regarding the structure of EC2::Response Objects
315
309
 
316
- One of the key benefits of this new version of the library is that all responses from EC2 are bundled up in
317
- a real data structure and no longer require parsing of text. We use an OpenStruct as the parent for the EC2::Response
318
- object and we populate it directly from the XML given to us by EC2 in response to any command we issue. This means that
319
- future changes to the API and what is returned by EC2 will largely be handled transparently by the gem. This is a huge
320
- benefit. What this means though, is that you may have to do a little homework on what actually gets returned by EC2 as XML.
310
+ One of the key benefits of this new version of the library is that all responses from EC2 are bundled up in
311
+ a real data structure and no longer require parsing of text. We use an OpenStruct as the parent for the EC2::Response
312
+ object and we populate it directly from the XML given to us by EC2 in response to any command we issue. This means that
313
+ future changes to the API and what is returned by EC2 will largely be handled transparently by the gem. This is a huge
314
+ benefit. What this means though, is that you may have to do a little homework on what actually gets returned by EC2 as XML.
321
315
  For example, when you make a #describe_images call in ec2sh to EC2 what you will get back will look like:
322
316
 
323
317
 
@@ -393,7 +387,7 @@ We can always use your help! Do you have Ruby skills? Do you see a bug or enha
393
387
 
394
388
  h2. Project Info
395
389
 
396
- This project is managed as a RubyForge project which you can find at "http://amazon-ec2.rubyforge.org/":http://amazon-ec2.rubyforge.org/ and this is always the best place to find the latest news, report any bugs, submit feature requests, or provide patches.
390
+ This project is managed as a RubyForge project which you can find at "http://amazon-ec2.rubyforge.org/":http://amazon-ec2.rubyforge.org/ and this is always the best place to find the latest news, report any bugs, or submit feature requests. If you are interesting in viewing or working with the source code you can find everything you need at : "http://github.com/grempe/amazon-ec2":http://github.com/grempe/amazon-ec2.
397
391
 
398
392
  h2. Learning More
399
393
 
@@ -406,7 +400,7 @@ h3. Websites
406
400
  "Amazon Web Services Home":http://aws.amazon.com/
407
401
  "Project Home":http://rubyforge.org/projects/amazon-ec2/
408
402
  "Downloads":http://rubyforge.org/frs/?group_id=2753
409
- "Browse Code":http://rubyforge.org/scm/?group_id=2753
403
+ "Browse Code":http://github.com/grempe/amazon-ec2
410
404
  "Report Bugs":http://rubyforge.org/tracker/?group_id=2753
411
405
  "Request Features":http://rubyforge.org/tracker/?group_id=2753
412
406
  "Submit Patches":http://rubyforge.org/tracker/?group_id=2753
@@ -422,7 +416,7 @@ h2. Credits
422
416
  The original sample code for this library was provided by Amazon Web Services, LLC. Thanks to them for providing all of us with samples that got this started. This latest version of amazon-ec2 doesn't much resemble the original. They got us going though and thanks to the EC2 team for including Ruby in their plans. We hope to see more AWS Ruby code.
423
417
 
424
418
  Thanks to all the great folks who submitted patches and kept this project rolling. I would especially like to thank Sean Knapp, Kevin Clark, and Randy Bias. Your patches and help are much appreciated.
425
-
419
+
426
420
  Thanks to Dr. Nic Williams and his great 'NewGem' Ruby Gem Generator. This gem of a Gem helped me package up this code for distribution in a flash! You can find Dr. Nic's NewGem generator at "http://newgem.rubyforge.org/":http://newgem.rubyforge.org/
427
421
 
428
422
 
metadata CHANGED
@@ -1,33 +1,83 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.4
3
- specification_version: 1
4
2
  name: amazon-ec2
5
3
  version: !ruby/object:Gem::Version
6
- version: 0.2.6
7
- date: 2007-10-16 00:00:00 -07:00
8
- summary: An interface library that allows Ruby or Ruby on Rails applications to easily connect to the HTTP 'Query API' for the Amazon Web Services Elastic Compute Cloud (EC2) and manipulate server instances.
9
- require_paths:
10
- - lib
11
- email: grempe@rubyforge.org
12
- homepage: http://amazon-ec2.rubyforge.org
13
- rubyforge_project: amazon-ec2
14
- description: An interface library that allows Ruby or Ruby on Rails applications to easily connect to the HTTP 'Query API' for the Amazon Web Services Elastic Compute Cloud (EC2) and manipulate server instances.
15
- autorequire: EC2
16
- default_executable:
17
- bindir: bin
18
- has_rdoc: true
19
- required_ruby_version: !ruby/object:Gem::Version::Requirement
20
- requirements:
21
- - - ">"
22
- - !ruby/object:Gem::Version
23
- version: 0.0.0
24
- version:
4
+ version: 0.2.7
25
5
  platform: ruby
26
- signing_key:
27
- cert_chain:
28
- post_install_message:
29
6
  authors:
30
7
  - Glenn Rempe
8
+ autorequire: EC2
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-02-17 00:00:00 -08:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: xml-simple
17
+ version_requirement:
18
+ version_requirements: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 1.0.11
23
+ version:
24
+ - !ruby/object:Gem::Dependency
25
+ name: mocha
26
+ version_requirement:
27
+ version_requirements: !ruby/object:Gem::Requirement
28
+ requirements:
29
+ - - ">="
30
+ - !ruby/object:Gem::Version
31
+ version: 0.4.0
32
+ version:
33
+ - !ruby/object:Gem::Dependency
34
+ name: test-spec
35
+ version_requirement:
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 0.3.0
41
+ version:
42
+ - !ruby/object:Gem::Dependency
43
+ name: rcov
44
+ version_requirement:
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: 0.8.0.2
50
+ version:
51
+ - !ruby/object:Gem::Dependency
52
+ name: syntax
53
+ version_requirement:
54
+ version_requirements: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ version: 1.0.0
59
+ version:
60
+ - !ruby/object:Gem::Dependency
61
+ name: RedCloth
62
+ version_requirement:
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: 3.0.4
68
+ version:
69
+ description: An interface library that allows Ruby or Ruby on Rails applications to easily connect to the HTTP 'Query API' for the Amazon Web Services Elastic Compute Cloud (EC2) and manipulate server instances.
70
+ email: grempe@rubyforge.org
71
+ executables:
72
+ - ec2-gem-example.rb
73
+ - ec2sh
74
+ - setup.rb
75
+ extensions: []
76
+
77
+ extra_rdoc_files:
78
+ - README.txt
79
+ - History.txt
80
+ - License.txt
31
81
  files:
32
82
  - History.txt
33
83
  - License.txt
@@ -73,18 +123,9 @@ files:
73
123
  - website/javascripts/rounded_corners_lite.inc.js
74
124
  - website/stylesheets/screen.css
75
125
  - website/template.rhtml
76
- test_files:
77
- - test/test_EC2.rb
78
- - test/test_EC2_console.rb
79
- - test/test_EC2_image_attributes.rb
80
- - test/test_EC2_images.rb
81
- - test/test_EC2_instances.rb
82
- - test/test_EC2_keypairs.rb
83
- - test/test_EC2_products.rb
84
- - test/test_EC2_responses.rb
85
- - test/test_EC2_security_groups.rb
86
- - test/test_EC2_version.rb
87
- - test/test_helper.rb
126
+ has_rdoc: true
127
+ homepage: http://amazon-ec2.rubyforge.org
128
+ post_install_message:
88
129
  rdoc_options:
89
130
  - --quiet
90
131
  - --title
@@ -95,70 +136,36 @@ rdoc_options:
95
136
  - --main
96
137
  - README.txt
97
138
  - --inline-source
98
- extra_rdoc_files:
99
- - README.txt
100
- - History.txt
101
- - License.txt
102
- executables:
103
- - ec2-gem-example.rb
104
- - ec2sh
105
- - setup.rb
106
- extensions: []
107
-
139
+ require_paths:
140
+ - lib
141
+ required_ruby_version: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: "0"
146
+ version:
147
+ required_rubygems_version: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - ">="
150
+ - !ruby/object:Gem::Version
151
+ version: "0"
152
+ version:
108
153
  requirements: []
109
154
 
110
- dependencies:
111
- - !ruby/object:Gem::Dependency
112
- name: xml-simple
113
- version_requirement:
114
- version_requirements: !ruby/object:Gem::Version::Requirement
115
- requirements:
116
- - - ">="
117
- - !ruby/object:Gem::Version
118
- version: 1.0.11
119
- version:
120
- - !ruby/object:Gem::Dependency
121
- name: mocha
122
- version_requirement:
123
- version_requirements: !ruby/object:Gem::Version::Requirement
124
- requirements:
125
- - - ">="
126
- - !ruby/object:Gem::Version
127
- version: 0.4.0
128
- version:
129
- - !ruby/object:Gem::Dependency
130
- name: test-spec
131
- version_requirement:
132
- version_requirements: !ruby/object:Gem::Version::Requirement
133
- requirements:
134
- - - ">="
135
- - !ruby/object:Gem::Version
136
- version: 0.3.0
137
- version:
138
- - !ruby/object:Gem::Dependency
139
- name: rcov
140
- version_requirement:
141
- version_requirements: !ruby/object:Gem::Version::Requirement
142
- requirements:
143
- - - ">="
144
- - !ruby/object:Gem::Version
145
- version: 0.8.0.2
146
- version:
147
- - !ruby/object:Gem::Dependency
148
- name: syntax
149
- version_requirement:
150
- version_requirements: !ruby/object:Gem::Version::Requirement
151
- requirements:
152
- - - ">="
153
- - !ruby/object:Gem::Version
154
- version: 1.0.0
155
- version:
156
- - !ruby/object:Gem::Dependency
157
- name: RedCloth
158
- version_requirement:
159
- version_requirements: !ruby/object:Gem::Version::Requirement
160
- requirements:
161
- - - ">="
162
- - !ruby/object:Gem::Version
163
- version: 3.0.4
164
- version:
155
+ rubyforge_project: amazon-ec2
156
+ rubygems_version: 1.0.1
157
+ signing_key:
158
+ specification_version: 2
159
+ summary: An interface library that allows Ruby or Ruby on Rails applications to easily connect to the HTTP 'Query API' for the Amazon Web Services Elastic Compute Cloud (EC2) and manipulate server instances.
160
+ test_files:
161
+ - test/test_EC2.rb
162
+ - test/test_EC2_console.rb
163
+ - test/test_EC2_image_attributes.rb
164
+ - test/test_EC2_images.rb
165
+ - test/test_EC2_instances.rb
166
+ - test/test_EC2_keypairs.rb
167
+ - test/test_EC2_products.rb
168
+ - test/test_EC2_responses.rb
169
+ - test/test_EC2_security_groups.rb
170
+ - test/test_EC2_version.rb
171
+ - test/test_helper.rb