aws 1.11.38 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.markdown +20 -23
- data/lib/acf/right_acf_interface.rb +17 -17
- data/lib/aws.rb +27 -0
- data/lib/awsbase/right_awsbase.rb +8 -8
- data/lib/ec2/right_ec2.rb +37 -35
- data/lib/ec2/right_mon_interface.rb +25 -15
- data/lib/elb/right_elb_interface.rb +6 -6
- data/lib/right_aws.rb +6 -17
- data/lib/s3/right_s3.rb +58 -58
- data/lib/s3/right_s3_interface.rb +18 -18
- data/lib/sdb/active_sdb.rb +28 -28
- data/lib/sdb/right_sdb_interface.rb +18 -18
- data/lib/sqs/right_sqs.rb +13 -13
- data/lib/sqs/right_sqs_interface.rb +12 -12
- data/test/acf/test_right_acf.rb +10 -8
- data/test/ec2/test_helper.rb +1 -1
- data/test/ec2/test_mon.rb +17 -0
- data/test/ec2/test_right_ec2.rb +9 -7
- data/test/s3/test_helper.rb +2 -1
- data/test/s3/test_right_s3.rb +417 -411
- data/test/s3/test_right_s3_stubbed.rb +11 -9
- data/test/sdb/test_active_sdb.rb +11 -10
- data/test/sdb/test_right_sdb.rb +210 -242
- data/test/sqs/test_right_sqs.rb +190 -269
- data/test/test_credentials.rb +52 -40
- metadata +4 -3
- data/test/sqs/test_right_sqs_gen2.rb +0 -209
data/README.markdown
CHANGED
@@ -40,14 +40,13 @@ The RightScale AWS gems have been designed to provide a robust, fast, and secure
|
|
40
40
|
These gems have been used in production by RightScale since late 2006 and are being maintained to track enhancements made by Amazon.
|
41
41
|
The RightScale AWS gems comprise:
|
42
42
|
|
43
|
-
-
|
44
|
-
-
|
45
|
-
-
|
46
|
-
-
|
47
|
-
-
|
48
|
-
-
|
49
|
-
-
|
50
|
-
- RightAws::MonInterface -- interface to Amazon CloudWatch monitoring service
|
43
|
+
- Aws::Ec2 -- interface to Amazon EC2 (Elastic Compute Cloud) and the associated EBS (Elastic Block Store)
|
44
|
+
- Aws::S3 and Aws::S3Interface -- interface to Amazon S3 (Simple Storage Service)
|
45
|
+
- Aws::Sqs and Aws::SqsInterface -- interface to Amazon SQS (Simple Queue Service)
|
46
|
+
- Aws::SdbInterface and Aws::ActiveSdb -- interface to Amazon SDB (SimpleDB)
|
47
|
+
- Aws::AcfInterface -- interface to Amazon CloudFront, a content distribution service
|
48
|
+
- Aws::ElbInterface -- interface to Amazon Load Balancing service
|
49
|
+
- Aws::MonInterface -- interface to Amazon CloudWatch monitoring service
|
51
50
|
|
52
51
|
|
53
52
|
## FEATURES:
|
@@ -81,7 +80,7 @@ All RightScale AWS interfaces offer two threading options:
|
|
81
80
|
1. Use a single persistent HTTP connection per process.
|
82
81
|
2. Use a persistent HTTP connection per Ruby thread.
|
83
82
|
|
84
|
-
Either way, it doesn't matter how many (for example)
|
83
|
+
Either way, it doesn't matter how many (for example) Aws::S3 objects you create,
|
85
84
|
they all use the same per-program or per-thread
|
86
85
|
connection. The purpose of sharing the connection is to keep a single
|
87
86
|
persistent HTTP connection open to avoid paying connection
|
@@ -104,21 +103,19 @@ multithreaded mode.
|
|
104
103
|
|
105
104
|
## GETTING STARTED:
|
106
105
|
|
107
|
-
* For EC2 read
|
106
|
+
* For EC2 read Aws::Ec2 and consult the Amazon EC2 API documentation at
|
108
107
|
http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=87
|
109
|
-
* For S3 read
|
108
|
+
* For S3 read Aws::S3 and consult the Amazon S3 API documentation at
|
110
109
|
http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=48
|
111
|
-
* For
|
110
|
+
* For SQS read Aws::Sqs and consult the Amazon SQS API documentation at
|
112
111
|
http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=31
|
113
|
-
* For second generation SQS read RightAws::SqsGen2, RightAws::SqsGen2Interface, and consult the Amazon SQS API documentation at
|
114
|
-
http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1214&categoryID=31
|
115
112
|
|
116
113
|
Amazon's Migration Guide for moving from first to second generation SQS is
|
117
114
|
avalable at:
|
118
115
|
http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1148
|
119
|
-
* For SDB read
|
116
|
+
* For SDB read Aws::SdbInterface, Aws::ActiveSdb, and consult the Amazon SDB API documentation at
|
120
117
|
http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=141
|
121
|
-
* For CloudFront (ACF) read
|
118
|
+
* For CloudFront (ACF) read Aws::AcfInterface and consult the Amazon CloudFront API documentation at
|
122
119
|
http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=213
|
123
120
|
|
124
121
|
## KNOWN ISSUES:
|
@@ -140,7 +137,7 @@ multithreaded mode.
|
|
140
137
|
changes the semantics of core Ruby (specifically, the String class) and thus presents a reliability
|
141
138
|
problem for most Ruby programs.
|
142
139
|
|
143
|
-
- 2/11/08: If you use
|
140
|
+
- 2/11/08: If you use Aws in conjunction with attachment_fu, the
|
144
141
|
right_aws gem must be included (using the require statement) AFTER
|
145
142
|
attachment_fu. If right_aws is loaded before attachment_fu, you'll
|
146
143
|
encounter errors similar to:
|
@@ -158,17 +155,17 @@ multithreaded mode.
|
|
158
155
|
|
159
156
|
- 8/07: Amazon has changed the semantics of the SQS service. A
|
160
157
|
new queue may not be created within 60 seconds of the destruction of any
|
161
|
-
older queue with the same name. Certain methods of
|
162
|
-
|
158
|
+
older queue with the same name. Certain methods of Aws::Sqs and
|
159
|
+
Aws::SqsInterface will fail with the message:
|
163
160
|
"AWS.SimpleQueueService.QueueDeletedRecently: You must wait 60 seconds after deleting a queue before you can create another with the same name."
|
164
161
|
|
165
162
|
## REQUIREMENTS:
|
166
163
|
|
167
|
-
|
164
|
+
Aws requires REXML and the right_http_connection gem.
|
168
165
|
If libxml and its Ruby bindings (distributed in the libxml-ruby gem) are
|
169
|
-
present,
|
170
|
-
|
171
|
-
Any error with the libxml installation will result in
|
166
|
+
present, Aws can be configured to use them:
|
167
|
+
Aws::AwsParser.xml_lib = 'libxml'
|
168
|
+
Any error with the libxml installation will result in Aws failing-safe to
|
172
169
|
REXML parsing.
|
173
170
|
|
174
171
|
|
@@ -21,9 +21,9 @@
|
|
21
21
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
22
|
#
|
23
23
|
|
24
|
-
module
|
24
|
+
module Aws
|
25
25
|
|
26
|
-
# =
|
26
|
+
# = Aws::AcfInterface -- RightScale Amazon's CloudFront interface
|
27
27
|
# The AcfInterface class provides a complete interface to Amazon's
|
28
28
|
# CloudFront service.
|
29
29
|
#
|
@@ -33,7 +33,7 @@ module RightAws
|
|
33
33
|
#
|
34
34
|
# Example:
|
35
35
|
#
|
36
|
-
# acf =
|
36
|
+
# acf = Aws::AcfInterface.new('1E3GDYEOGFJPIT7XXXXXX','hgTHt68JY07JKUY08ftHYtERkjgtfERn57XXXXXX')
|
37
37
|
#
|
38
38
|
# list = acf.list_distributions #=>
|
39
39
|
# [{:status => "Deployed",
|
@@ -72,9 +72,9 @@ module RightAws
|
|
72
72
|
#
|
73
73
|
# acf.set_distribution_config(distibution[:aws_id], config) #=> true
|
74
74
|
#
|
75
|
-
class AcfInterface <
|
75
|
+
class AcfInterface < AwsBase
|
76
76
|
|
77
|
-
include
|
77
|
+
include AwsBaseInterface
|
78
78
|
|
79
79
|
API_VERSION = "2008-06-30"
|
80
80
|
DEFAULT_HOST = 'cloudfront.amazonaws.com'
|
@@ -100,8 +100,8 @@ module RightAws
|
|
100
100
|
# * <tt>:logger</tt>: for log messages, default: RAILS_DEFAULT_LOGGER else STDOUT
|
101
101
|
# * <tt>:cache</tt>: true/false: caching for list_distributions method, default: false.
|
102
102
|
#
|
103
|
-
# acf =
|
104
|
-
# {:multi_thread => true, :logger => Logger.new('/tmp/x.log')}) #=> #<
|
103
|
+
# acf = Aws::AcfInterface.new('1E3GDYEOGFJPIT7XXXXXX','hgTHt68JY07JKUY08ftHYtERkjgtfERn57XXXXXX',
|
104
|
+
# {:multi_thread => true, :logger => Logger.new('/tmp/x.log')}) #=> #<Aws::AcfInterface::0xb7b3c30c>
|
105
105
|
#
|
106
106
|
def initialize(aws_access_key_id=nil, aws_secret_access_key=nil, params={})
|
107
107
|
init({ :name => 'ACF',
|
@@ -142,7 +142,7 @@ module RightAws
|
|
142
142
|
# Raises AwsError if any banana happened.
|
143
143
|
def request_info(request, parser, &block) # :nodoc:
|
144
144
|
thread = @params[:multi_thread] ? Thread.current : Thread.main
|
145
|
-
thread[:acf_connection] ||=
|
145
|
+
thread[:acf_connection] ||= Aws::HttpConnection.new(:exception => Aws::AwsError, :logger => @logger)
|
146
146
|
request_info_impl(thread[:acf_connection], @@bench, request, parser, &block)
|
147
147
|
end
|
148
148
|
|
@@ -179,7 +179,7 @@ module RightAws
|
|
179
179
|
#-----------------------------------------------------------------
|
180
180
|
|
181
181
|
# List distributions.
|
182
|
-
# Returns an array of distributions or
|
182
|
+
# Returns an array of distributions or Aws::AwsError exception.
|
183
183
|
#
|
184
184
|
# acf.list_distributions #=>
|
185
185
|
# [{:status => "Deployed",
|
@@ -196,7 +196,7 @@ module RightAws
|
|
196
196
|
end
|
197
197
|
|
198
198
|
# Create a new distribution.
|
199
|
-
# Returns the just created distribution or
|
199
|
+
# Returns the just created distribution or Aws::AwsError exception.
|
200
200
|
#
|
201
201
|
# acf.create_distribution('bucket-for-k-dzreyev.s3.amazonaws.com', 'Woo-Hoo!', true, ['web1.my-awesome-site.net'] ) #=>
|
202
202
|
# {:comment => "Woo-Hoo!",
|
@@ -233,7 +233,7 @@ module RightAws
|
|
233
233
|
end
|
234
234
|
|
235
235
|
# Get a distribution's information.
|
236
|
-
# Returns a distribution's information or
|
236
|
+
# Returns a distribution's information or Aws::AwsError exception.
|
237
237
|
#
|
238
238
|
# acf.get_distribution('E2REJM3VUN5RSI') #=>
|
239
239
|
# {:enabled => true,
|
@@ -253,7 +253,7 @@ module RightAws
|
|
253
253
|
end
|
254
254
|
|
255
255
|
# Get a distribution's configuration.
|
256
|
-
# Returns a distribution's configuration or
|
256
|
+
# Returns a distribution's configuration or Aws::AwsError exception.
|
257
257
|
#
|
258
258
|
# acf.get_distribution_config('E2REJM3VUN5RSI') #=>
|
259
259
|
# {:enabled => true,
|
@@ -270,7 +270,7 @@ module RightAws
|
|
270
270
|
|
271
271
|
# Set a distribution's configuration
|
272
272
|
# (the :origin and the :caller_reference cannot be changed).
|
273
|
-
# Returns +true+ on success or
|
273
|
+
# Returns +true+ on success or Aws::AwsError exception.
|
274
274
|
#
|
275
275
|
# config = acf.get_distribution_config('E2REJM3VUN5RSI') #=>
|
276
276
|
# {:enabled => true,
|
@@ -306,7 +306,7 @@ module RightAws
|
|
306
306
|
end
|
307
307
|
|
308
308
|
# Delete a distribution. The enabled distribution cannot be deleted.
|
309
|
-
# Returns +true+ on success or
|
309
|
+
# Returns +true+ on success or Aws::AwsError exception.
|
310
310
|
#
|
311
311
|
# acf.delete_distribution('E2REJM3VUN5RSI', 'E39OHHU1ON65SI') #=> true
|
312
312
|
#
|
@@ -320,7 +320,7 @@ module RightAws
|
|
320
320
|
# PARSERS:
|
321
321
|
#-----------------------------------------------------------------
|
322
322
|
|
323
|
-
class AcfDistributionListParser <
|
323
|
+
class AcfDistributionListParser < AwsParser # :nodoc:
|
324
324
|
def reset
|
325
325
|
@result = []
|
326
326
|
end
|
@@ -341,7 +341,7 @@ module RightAws
|
|
341
341
|
end
|
342
342
|
end
|
343
343
|
|
344
|
-
class AcfDistributionParser <
|
344
|
+
class AcfDistributionParser < AwsParser # :nodoc:
|
345
345
|
def reset
|
346
346
|
@result = { :cnames => [] }
|
347
347
|
end
|
@@ -360,7 +360,7 @@ module RightAws
|
|
360
360
|
end
|
361
361
|
end
|
362
362
|
|
363
|
-
class AcfDistributionConfigParser <
|
363
|
+
class AcfDistributionConfigParser < AwsParser # :nodoc:
|
364
364
|
def reset
|
365
365
|
@result = { :cnames => [] }
|
366
366
|
end
|
data/lib/aws.rb
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
|
2
|
+
require 'benchmark'
|
3
|
+
require 'net/https'
|
4
|
+
require 'uri'
|
5
|
+
require 'time'
|
6
|
+
require "cgi"
|
7
|
+
require "base64"
|
8
|
+
require "rexml/document"
|
9
|
+
require "openssl"
|
10
|
+
require "digest/sha1"
|
11
|
+
|
12
|
+
require 'rubygems'
|
13
|
+
require 'right_http_connection'
|
14
|
+
|
15
|
+
$:.unshift(File.dirname(__FILE__))
|
16
|
+
require 'awsbase/benchmark_fix'
|
17
|
+
require 'awsbase/support'
|
18
|
+
require 'awsbase/right_awsbase'
|
19
|
+
require 'ec2/right_ec2'
|
20
|
+
require 'ec2/right_mon_interface'
|
21
|
+
require 's3/right_s3_interface'
|
22
|
+
require 's3/right_s3'
|
23
|
+
require 'sqs/right_sqs_interface'
|
24
|
+
require 'sqs/right_sqs'
|
25
|
+
require 'sdb/right_sdb_interface'
|
26
|
+
require 'acf/right_acf_interface'
|
27
|
+
require 'elb/right_elb_interface'
|
@@ -22,7 +22,7 @@
|
|
22
22
|
#
|
23
23
|
|
24
24
|
# Test
|
25
|
-
module
|
25
|
+
module Aws
|
26
26
|
require 'digest/md5'
|
27
27
|
require 'pp'
|
28
28
|
require 'cgi'
|
@@ -155,7 +155,7 @@ module RightAws
|
|
155
155
|
class AwsNoChange < RuntimeError
|
156
156
|
end
|
157
157
|
|
158
|
-
class
|
158
|
+
class AwsBase
|
159
159
|
|
160
160
|
# Amazon HTTP Error handling
|
161
161
|
|
@@ -187,7 +187,7 @@ module RightAws
|
|
187
187
|
|
188
188
|
end
|
189
189
|
|
190
|
-
module
|
190
|
+
module AwsBaseInterface
|
191
191
|
DEFAULT_SIGNATURE_VERSION = '2'
|
192
192
|
|
193
193
|
@@caching = false
|
@@ -456,7 +456,7 @@ module RightAws
|
|
456
456
|
false
|
457
457
|
end
|
458
458
|
|
459
|
-
# Generic handler for AwsErrors. +aws+ is the
|
459
|
+
# Generic handler for AwsErrors. +aws+ is the Aws::S3, Aws::EC2, or Aws::SQS
|
460
460
|
# object that caused the exception (it must provide last_request and last_response). Supported
|
461
461
|
# boolean options are:
|
462
462
|
# * <tt>:log</tt> print a message into the log using aws.logger to access the Logger
|
@@ -690,7 +690,7 @@ module RightAws
|
|
690
690
|
end
|
691
691
|
end
|
692
692
|
|
693
|
-
class
|
693
|
+
class AwsParser #:nodoc:
|
694
694
|
# default parsing library
|
695
695
|
DEFAULT_XML_LIBRARY = 'rexml'
|
696
696
|
# a list of supported parsers
|
@@ -787,7 +787,7 @@ module RightAws
|
|
787
787
|
|
788
788
|
# Parser must have a lots of methods
|
789
789
|
# (see /usr/lib/ruby/1.8/rexml/parsers/streamparser.rb)
|
790
|
-
# We dont need most of them in
|
790
|
+
# We dont need most of them in AwsParser and method_missing helps us
|
791
791
|
# to skip their definition
|
792
792
|
def method_missing(method, *params)
|
793
793
|
# if the method is one of known - just skip it ...
|
@@ -828,7 +828,7 @@ module RightAws
|
|
828
828
|
# <Bucket>bucket-for-k</Bucket>
|
829
829
|
#</Error>
|
830
830
|
|
831
|
-
class RightErrorResponseParser <
|
831
|
+
class RightErrorResponseParser < AwsParser #:nodoc:
|
832
832
|
attr_accessor :errors # array of hashes: error/message
|
833
833
|
attr_accessor :requestID
|
834
834
|
# attr_accessor :endpoint, :host_id, :bucket
|
@@ -863,7 +863,7 @@ module RightAws
|
|
863
863
|
end
|
864
864
|
end
|
865
865
|
|
866
|
-
class RightHttp2xxParser <
|
866
|
+
class RightHttp2xxParser < AwsParser # :nodoc:
|
867
867
|
def parse(response)
|
868
868
|
@result = response.is_a?(Net::HTTPSuccess)
|
869
869
|
end
|
data/lib/ec2/right_ec2.rb
CHANGED
@@ -21,10 +21,10 @@
|
|
21
21
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
22
22
|
#
|
23
23
|
|
24
|
-
module
|
24
|
+
module Aws
|
25
25
|
|
26
|
-
# =
|
27
|
-
# The
|
26
|
+
# = Aws::EC2 -- RightScale Amazon EC2 interface
|
27
|
+
# The Aws::EC2 class provides a complete interface to Amazon's
|
28
28
|
# Elastic Compute Cloud service, as well as the associated EBS (Elastic Block
|
29
29
|
# Store).
|
30
30
|
# For explanations of the semantics
|
@@ -35,7 +35,7 @@ module RightAws
|
|
35
35
|
#
|
36
36
|
# Create an EC2 interface handle:
|
37
37
|
#
|
38
|
-
# @ec2 =
|
38
|
+
# @ec2 = Aws::Ec2.new(aws_access_key_id,
|
39
39
|
# aws_secret_access_key)
|
40
40
|
# Create a new SSH key pair:
|
41
41
|
# @key = 'right_ec2_awesome_test_key'
|
@@ -61,11 +61,11 @@ module RightAws
|
|
61
61
|
# Describe running instances:
|
62
62
|
# @ec2.describe_instances
|
63
63
|
#
|
64
|
-
# Error handling: all operations raise an
|
64
|
+
# Error handling: all operations raise an Aws::AwsError in case
|
65
65
|
# of problems. Note that transient errors are automatically retried.
|
66
66
|
|
67
|
-
class Ec2 <
|
68
|
-
include
|
67
|
+
class Ec2 < AwsBase
|
68
|
+
include AwsBaseInterface
|
69
69
|
|
70
70
|
# Amazon EC2 API version being used
|
71
71
|
API_VERSION = "2008-12-01"
|
@@ -125,7 +125,7 @@ module RightAws
|
|
125
125
|
# EC2 doesn't really define any transient errors to retry, and in fact,
|
126
126
|
# when they return a 503 it is usually for 'request limit exceeded' which
|
127
127
|
# we most certainly should not retry. So let's pare down the list of
|
128
|
-
# retryable errors to InternalError only (see
|
128
|
+
# retryable errors to InternalError only (see AwsBase for the default
|
129
129
|
# list)
|
130
130
|
amazon_problems = ['InternalError']
|
131
131
|
end
|
@@ -626,7 +626,7 @@ module RightAws
|
|
626
626
|
# Bundle a Windows image.
|
627
627
|
# Internally, it queues the bundling task and shuts down the instance.
|
628
628
|
# It then takes a snapshot of the Windows volume bundles it, and uploads it to
|
629
|
-
# S3. After bundling completes,
|
629
|
+
# S3. After bundling completes, Aws::Ec2#register_image may be used to
|
630
630
|
# register the new Windows AMI for subsequent launches.
|
631
631
|
#
|
632
632
|
# ec2.bundle_instance('i-e3e24e8a', 'my-awesome-bucket', 'my-win-image-1') #=>
|
@@ -1183,8 +1183,8 @@ module RightAws
|
|
1183
1183
|
orig_reiteration_time = nil
|
1184
1184
|
orig_http_params = nil
|
1185
1185
|
|
1186
|
-
orig_reiteration_time =
|
1187
|
-
|
1186
|
+
orig_reiteration_time = Aws::AWSErrorHandler::reiteration_time
|
1187
|
+
Aws::AWSErrorHandler::reiteration_time = 0
|
1188
1188
|
|
1189
1189
|
orig_http_params = Rightscale::HttpConnection::params()
|
1190
1190
|
new_http_params = orig_http_params.dup
|
@@ -1200,7 +1200,7 @@ module RightAws
|
|
1200
1200
|
rescue Exception
|
1201
1201
|
on_exception
|
1202
1202
|
ensure
|
1203
|
-
|
1203
|
+
Aws::AWSErrorHandler::reiteration_time = orig_reiteration_time if orig_reiteration_time
|
1204
1204
|
Rightscale::HttpConnection::params = orig_http_params if orig_http_params
|
1205
1205
|
end
|
1206
1206
|
|
@@ -1220,7 +1220,7 @@ module RightAws
|
|
1220
1220
|
# PARSERS: Boolean Response Parser
|
1221
1221
|
#-----------------------------------------------------------------
|
1222
1222
|
|
1223
|
-
class RightBoolResponseParser <
|
1223
|
+
class RightBoolResponseParser < AwsParser #:nodoc:
|
1224
1224
|
def tagend(name)
|
1225
1225
|
@result = @text=='true' ? true : false if name == 'return'
|
1226
1226
|
end
|
@@ -1230,7 +1230,7 @@ module RightAws
|
|
1230
1230
|
# PARSERS: Key Pair
|
1231
1231
|
#-----------------------------------------------------------------
|
1232
1232
|
|
1233
|
-
class QEc2DescribeKeyPairParser <
|
1233
|
+
class QEc2DescribeKeyPairParser < AwsParser #:nodoc:
|
1234
1234
|
def tagstart(name, attributes)
|
1235
1235
|
@item = {} if name == 'item'
|
1236
1236
|
end
|
@@ -1246,7 +1246,7 @@ module RightAws
|
|
1246
1246
|
end
|
1247
1247
|
end
|
1248
1248
|
|
1249
|
-
class QEc2CreateKeyPairParser <
|
1249
|
+
class QEc2CreateKeyPairParser < AwsParser #:nodoc:
|
1250
1250
|
def tagstart(name, attributes)
|
1251
1251
|
@result = {} if name == 'CreateKeyPairResponse'
|
1252
1252
|
end
|
@@ -1284,7 +1284,7 @@ module RightAws
|
|
1284
1284
|
end
|
1285
1285
|
|
1286
1286
|
|
1287
|
-
class QEc2DescribeSecurityGroupsParser <
|
1287
|
+
class QEc2DescribeSecurityGroupsParser < AwsParser #:nodoc:
|
1288
1288
|
def tagstart(name, attributes)
|
1289
1289
|
case name
|
1290
1290
|
when 'item'
|
@@ -1334,7 +1334,7 @@ module RightAws
|
|
1334
1334
|
# PARSERS: Images
|
1335
1335
|
#-----------------------------------------------------------------
|
1336
1336
|
|
1337
|
-
class QEc2DescribeImagesParser <
|
1337
|
+
class QEc2DescribeImagesParser < AwsParser #:nodoc:
|
1338
1338
|
def tagstart(name, attributes)
|
1339
1339
|
if name == 'item' && @xmlpath[%r{.*/imagesSet$}]
|
1340
1340
|
@image = {}
|
@@ -1360,7 +1360,7 @@ module RightAws
|
|
1360
1360
|
end
|
1361
1361
|
end
|
1362
1362
|
|
1363
|
-
class QEc2RegisterImageParser <
|
1363
|
+
class QEc2RegisterImageParser < AwsParser #:nodoc:
|
1364
1364
|
def tagend(name)
|
1365
1365
|
@result = @text if name == 'imageId'
|
1366
1366
|
end
|
@@ -1370,7 +1370,7 @@ module RightAws
|
|
1370
1370
|
# PARSERS: Image Attribute
|
1371
1371
|
#-----------------------------------------------------------------
|
1372
1372
|
|
1373
|
-
class QEc2DescribeImageAttributeParser <
|
1373
|
+
class QEc2DescribeImageAttributeParser < AwsParser #:nodoc:
|
1374
1374
|
def tagstart(name, attributes)
|
1375
1375
|
case name
|
1376
1376
|
when 'launchPermission'
|
@@ -1403,7 +1403,7 @@ module RightAws
|
|
1403
1403
|
# PARSERS: Instances
|
1404
1404
|
#-----------------------------------------------------------------
|
1405
1405
|
|
1406
|
-
class QEc2DescribeInstancesParser <
|
1406
|
+
class QEc2DescribeInstancesParser < AwsParser #:nodoc:
|
1407
1407
|
def tagstart(name, attributes)
|
1408
1408
|
# DescribeInstances property
|
1409
1409
|
if (name == 'item' && @xmlpath == 'DescribeInstancesResponse/reservationSet') ||
|
@@ -1465,13 +1465,13 @@ module RightAws
|
|
1465
1465
|
end
|
1466
1466
|
end
|
1467
1467
|
|
1468
|
-
class QEc2ConfirmProductInstanceParser <
|
1468
|
+
class QEc2ConfirmProductInstanceParser < AwsParser #:nodoc:
|
1469
1469
|
def tagend(name)
|
1470
1470
|
@result = @text if name == 'ownerId'
|
1471
1471
|
end
|
1472
1472
|
end
|
1473
1473
|
|
1474
|
-
class QEc2TerminateInstancesParser <
|
1474
|
+
class QEc2TerminateInstancesParser < AwsParser #:nodoc:
|
1475
1475
|
def tagstart(name, attributes)
|
1476
1476
|
@instance = {} if name == 'item'
|
1477
1477
|
end
|
@@ -1498,7 +1498,7 @@ module RightAws
|
|
1498
1498
|
# PARSERS: Console
|
1499
1499
|
#-----------------------------------------------------------------
|
1500
1500
|
|
1501
|
-
class QEc2GetConsoleOutputParser <
|
1501
|
+
class QEc2GetConsoleOutputParser < AwsParser #:nodoc:
|
1502
1502
|
def tagend(name)
|
1503
1503
|
case name
|
1504
1504
|
when 'instanceId' then @result[:aws_instance_id] = @text
|
@@ -1515,7 +1515,7 @@ module RightAws
|
|
1515
1515
|
#-----------------------------------------------------------------
|
1516
1516
|
# Instances: Wondows related part
|
1517
1517
|
#-----------------------------------------------------------------
|
1518
|
-
class QEc2DescribeBundleTasksParser <
|
1518
|
+
class QEc2DescribeBundleTasksParser < AwsParser #:nodoc:
|
1519
1519
|
def tagstart(name, attributes)
|
1520
1520
|
@bundle = {} if name == 'item'
|
1521
1521
|
end
|
@@ -1540,7 +1540,7 @@ module RightAws
|
|
1540
1540
|
end
|
1541
1541
|
end
|
1542
1542
|
|
1543
|
-
class QEc2BundleInstanceParser <
|
1543
|
+
class QEc2BundleInstanceParser < AwsParser #:nodoc:
|
1544
1544
|
def tagend(name)
|
1545
1545
|
case name
|
1546
1546
|
# when 'requestId' then @result[:request_id] = @text
|
@@ -1565,13 +1565,13 @@ module RightAws
|
|
1565
1565
|
# PARSERS: Elastic IPs
|
1566
1566
|
#-----------------------------------------------------------------
|
1567
1567
|
|
1568
|
-
class QEc2AllocateAddressParser <
|
1568
|
+
class QEc2AllocateAddressParser < AwsParser #:nodoc:
|
1569
1569
|
def tagend(name)
|
1570
1570
|
@result = @text if name == 'publicIp'
|
1571
1571
|
end
|
1572
1572
|
end
|
1573
1573
|
|
1574
|
-
class QEc2DescribeAddressesParser <
|
1574
|
+
class QEc2DescribeAddressesParser < AwsParser #:nodoc:
|
1575
1575
|
def tagstart(name, attributes)
|
1576
1576
|
@address = {} if name == 'item'
|
1577
1577
|
end
|
@@ -1591,7 +1591,7 @@ module RightAws
|
|
1591
1591
|
# PARSERS: AvailabilityZones
|
1592
1592
|
#-----------------------------------------------------------------
|
1593
1593
|
|
1594
|
-
class QEc2DescribeAvailabilityZonesParser <
|
1594
|
+
class QEc2DescribeAvailabilityZonesParser < AwsParser #:nodoc:
|
1595
1595
|
def tagstart(name, attributes)
|
1596
1596
|
@zone = {} if name == 'item'
|
1597
1597
|
end
|
@@ -1612,7 +1612,7 @@ module RightAws
|
|
1612
1612
|
# PARSERS: Regions
|
1613
1613
|
#-----------------------------------------------------------------
|
1614
1614
|
|
1615
|
-
class QEc2DescribeRegionsParser <
|
1615
|
+
class QEc2DescribeRegionsParser < AwsParser #:nodoc:
|
1616
1616
|
def tagend(name)
|
1617
1617
|
@result << @text if name == 'regionName'
|
1618
1618
|
end
|
@@ -1625,7 +1625,7 @@ module RightAws
|
|
1625
1625
|
# PARSERS: EBS - Volumes
|
1626
1626
|
#-----------------------------------------------------------------
|
1627
1627
|
|
1628
|
-
class QEc2CreateVolumeParser <
|
1628
|
+
class QEc2CreateVolumeParser < AwsParser #:nodoc:
|
1629
1629
|
def tagend(name)
|
1630
1630
|
case name
|
1631
1631
|
when 'volumeId' then @result[:aws_id] = @text
|
@@ -1641,7 +1641,7 @@ module RightAws
|
|
1641
1641
|
end
|
1642
1642
|
end
|
1643
1643
|
|
1644
|
-
class QEc2AttachAndDetachVolumeParser <
|
1644
|
+
class QEc2AttachAndDetachVolumeParser < AwsParser #:nodoc:
|
1645
1645
|
def tagend(name)
|
1646
1646
|
case name
|
1647
1647
|
when 'volumeId' then @result[:aws_id] = @text
|
@@ -1656,7 +1656,7 @@ module RightAws
|
|
1656
1656
|
end
|
1657
1657
|
end
|
1658
1658
|
|
1659
|
-
class QEc2DescribeVolumesParser <
|
1659
|
+
class QEc2DescribeVolumesParser < AwsParser #:nodoc:
|
1660
1660
|
def tagstart(name, attributes)
|
1661
1661
|
case name
|
1662
1662
|
when 'item'
|
@@ -1698,7 +1698,7 @@ module RightAws
|
|
1698
1698
|
# PARSERS: EBS - Snapshots
|
1699
1699
|
#-----------------------------------------------------------------
|
1700
1700
|
|
1701
|
-
class QEc2DescribeSnapshotsParser <
|
1701
|
+
class QEc2DescribeSnapshotsParser < AwsParser #:nodoc:
|
1702
1702
|
def tagstart(name, attributes)
|
1703
1703
|
@snapshot = {} if name == 'item'
|
1704
1704
|
end
|
@@ -1717,7 +1717,7 @@ module RightAws
|
|
1717
1717
|
end
|
1718
1718
|
end
|
1719
1719
|
|
1720
|
-
class QEc2CreateSnapshotParser <
|
1720
|
+
class QEc2CreateSnapshotParser < AwsParser #:nodoc:
|
1721
1721
|
def tagend(name)
|
1722
1722
|
case name
|
1723
1723
|
when 'volumeId' then @result[:aws_volume_id] = @text
|
@@ -1733,5 +1733,7 @@ module RightAws
|
|
1733
1733
|
end
|
1734
1734
|
|
1735
1735
|
end
|
1736
|
-
|
1736
|
+
|
1737
1737
|
end
|
1738
|
+
|
1739
|
+
|