aws 1.11.38 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
|