aws 2.2.5 → 2.2.6
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/aws.rb +1 -0
- data/lib/awsbase/aws_response_array.rb +30 -0
- data/lib/awsbase/right_awsbase.rb +63 -33
- data/lib/rds/rds.rb +40 -24
- data/test/rds/test_rds.rb +65 -53
- metadata +3 -2
data/lib/aws.rb
CHANGED
@@ -16,6 +16,7 @@ $:.unshift(File.dirname(__FILE__))
|
|
16
16
|
require 'awsbase/benchmark_fix'
|
17
17
|
require 'awsbase/support'
|
18
18
|
require 'awsbase/right_awsbase'
|
19
|
+
require 'awsbase/aws_response_array'
|
19
20
|
require 'ec2/right_ec2'
|
20
21
|
require 'ec2/right_mon_interface'
|
21
22
|
require 's3/right_s3_interface'
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Aws
|
2
|
+
|
3
|
+
# This class is a special array to hold a bit of extra information about a response like:
|
4
|
+
# <ResponseMetadata>
|
5
|
+
# <RequestId>4f1fae46-bf3d-11de-a88b-7b5b3d23b3a7</RequestId>
|
6
|
+
# </ResponseMetadata>
|
7
|
+
#
|
8
|
+
# Which can be accessed directly from the array using array.response_metadata
|
9
|
+
#
|
10
|
+
class AwsResponseArray < Array
|
11
|
+
|
12
|
+
attr_accessor :response_metadata
|
13
|
+
|
14
|
+
def initialize(response_metadata)
|
15
|
+
@response_metadata = response_metadata
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
|
20
|
+
# Used when pulling out a single response object
|
21
|
+
class AwsResponseObjectHash < Hash
|
22
|
+
|
23
|
+
attr_accessor :response_metadata
|
24
|
+
|
25
|
+
def initialize(response_metadata)
|
26
|
+
@response_metadata = response_metadata
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
end
|
@@ -28,6 +28,7 @@ module Aws
|
|
28
28
|
require 'cgi'
|
29
29
|
require 'uri'
|
30
30
|
require 'xmlsimple'
|
31
|
+
require 'active_support'
|
31
32
|
|
32
33
|
class AwsUtils #:nodoc:
|
33
34
|
@@digest1 = OpenSSL::Digest::Digest.new("sha1")
|
@@ -321,15 +322,16 @@ module Aws
|
|
321
322
|
end
|
322
323
|
|
323
324
|
# This is the direction we should head instead of writing our own parsers for everything, much simpler
|
325
|
+
# params:
|
326
|
+
# - :group_tags => hash of indirection to eliminate, see: http://xml-simple.rubyforge.org/
|
327
|
+
# - :force_array => true for all or an array of tag names to force
|
328
|
+
# - :pull_out_array => an array of levels to dig into when generating return value (see rds.rb for example)
|
324
329
|
def request_info_xml_simple(connection_name, lib_params, request, logger, params = {})
|
325
330
|
|
326
331
|
@connection = get_conn(connection_name, lib_params, logger)
|
327
332
|
@last_request = request[:request]
|
328
333
|
@last_response = nil
|
329
334
|
|
330
|
-
response = nil
|
331
|
-
blockexception = nil
|
332
|
-
|
333
335
|
response = @connection.request(request)
|
334
336
|
# benchblock.service.add!{ response = @connection.request(request) }
|
335
337
|
# check response for errors...
|
@@ -339,7 +341,51 @@ module Aws
|
|
339
341
|
# benchblock.xml.add! { parser.parse(response) }
|
340
342
|
# return parser.result
|
341
343
|
force_array = params[:force_array] || false
|
342
|
-
|
344
|
+
# Force_array and group_tags don't work nice together so going to force array manually
|
345
|
+
xml_simple_options = {"KeyToSymbol"=>false, 'ForceArray' => false}
|
346
|
+
xml_simple_options["GroupTags"] = params[:group_tags] if params[:group_tags]
|
347
|
+
|
348
|
+
# { 'GroupTags' => { 'searchpath' => 'dir' }
|
349
|
+
# 'ForceArray' => %r(_list$)
|
350
|
+
parsed = XmlSimple.xml_in(response.body, xml_simple_options)
|
351
|
+
# todo: we may want to consider stripping off a couple of layers when doing this, for instance:
|
352
|
+
# <DescribeDBInstancesResponse xmlns="http://rds.amazonaws.com/admin/2009-10-16/">
|
353
|
+
# <DescribeDBInstancesResult>
|
354
|
+
# <DBInstances>
|
355
|
+
# <DBInstance>....
|
356
|
+
# Strip it off and only return an array or hash of <DBInstance>'s (hash by identifier).
|
357
|
+
# would have to be able to make the RequestId available somehow though, perhaps some special array subclass which included that?
|
358
|
+
unless force_array.is_a? Array
|
359
|
+
force_array = []
|
360
|
+
end
|
361
|
+
parsed = symbolize(parsed, force_array)
|
362
|
+
# puts 'parsed=' + parsed.inspect
|
363
|
+
if params[:pull_out_array]
|
364
|
+
ret = Aws::AwsResponseArray.new(parsed[:response_metadata])
|
365
|
+
level_hash = parsed
|
366
|
+
params[:pull_out_array].each do |x|
|
367
|
+
level_hash = level_hash[x]
|
368
|
+
end
|
369
|
+
if level_hash.is_a? Hash # When there's only one
|
370
|
+
ret << level_hash
|
371
|
+
else # should be array
|
372
|
+
level_hash.each do |x|
|
373
|
+
ret << x
|
374
|
+
end
|
375
|
+
end
|
376
|
+
elsif params[:pull_out_single]
|
377
|
+
# returns a single object
|
378
|
+
ret = AwsResponseObjectHash.new(parsed[:response_metadata])
|
379
|
+
level_hash = parsed
|
380
|
+
params[:pull_out_single].each do |x|
|
381
|
+
level_hash = level_hash[x]
|
382
|
+
end
|
383
|
+
ret.merge!(level_hash)
|
384
|
+
else
|
385
|
+
ret = parsed
|
386
|
+
end
|
387
|
+
return ret
|
388
|
+
|
343
389
|
else
|
344
390
|
@error_handler = AWSErrorHandler.new(self, nil, :errors_list => self.class.amazon_problems) unless @error_handler
|
345
391
|
check_result = @error_handler.check(request)
|
@@ -353,38 +399,22 @@ module Aws
|
|
353
399
|
|
354
400
|
end
|
355
401
|
|
356
|
-
|
357
|
-
=
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
if signature_version == '2'
|
368
|
-
# resign the request because HTTP verb is included into signature
|
369
|
-
service_params = signed_service_params(@aws_secret_access_key, service_hash, :post, @params[:server], @params[:service])
|
402
|
+
def symbolize(hash, force_array)
|
403
|
+
ret = {}
|
404
|
+
hash.keys.each do |key|
|
405
|
+
val = hash[key]
|
406
|
+
if val.is_a? Hash
|
407
|
+
val = symbolize(val, force_array)
|
408
|
+
if force_array.include? key
|
409
|
+
val = [val]
|
410
|
+
end
|
411
|
+
elsif val.is_a? Array
|
412
|
+
val = val.collect { |x| symbolize(x, force_array) }
|
370
413
|
end
|
371
|
-
|
372
|
-
request.body = service_params
|
373
|
-
request['Content-Type'] = 'application/x-www-form-urlencoded'
|
374
|
-
else
|
375
|
-
request = Net::HTTP::Get.new("#{@params[:service]}?#{service_params}")
|
414
|
+
ret[key.underscore.to_sym] = val
|
376
415
|
end
|
377
|
-
|
378
|
-
#puts "\n\n --------------- QUERY REQUEST TO AWS -------------- \n\n"
|
379
|
-
#puts "#{@params[:service]}?#{service_params}\n\n"
|
380
|
-
|
381
|
-
# prepare output hash
|
382
|
-
{ :request => request,
|
383
|
-
:server => @params[:server],
|
384
|
-
:port => @params[:port],
|
385
|
-
:protocol => @params[:protocol] }
|
416
|
+
ret
|
386
417
|
end
|
387
|
-
=end
|
388
418
|
|
389
419
|
# Returns +true+ if the describe_xxx responses are being cached
|
390
420
|
def caching?
|
data/lib/rds/rds.rb
CHANGED
@@ -51,6 +51,24 @@ module Aws
|
|
51
51
|
generate_request2(@aws_access_key_id, @aws_secret_access_key, action, @@api, @params, params)
|
52
52
|
end
|
53
53
|
|
54
|
+
def do_request(action, params, options={})
|
55
|
+
link = generate_request(action, params)
|
56
|
+
resp = request_info_xml_simple(:rds_connection, @params, link, @logger,
|
57
|
+
:group_tags=>{"DBInstances"=>"DBInstance",
|
58
|
+
"DBParameterGroups"=>"DBParameterGroup",
|
59
|
+
"DBSecurityGroups"=>"DBSecurityGroup",
|
60
|
+
"EC2SecurityGroups"=>"EC2SecurityGroup",
|
61
|
+
"IPRanges"=>"IPRange"},
|
62
|
+
:force_array=>["DBInstances",
|
63
|
+
"DBParameterGroups",
|
64
|
+
"DBSecurityGroups",
|
65
|
+
"EC2SecurityGroups",
|
66
|
+
"IPRanges"],
|
67
|
+
:pull_out_array=>options[:pull_out_array],
|
68
|
+
:pull_out_single=>options[:pull_out_single],
|
69
|
+
:wrapper=>options[:wrapper])
|
70
|
+
end
|
71
|
+
|
54
72
|
|
55
73
|
#-----------------------------------------------------------------
|
56
74
|
# REQUESTS
|
@@ -81,8 +99,7 @@ module Aws
|
|
81
99
|
|
82
100
|
@logger.info("Creating DB Instance called #{identifier}")
|
83
101
|
|
84
|
-
link =
|
85
|
-
resp = request_info_xml_simple(:rds_connection, @params, link, @logger)
|
102
|
+
link = do_request("CreateDBInstance", params, :pull_out_single=>[:create_db_instance_result, :db_instance])
|
86
103
|
|
87
104
|
rescue Exception
|
88
105
|
on_exception
|
@@ -93,14 +110,16 @@ module Aws
|
|
93
110
|
# DBInstanceIdentifier
|
94
111
|
# MaxRecords
|
95
112
|
# Marker
|
113
|
+
#
|
114
|
+
# Returns array of instances as hashes.
|
115
|
+
# Response metadata can be retreived by calling array.response_metadata on the returned array.
|
96
116
|
def describe_db_instances(options={})
|
97
117
|
params = {}
|
98
|
-
params['DBInstanceIdentifier'] = options[:
|
99
|
-
params['MaxRecords'] = options[:
|
100
|
-
params['Marker'] = options[:
|
118
|
+
params['DBInstanceIdentifier'] = options[:db_instance_identifier] if options[:db_instance_identifier]
|
119
|
+
params['MaxRecords'] = options[:max_records] if options[:max_records]
|
120
|
+
params['Marker'] = options[:marker] if options[:marker]
|
101
121
|
|
102
|
-
|
103
|
-
resp = request_info_xml_simple(:rds_connection, @params, link, @logger)
|
122
|
+
resp = do_request("DescribeDBInstances", params, :pull_out_array=>[:describe_db_instances_result, :db_instances])
|
104
123
|
|
105
124
|
rescue Exception
|
106
125
|
on_exception
|
@@ -120,21 +139,20 @@ module Aws
|
|
120
139
|
params['SkipFinalSnapshot'] = true
|
121
140
|
end
|
122
141
|
|
123
|
-
link =
|
124
|
-
resp = request_info_xml_simple(:rds_connection, @params, link, @logger)
|
142
|
+
link = do_request("DeleteDBInstance", params, :pull_out_single=>[:delete_db_instance_result, :db_instance])
|
125
143
|
|
126
144
|
rescue Exception
|
127
145
|
on_exception
|
128
146
|
end
|
129
147
|
|
130
148
|
|
131
|
-
def
|
149
|
+
def create_db_security_group(group_name, description, options={})
|
132
150
|
params = {}
|
133
151
|
params['DBSecurityGroupName'] = group_name
|
134
152
|
params['DBSecurityGroupDescription'] = description
|
135
|
-
|
136
|
-
link =
|
137
|
-
|
153
|
+
|
154
|
+
link = do_request("CreateDBSecurityGroup", params, :pull_out_single => [:create_db_security_group_result, :db_security_group])
|
155
|
+
|
138
156
|
rescue Exception
|
139
157
|
on_exception
|
140
158
|
end
|
@@ -143,8 +161,9 @@ module Aws
|
|
143
161
|
def delete_db_security_group(group_name, options={})
|
144
162
|
params = {}
|
145
163
|
params['DBSecurityGroupName'] = group_name
|
146
|
-
|
147
|
-
|
164
|
+
|
165
|
+
link = do_request("DeleteDBSecurityGroup", params)
|
166
|
+
|
148
167
|
rescue Exception
|
149
168
|
on_exception
|
150
169
|
end
|
@@ -155,10 +174,9 @@ module Aws
|
|
155
174
|
params['DBSecurityGroupName'] = options[:DBSecurityGroupName] if options[:DBSecurityGroupName]
|
156
175
|
params['MaxRecords'] = options[:MaxRecords] if options[:MaxRecords]
|
157
176
|
|
158
|
-
|
177
|
+
link = do_request("DescribeDBSecurityGroups", params, :pull_out_array=>[:describe_db_security_groups_result, :db_security_groups], :wrapper=>:db_security_group)
|
178
|
+
|
159
179
|
|
160
|
-
link = generate_request("DescribeDBSecurityGroups", params)
|
161
|
-
resp = request_info_xml_simple(:rds_connection, @params, link, @logger, :force_array => force_array)
|
162
180
|
rescue Exception
|
163
181
|
on_exception
|
164
182
|
end
|
@@ -169,8 +187,7 @@ module Aws
|
|
169
187
|
params['DBSecurityGroupName'] = group_name
|
170
188
|
params['EC2SecurityGroupOwnerId'] = ec2_group_owner_id
|
171
189
|
params['EC2SecurityGroupName'] = ec2_group_name
|
172
|
-
link =
|
173
|
-
resp = request_info_xml_simple(:rds_connection, @params, link, @logger)
|
190
|
+
link = do_request("AuthorizeDBSecurityGroupIngress", params)
|
174
191
|
rescue Exception
|
175
192
|
on_exception
|
176
193
|
end
|
@@ -180,8 +197,7 @@ module Aws
|
|
180
197
|
params = {}
|
181
198
|
params['DBSecurityGroupName'] = group_name
|
182
199
|
params['CIDRIP'] = ip_range
|
183
|
-
link =
|
184
|
-
resp = request_info_xml_simple(:rds_connection, @params, link, @logger)
|
200
|
+
link = do_request("AuthorizeDBSecurityGroupIngress", params)
|
185
201
|
rescue Exception
|
186
202
|
on_exception
|
187
203
|
end
|
@@ -191,13 +207,13 @@ module Aws
|
|
191
207
|
params = {}
|
192
208
|
params['DBSecurityGroupName'] = group_name
|
193
209
|
params['CIDRIP'] = ip_range
|
194
|
-
link =
|
195
|
-
resp = request_info_xml_simple(:rds_connection, @params, link, @logger)
|
210
|
+
link = do_request("RevokeDBSecurityGroupIngress", params)
|
196
211
|
rescue Exception
|
197
212
|
on_exception
|
198
213
|
end
|
199
214
|
|
200
215
|
|
216
|
+
|
201
217
|
end
|
202
218
|
|
203
219
|
end
|
data/test/rds/test_rds.rb
CHANGED
@@ -15,7 +15,7 @@ class TestRds < Test::Unit::TestCase
|
|
15
15
|
@rds = Aws::Rds.new(TestCredentials.aws_access_key_id,
|
16
16
|
TestCredentials.aws_secret_access_key)
|
17
17
|
|
18
|
-
@identifier = 'test-db-
|
18
|
+
@identifier = 'test-db-instance1b'
|
19
19
|
# deleting this one....
|
20
20
|
#@identifier2 = 'my-db-instance2'
|
21
21
|
end
|
@@ -23,61 +23,69 @@ class TestRds < Test::Unit::TestCase
|
|
23
23
|
|
24
24
|
def test_01_create_db_instance
|
25
25
|
begin
|
26
|
-
db_instance3 = @rds.create_db_instance('
|
26
|
+
db_instance3 = @rds.create_db_instance('bad_test_key', "db.m1.small", 5, "master", "masterpass")
|
27
27
|
rescue => ex
|
28
28
|
#puts "msg=" + ex.message
|
29
29
|
#puts "response=" + ex.response
|
30
30
|
assert ex.message[0, "InvalidParameterValue".size] == "InvalidParameterValue"
|
31
31
|
end
|
32
32
|
|
33
|
-
|
33
|
+
db_instance = @rds.create_db_instance(@identifier, "db.m1.small", 5, "master", "masterpass")
|
34
|
+
assert db_instance[:db_instance_status] == "creating"
|
34
35
|
|
36
|
+
start = Time.now
|
35
37
|
tries=0
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
38
|
+
catch (:done) do
|
39
|
+
while tries < 100
|
40
|
+
instances = @rds.describe_db_instances
|
41
|
+
|
42
|
+
#puts "INSTANCES -----> " + instances.inspect
|
43
|
+
|
44
|
+
instances.each do |i|
|
45
|
+
db_status = i[:db_instance_status]
|
46
|
+
puts 'i=' + db_status.to_s
|
47
|
+
next unless i[:db_instance_identifier] == @identifier
|
48
|
+
throw :done if db_status == "available"
|
49
|
+
puts "Database not ready yet.... attempt #{tries.to_s} of 100, db state --> #{i[:db_instance_status].to_s}"
|
50
|
+
tries += 1
|
51
|
+
sleep 5
|
52
|
+
end
|
48
53
|
end
|
49
|
-
|
50
|
-
|
51
54
|
end
|
55
|
+
puts "Duration to start db instance: #{Time.now-start}"
|
52
56
|
end
|
53
57
|
|
54
58
|
|
55
59
|
def test_02_describe_db_instances
|
56
|
-
|
57
|
-
|
58
|
-
instances = instances_result["DescribeDBInstancesResult"]["DBInstances"]["DBInstance"]
|
59
|
-
|
60
|
-
|
60
|
+
instances = @rds.describe_db_instances
|
61
|
+
# puts "instances_result=" + instances_result.inspect
|
62
|
+
# instances = instances_result["DescribeDBInstancesResult"]["DBInstances"]["DBInstance"]
|
63
|
+
puts "instances count = " + instances.count.to_s
|
64
|
+
puts 'instances=' + instances.inspect
|
61
65
|
assert instances.size > 0
|
66
|
+
i_describe = nil
|
67
|
+
instances.each do |x|
|
68
|
+
i_describe = x if x[:db_instance_identifier] == @identifier
|
69
|
+
end
|
70
|
+
assert i_describe
|
71
|
+
|
72
|
+
puts 'response_metadata=' + instances.response_metadata.inspect
|
73
|
+
assert instances.response_metadata
|
74
|
+
assert instances.response_metadata[:request_id]
|
62
75
|
end
|
63
76
|
|
64
77
|
|
65
78
|
def test_03_describe_security_groups
|
66
|
-
|
67
|
-
|
68
|
-
security_groups=security_result["DescribeDBSecurityGroupsResult"]["DBSecurityGroups"]["DBSecurityGroup"]
|
79
|
+
security_groups = @rds.describe_db_security_groups()
|
80
|
+
puts "security_groups=" + security_groups.inspect
|
69
81
|
default_present = false
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
default_present=true
|
75
|
-
end
|
76
|
-
end
|
77
|
-
else
|
78
|
-
if security_groups["DBSecurityGroupName"]=="default"
|
82
|
+
assert security_groups.is_a?(Array)
|
83
|
+
security_groups.each do |security_group|
|
84
|
+
security_group.inspect
|
85
|
+
if security_group[:db_security_group_name] == "default"
|
79
86
|
default_present=true
|
80
87
|
end
|
88
|
+
assert security_group[:ec2_security_groups].is_a? Array
|
81
89
|
end
|
82
90
|
assert default_present
|
83
91
|
end
|
@@ -85,11 +93,13 @@ class TestRds < Test::Unit::TestCase
|
|
85
93
|
|
86
94
|
def test_04_authorize_security_groups_ingress
|
87
95
|
# Create
|
88
|
-
|
96
|
+
# security_groups = @rds.describe_db_security_groups
|
97
|
+
# @security_info = security_groups[0]
|
89
98
|
@rds.authorize_db_security_group_ingress_range("default", "122.122.122.122/12")
|
90
99
|
|
91
100
|
# Check
|
92
|
-
|
101
|
+
security_groups = @rds.describe_db_security_groups
|
102
|
+
@security_info = security_groups[0]
|
93
103
|
|
94
104
|
ip_found = @security_info.inspect.include? "122.122.122.122/12"
|
95
105
|
assert ip_found
|
@@ -97,31 +107,34 @@ class TestRds < Test::Unit::TestCase
|
|
97
107
|
|
98
108
|
|
99
109
|
def test_05_delete_db_instance
|
100
|
-
@rds.delete_db_instance(@identifier)
|
110
|
+
@rds.delete_db_instance(@identifier) # todo: can't delete unless it's in "available" state
|
101
111
|
#@rds.delete_db_instance(@identifier2)
|
102
112
|
sleep 3
|
103
113
|
|
104
|
-
|
114
|
+
instances = @rds.describe_db_instances(:db_instance_identifier=>@identifier)
|
105
115
|
#puts "instances_result=" + instances_result.inspect
|
106
116
|
|
107
|
-
|
108
|
-
|
109
|
-
|
117
|
+
instances.each do |i|
|
118
|
+
next unless i[:db_instance_identifier] == @identifier
|
119
|
+
db_status = i[:db_instance_status]
|
120
|
+
puts "Trying to delete and getting i[DBInstanceStatus] -----------> " + db_status
|
121
|
+
@rds.delete_db_instance(i[:db_instance_identifier]) if db_status == "available"
|
122
|
+
assert db_status == "deleting"
|
110
123
|
end
|
124
|
+
sleep 2
|
111
125
|
|
112
|
-
assert instances_result["DescribeDBInstancesResult"]["DBInstances"]["DBInstance"].size < 2
|
113
126
|
end
|
114
127
|
|
115
128
|
|
116
129
|
def test_06_create_security_groups
|
117
130
|
group_present=false
|
118
131
|
|
119
|
-
@rds.
|
132
|
+
@rds.create_db_security_group("new_sample_group", "new_sample_group_description")
|
120
133
|
|
121
|
-
|
134
|
+
security_groups = @rds.describe_db_security_groups
|
122
135
|
|
123
|
-
|
124
|
-
if (security_group[
|
136
|
+
security_groups.each do |security_group|
|
137
|
+
if (security_group[:db_security_group_name]=="new_sample_group")&&(security_group[:db_security_group_description]=="new_sample_group_description")
|
125
138
|
group_present = true
|
126
139
|
end
|
127
140
|
end
|
@@ -131,23 +144,22 @@ class TestRds < Test::Unit::TestCase
|
|
131
144
|
|
132
145
|
|
133
146
|
def test_07_revoking_security_groups_ingress
|
134
|
-
sleep 15
|
147
|
+
# sleep 15
|
135
148
|
@rds.revoke_db_security_group_ingress("default", "122.122.122.122/12")
|
136
149
|
sleep 2
|
137
|
-
|
138
|
-
revoking =
|
150
|
+
security_groups = @rds.describe_db_security_groups
|
151
|
+
revoking = security_groups[0].inspect.include? "revoking"
|
139
152
|
assert revoking
|
140
153
|
end
|
141
154
|
|
142
155
|
|
143
|
-
|
144
156
|
def test_08_delete_security_group
|
145
157
|
group_present=false
|
146
158
|
@rds.delete_db_security_group("new_sample_group")
|
147
159
|
sleep 2
|
148
|
-
|
149
|
-
|
150
|
-
if (security_group[
|
160
|
+
security_groups = @rds.describe_db_security_groups
|
161
|
+
security_groups.each do |security_group|
|
162
|
+
if (security_group[:db_security_group_name]=="new_sample_group")
|
151
163
|
group_present=true
|
152
164
|
end
|
153
165
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aws
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.2.
|
4
|
+
version: 2.2.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Travis Reeder
|
@@ -11,7 +11,7 @@ autorequire:
|
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
13
|
|
14
|
-
date: 2010-02-
|
14
|
+
date: 2010-02-15 00:00:00 -08:00
|
15
15
|
default_executable:
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
@@ -55,6 +55,7 @@ extra_rdoc_files:
|
|
55
55
|
files:
|
56
56
|
- lib/acf/right_acf_interface.rb
|
57
57
|
- lib/aws.rb
|
58
|
+
- lib/awsbase/aws_response_array.rb
|
58
59
|
- lib/awsbase/benchmark_fix.rb
|
59
60
|
- lib/awsbase/right_awsbase.rb
|
60
61
|
- lib/awsbase/support.rb
|