aws 2.2.4 → 2.2.5
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/lib/awsbase/right_awsbase.rb +5 -3
- data/lib/rds/rds.rb +15 -3
- data/test/rds/test_rds.rb +114 -26
- metadata +2 -2
@@ -321,12 +321,13 @@ module Aws
|
|
321
321
|
end
|
322
322
|
|
323
323
|
# This is the direction we should head instead of writing our own parsers for everything, much simpler
|
324
|
-
def request_info_xml_simple(connection_name, lib_params, request, logger)
|
324
|
+
def request_info_xml_simple(connection_name, lib_params, request, logger, params = {})
|
325
325
|
|
326
326
|
@connection = get_conn(connection_name, lib_params, logger)
|
327
327
|
@last_request = request[:request]
|
328
328
|
@last_response = nil
|
329
|
-
|
329
|
+
|
330
|
+
response = nil
|
330
331
|
blockexception = nil
|
331
332
|
|
332
333
|
response = @connection.request(request)
|
@@ -337,7 +338,8 @@ module Aws
|
|
337
338
|
@error_handler = nil
|
338
339
|
# benchblock.xml.add! { parser.parse(response) }
|
339
340
|
# return parser.result
|
340
|
-
|
341
|
+
force_array = params[:force_array] || false
|
342
|
+
return XmlSimple.xml_in(response.body, {"KeyToSymbol"=>false, 'ForceArray' => force_array})
|
341
343
|
else
|
342
344
|
@error_handler = AWSErrorHandler.new(self, nil, :errors_list => self.class.amazon_problems) unless @error_handler
|
343
345
|
check_result = @error_handler.check(request)
|
data/lib/rds/rds.rb
CHANGED
@@ -1,6 +1,4 @@
|
|
1
1
|
module Aws
|
2
|
-
|
3
|
-
|
4
2
|
require 'xmlsimple'
|
5
3
|
|
6
4
|
# API Reference: http://docs.amazonwebservices.com/AmazonRDS/latest/APIReference/
|
@@ -142,12 +140,25 @@ module Aws
|
|
142
140
|
end
|
143
141
|
|
144
142
|
|
143
|
+
def delete_db_security_group(group_name, options={})
|
144
|
+
params = {}
|
145
|
+
params['DBSecurityGroupName'] = group_name
|
146
|
+
link = generate_request("DeleteDBSecurityGroup", params)
|
147
|
+
resp = request_info_xml_simple(:rds_connection, @params, link, @logger)
|
148
|
+
rescue Exception
|
149
|
+
on_exception
|
150
|
+
end
|
151
|
+
|
152
|
+
|
145
153
|
def describe_db_security_groups(options={})
|
146
154
|
params = {}
|
147
155
|
params['DBSecurityGroupName'] = options[:DBSecurityGroupName] if options[:DBSecurityGroupName]
|
148
156
|
params['MaxRecords'] = options[:MaxRecords] if options[:MaxRecords]
|
157
|
+
|
158
|
+
force_array = options[:force_array].nil? ? false : options[:force_array]
|
159
|
+
|
149
160
|
link = generate_request("DescribeDBSecurityGroups", params)
|
150
|
-
resp = request_info_xml_simple(:rds_connection, @params, link, @logger)
|
161
|
+
resp = request_info_xml_simple(:rds_connection, @params, link, @logger, :force_array => force_array)
|
151
162
|
rescue Exception
|
152
163
|
on_exception
|
153
164
|
end
|
@@ -186,6 +197,7 @@ module Aws
|
|
186
197
|
on_exception
|
187
198
|
end
|
188
199
|
|
200
|
+
|
189
201
|
end
|
190
202
|
|
191
203
|
end
|
data/test/rds/test_rds.rb
CHANGED
@@ -4,7 +4,7 @@ require 'rds/rds'
|
|
4
4
|
require 'pp'
|
5
5
|
require File.dirname(__FILE__) + '/../test_credentials.rb'
|
6
6
|
|
7
|
-
class
|
7
|
+
class TestRds < Test::Unit::TestCase
|
8
8
|
|
9
9
|
# Some of RightEc2 instance methods concerning instance launching and image registration
|
10
10
|
# are not tested here due to their potentially risk.
|
@@ -15,56 +15,144 @@ class TestElb < 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 = '
|
19
|
-
|
20
|
-
|
18
|
+
@identifier = 'test-db-instance1'
|
19
|
+
# deleting this one....
|
20
|
+
#@identifier2 = 'my-db-instance2'
|
21
21
|
end
|
22
22
|
|
23
|
-
def test_01_create_db_instance
|
24
|
-
|
25
23
|
|
24
|
+
def test_01_create_db_instance
|
26
25
|
begin
|
27
|
-
|
26
|
+
db_instance3 = @rds.create_db_instance('right_ec2_awesome_test_key', "db.m1.small", 5, "master", "masterpass")
|
28
27
|
rescue => ex
|
29
|
-
puts "msg=" + ex.message
|
30
|
-
puts "response=" + ex.response
|
31
|
-
assert ex.message[0,"InvalidParameterValue".size] == "InvalidParameterValue"
|
28
|
+
#puts "msg=" + ex.message
|
29
|
+
#puts "response=" + ex.response
|
30
|
+
assert ex.message[0, "InvalidParameterValue".size] == "InvalidParameterValue"
|
32
31
|
end
|
33
32
|
|
34
|
-
db_instance = @rds.create_db_instance(@identifier, "db.m1.small", 5, "master", "masterpass")
|
35
|
-
|
33
|
+
#db_instance = @rds.create_db_instance(@identifier, "db.m1.small", 5, "master", "masterpass")
|
34
|
+
|
35
|
+
tries=0
|
36
|
+
while tries < 100
|
37
|
+
instances_result = @rds.describe_db_instances
|
38
|
+
instances = instances_result["DescribeDBInstancesResult"]["DBInstances"]["DBInstance"]
|
36
39
|
|
37
|
-
|
38
|
-
puts 'db_instance2=' + db_instance2.inspect
|
40
|
+
#puts "INSTANCES -----> " + instances.inspect
|
39
41
|
|
40
|
-
|
41
|
-
|
42
|
+
instances.each do |i|
|
43
|
+
next unless i["DBInstanceIdentifier"] == @identifier
|
44
|
+
break if i["DBInstanceStatus"] == "available"
|
45
|
+
puts "Database not ready yet.... attempt #{tries.to_s} of 100, db state --> #{i["DBInstanceStatus"].to_s}"
|
46
|
+
tries += 1
|
47
|
+
sleep 5
|
48
|
+
end
|
42
49
|
|
50
|
+
|
51
|
+
end
|
43
52
|
end
|
44
53
|
|
54
|
+
|
45
55
|
def test_02_describe_db_instances
|
46
56
|
instances_result = @rds.describe_db_instances
|
47
|
-
puts "instances_result=" + instances_result.inspect
|
57
|
+
#puts "instances_result=" + instances_result.inspect
|
48
58
|
instances = instances_result["DescribeDBInstancesResult"]["DBInstances"]["DBInstance"]
|
49
|
-
puts
|
50
|
-
|
59
|
+
#puts "\n\ninstances count = " + instances.count.to_s + " \n\n "
|
60
|
+
|
61
|
+
assert instances.size > 0
|
51
62
|
end
|
52
63
|
|
53
|
-
def test_06_delete_db_instance
|
54
64
|
|
55
|
-
|
56
|
-
@rds.
|
65
|
+
def test_03_describe_security_groups
|
66
|
+
security_result = @rds.describe_db_security_groups()
|
67
|
+
#puts "security_result=" + security_result.inspect
|
68
|
+
security_groups=security_result["DescribeDBSecurityGroupsResult"]["DBSecurityGroups"]["DBSecurityGroup"]
|
69
|
+
default_present = false
|
70
|
+
if security_groups.is_a?(Array)
|
71
|
+
security_groups.each do |security_group|
|
72
|
+
security_group.inspect
|
73
|
+
if security_group["DBSecurityGroupName"]=="default"
|
74
|
+
default_present=true
|
75
|
+
end
|
76
|
+
end
|
77
|
+
else
|
78
|
+
if security_groups["DBSecurityGroupName"]=="default"
|
79
|
+
default_present=true
|
80
|
+
end
|
81
|
+
end
|
82
|
+
assert default_present
|
83
|
+
end
|
57
84
|
|
58
|
-
|
85
|
+
|
86
|
+
def test_04_authorize_security_groups_ingress
|
87
|
+
# Create
|
88
|
+
@security_info = @rds.describe_db_security_groups({:force_array => ["DBSecurityGroup", "IPRange"]})["DescribeDBSecurityGroupsResult"]["DBSecurityGroups"]["DBSecurityGroup"]
|
89
|
+
@rds.authorize_db_security_group_ingress_range("default", "122.122.122.122/12")
|
90
|
+
|
91
|
+
# Check
|
92
|
+
@security_info = @rds.describe_db_security_groups({:force_array => ["DBSecurityGroup", "IPRange"]})["DescribeDBSecurityGroupsResult"]["DBSecurityGroups"]["DBSecurityGroup"]
|
93
|
+
|
94
|
+
ip_found = @security_info.inspect.include? "122.122.122.122/12"
|
95
|
+
assert ip_found
|
96
|
+
end
|
97
|
+
|
98
|
+
|
99
|
+
def test_05_delete_db_instance
|
100
|
+
@rds.delete_db_instance(@identifier)
|
101
|
+
#@rds.delete_db_instance(@identifier2)
|
102
|
+
sleep 3
|
59
103
|
|
60
104
|
instances_result = @rds.describe_db_instances
|
61
|
-
puts "instances_result=" + instances_result.inspect
|
105
|
+
#puts "instances_result=" + instances_result.inspect
|
106
|
+
|
62
107
|
instances_result["DescribeDBInstancesResult"]["DBInstances"]["DBInstance"].each do |i|
|
108
|
+
puts "Trying to delete and getting i[DBInstanceStatus] -----------> " + i["DBInstanceStatus"]
|
63
109
|
assert i["DBInstanceStatus"] == "deleting"
|
64
110
|
end
|
65
|
-
# assert instances_result["DescribeDBInstancesResult"]["DBInstances"]["DBInstance"].size == 0
|
66
111
|
|
112
|
+
assert instances_result["DescribeDBInstancesResult"]["DBInstances"]["DBInstance"].size < 2
|
113
|
+
end
|
114
|
+
|
115
|
+
|
116
|
+
def test_06_create_security_groups
|
117
|
+
group_present=false
|
118
|
+
|
119
|
+
@rds.create_db_security_groups("new_sample_group", "new_sample_group_description")
|
120
|
+
|
121
|
+
@security_info = @rds.describe_db_security_groups({:force_array => ["DBSecurityGroup", "IPRange"]})["DescribeDBSecurityGroupsResult"]["DBSecurityGroups"]["DBSecurityGroup"]
|
122
|
+
|
123
|
+
@security_info.each do |security_group|
|
124
|
+
if (security_group["DBSecurityGroupName"]=="new_sample_group")&&(security_group["DBSecurityGroupDescription"]=="new_sample_group_description")
|
125
|
+
group_present = true
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
assert group_present
|
130
|
+
end
|
131
|
+
|
132
|
+
|
133
|
+
def test_07_revoking_security_groups_ingress
|
134
|
+
sleep 15
|
135
|
+
@rds.revoke_db_security_group_ingress("default", "122.122.122.122/12")
|
136
|
+
sleep 2
|
137
|
+
@security_info = @rds.describe_db_security_groups({:force_array => ["DBSecurityGroup", "IPRange"]})["DescribeDBSecurityGroupsResult"]["DBSecurityGroups"]["DBSecurityGroup"]
|
138
|
+
revoking = @security_info[0].inspect.include? "revoking"
|
139
|
+
assert revoking
|
140
|
+
end
|
141
|
+
|
142
|
+
|
143
|
+
|
144
|
+
def test_08_delete_security_group
|
145
|
+
group_present=false
|
146
|
+
@rds.delete_db_security_group("new_sample_group")
|
147
|
+
sleep 2
|
148
|
+
@security_info = @rds.describe_db_security_groups({:force_array => ["DBSecurityGroup", "IPRange"]})["DescribeDBSecurityGroupsResult"]["DBSecurityGroups"]["DBSecurityGroup"]
|
149
|
+
@security_info.each do |security_group|
|
150
|
+
if (security_group["DBSecurityGroupName"]=="new_sample_group")
|
151
|
+
group_present=true
|
152
|
+
end
|
153
|
+
end
|
154
|
+
assert !group_present
|
67
155
|
end
|
68
156
|
|
69
157
|
|
70
|
-
end
|
158
|
+
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.5
|
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-13 00:00:00 -08:00
|
15
15
|
default_executable:
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|