fog-aws 0.8.1 → 0.9.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.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.travis.yml +4 -0
- data/README.md +1 -1
- data/gemfiles/Gemfile-edge +5 -0
- data/lib/fog/aws/models/compute/security_group.rb +4 -4
- data/lib/fog/aws/models/rds/cluster.rb +93 -0
- data/lib/fog/aws/models/rds/cluster_snapshots.rb +48 -0
- data/lib/fog/aws/models/rds/clusters.rb +23 -0
- data/lib/fog/aws/models/rds/parameters.rb +15 -0
- data/lib/fog/aws/models/rds/server.rb +29 -11
- data/lib/fog/aws/models/rds/servers.rb +4 -0
- data/lib/fog/aws/models/rds/snapshot.rb +36 -17
- data/lib/fog/aws/parsers/rds/create_db_cluster.rb +32 -0
- data/lib/fog/aws/parsers/rds/create_db_cluster_snapshot.rb +33 -0
- data/lib/fog/aws/parsers/rds/db_cluster_parser.rb +71 -0
- data/lib/fog/aws/parsers/rds/db_cluster_snapshot_parser.rb +32 -0
- data/lib/fog/aws/parsers/rds/db_parameter_parser.rb +30 -0
- data/lib/fog/aws/parsers/rds/db_parser.rb +2 -1
- data/lib/fog/aws/parsers/rds/delete_db_cluster.rb +32 -0
- data/lib/fog/aws/parsers/rds/delete_db_cluster_snapshot.rb +32 -0
- data/lib/fog/aws/parsers/rds/describe_db_cluster_snapshots.rb +34 -0
- data/lib/fog/aws/parsers/rds/describe_db_clusters.rb +34 -0
- data/lib/fog/aws/parsers/rds/describe_engine_default_parameters.rb +34 -0
- data/lib/fog/aws/parsers/rds/restore_db_instance_from_db_snapshot.rb +2 -2
- data/lib/fog/aws/parsers/rds/snapshot_parser.rb +6 -13
- data/lib/fog/aws/rds.rb +25 -0
- data/lib/fog/aws/requests/compute/describe_availability_zones.rb +5 -2
- data/lib/fog/aws/requests/rds/create_db_cluster.rb +98 -0
- data/lib/fog/aws/requests/rds/create_db_cluster_snapshot.rb +68 -0
- data/lib/fog/aws/requests/rds/create_db_instance.rb +42 -4
- data/lib/fog/aws/requests/rds/create_db_snapshot.rb +1 -1
- data/lib/fog/aws/requests/rds/delete_db_cluster.rb +55 -0
- data/lib/fog/aws/requests/rds/delete_db_cluster_snapshot.rb +43 -0
- data/lib/fog/aws/requests/rds/delete_db_instance.rb +9 -0
- data/lib/fog/aws/requests/rds/delete_db_snapshot.rb +2 -1
- data/lib/fog/aws/requests/rds/describe_db_cluster_snapshots.rb +66 -0
- data/lib/fog/aws/requests/rds/describe_db_clusters.rb +54 -0
- data/lib/fog/aws/requests/rds/describe_db_instances.rb +4 -0
- data/lib/fog/aws/requests/rds/describe_db_parameters.rb +15 -1
- data/lib/fog/aws/requests/rds/describe_engine_default_parameters.rb +40 -0
- data/lib/fog/aws/requests/rds/modify_db_instance.rb +52 -49
- data/lib/fog/aws/requests/rds/modify_db_parameter_group.rb +28 -1
- data/lib/fog/aws/requests/rds/restore_db_instance_from_db_snapshot.rb +63 -2
- data/lib/fog/aws/version.rb +1 -1
- data/tests/models/rds/cluster_tests.rb +54 -0
- data/tests/models/rds/clusters_tests.rb +5 -0
- data/tests/models/rds/helper.rb +13 -0
- data/tests/models/rds/server_tests.rb +3 -3
- data/tests/models/rds/servers_tests.rb +18 -0
- data/tests/requests/compute/instance_tests.rb +2 -3
- data/tests/requests/rds/cluster_snapshot_tests.rb +43 -0
- data/tests/requests/rds/cluster_tests.rb +37 -0
- data/tests/requests/rds/helper.rb +84 -0
- data/tests/requests/rds/instance_tests.rb +16 -4
- data/tests/requests/rds/parameter_group_tests.rb +1 -1
- data/tests/requests/rds/parameter_request_tests.rb +0 -2
- metadata +27 -3
@@ -0,0 +1,33 @@
|
|
1
|
+
module Fog
|
2
|
+
module Parsers
|
3
|
+
module AWS
|
4
|
+
module RDS
|
5
|
+
require 'fog/aws/parsers/rds/db_cluster_snapshot_parser'
|
6
|
+
|
7
|
+
class CreateDBClusterSnapshot < Fog::Parsers::AWS::RDS::DBClusterSnapshotParser
|
8
|
+
def reset
|
9
|
+
@response = { 'CreateDBClusterSnapshotResult' => {}, 'ResponseMetadata' => {} }
|
10
|
+
super
|
11
|
+
end
|
12
|
+
|
13
|
+
def start_element(name, attrs = [])
|
14
|
+
super
|
15
|
+
end
|
16
|
+
|
17
|
+
def end_element(name)
|
18
|
+
case name
|
19
|
+
|
20
|
+
when 'DBClusterSnapshot'
|
21
|
+
@response['CreateDBClusterSnapshotResult']['DBClusterSnapshot'] = @db_cluster_snapshot
|
22
|
+
@db_cluster_snapshot = fresh_snapshot
|
23
|
+
when 'RequestId'
|
24
|
+
@response['ResponseMetadata'][name] = value
|
25
|
+
else
|
26
|
+
super
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,71 @@
|
|
1
|
+
module Fog
|
2
|
+
module Parsers
|
3
|
+
module AWS
|
4
|
+
module RDS
|
5
|
+
class DbClusterParser < Fog::Parsers::Base
|
6
|
+
def reset
|
7
|
+
@db_cluster = fresh_cluster
|
8
|
+
end
|
9
|
+
|
10
|
+
def fresh_cluster
|
11
|
+
{'AvailabilityZones' => [], 'VpcSecurityGroups' => []}
|
12
|
+
end
|
13
|
+
|
14
|
+
def start_element(name, attrs=[])
|
15
|
+
super
|
16
|
+
case name
|
17
|
+
when 'AvailabilityZones'
|
18
|
+
@in_availability_zones = true
|
19
|
+
when 'DBClusterMembers'
|
20
|
+
@in_db_cluster_members = true
|
21
|
+
@db_cluster_members = []
|
22
|
+
when 'DBClusterMember'
|
23
|
+
@db_cluster_member = {}
|
24
|
+
when 'VpcSecurityGroupMembership'
|
25
|
+
@vpc_security_group = {}
|
26
|
+
when 'VpcSecurityGroups'
|
27
|
+
@in_vpc_security_groups = true
|
28
|
+
@vpc_security_groups = []
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def end_element(name)
|
33
|
+
case name
|
34
|
+
when 'Port', 'Engine', 'Status', 'BackupRetentionPeriod', 'DBSubnetGroup', 'EngineVersion', 'Endpoint', 'DBClusterParameterGroup', 'DBClusterIdentifier', 'PreferredBackupWindow', 'PreferredMaintenanceWindow', 'AllocatedStorage', 'MasterUsername'
|
35
|
+
@db_cluster[name] = value
|
36
|
+
when 'VpcSecurityGroups'
|
37
|
+
@in_vpc_security_groups = false
|
38
|
+
@db_cluster['VpcSecurityGroups'] = @vpc_security_groups
|
39
|
+
when 'VpcSecurityGroupMembership'
|
40
|
+
@vpc_security_groups << @vpc_security_group
|
41
|
+
@vpc_security_group = {}
|
42
|
+
when 'VpcSecurityGroupId'
|
43
|
+
@vpc_security_group[name] = value
|
44
|
+
when 'Status'
|
45
|
+
# Unfortunately, status is used in VpcSecurityGroupMemebership and
|
46
|
+
# DBSecurityGroups
|
47
|
+
if @in_db_security_groups
|
48
|
+
@db_security_group[name]=value
|
49
|
+
end
|
50
|
+
if @in_vpc_security_groups
|
51
|
+
@vpc_security_group[name] = value
|
52
|
+
end
|
53
|
+
when 'DBClusterMembers'
|
54
|
+
@in_db_cluster_members = false
|
55
|
+
@db_cluster['DBClusterMembers'] = @db_cluster_members
|
56
|
+
when 'DBClusterMember'
|
57
|
+
@db_cluster_members << @db_cluster_member
|
58
|
+
@db_cluster_member = {}
|
59
|
+
when 'IsClusterWriter'
|
60
|
+
@db_cluster_member['master'] = value == "true"
|
61
|
+
when 'DBInstanceIdentifier'
|
62
|
+
@db_cluster_member[name] = value
|
63
|
+
when 'DBCluster'
|
64
|
+
@db_cluster = fresh_cluster
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Fog
|
2
|
+
module Parsers
|
3
|
+
module AWS
|
4
|
+
module RDS
|
5
|
+
class DBClusterSnapshotParser < Fog::Parsers::Base
|
6
|
+
def reset
|
7
|
+
@db_cluster_snapshot = fresh_snapshot
|
8
|
+
end
|
9
|
+
|
10
|
+
def fresh_snapshot
|
11
|
+
{}
|
12
|
+
end
|
13
|
+
|
14
|
+
def start_element(name, attrs=[])
|
15
|
+
super
|
16
|
+
end
|
17
|
+
|
18
|
+
def end_element(name)
|
19
|
+
case name
|
20
|
+
when 'Port', 'PercentProgress', 'AllocatedStorage'
|
21
|
+
@db_cluster_snapshot[name] = value.to_i
|
22
|
+
when 'SnapshotCreateTime', 'ClusterCreateTime'
|
23
|
+
@db_cluster_snapshot[name] = Time.parse(value)
|
24
|
+
else
|
25
|
+
@db_cluster_snapshot[name] = value
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Fog
|
2
|
+
module Parsers
|
3
|
+
module AWS
|
4
|
+
module RDS
|
5
|
+
class DBParameterParser < Fog::Parsers::Base
|
6
|
+
def reset
|
7
|
+
@db_parameter = new_db_parameter
|
8
|
+
end
|
9
|
+
|
10
|
+
def new_db_parameter
|
11
|
+
{}
|
12
|
+
end
|
13
|
+
|
14
|
+
def start_element(name, attrs = [])
|
15
|
+
super
|
16
|
+
end
|
17
|
+
|
18
|
+
def end_element(name)
|
19
|
+
case name
|
20
|
+
when 'IsModifiable'
|
21
|
+
@value == "true" ? true : false
|
22
|
+
else
|
23
|
+
@db_parameter[name] = @value.strip
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -48,7 +48,8 @@ module Fog
|
|
48
48
|
'AvailabilityZone', 'MasterUsername', 'DBName', 'LicenseModel',
|
49
49
|
'DBSubnetGroupName', 'StorageType', 'KmsKeyId', 'TdeCredentialArn',
|
50
50
|
'SecondaryAvailabilityZone', 'DbiResourceId', 'CACertificateIdentifier',
|
51
|
-
'CharacterSetName', 'DbiResourceId', 'LicenseModel', 'KmsKeyId'
|
51
|
+
'CharacterSetName', 'DbiResourceId', 'LicenseModel', 'KmsKeyId',
|
52
|
+
'DBClusterIdentifier'
|
52
53
|
@db_instance[name] = value
|
53
54
|
when 'MultiAZ', 'AutoMinorVersionUpgrade', 'PubliclyAccessible', 'StorageEncrypted'
|
54
55
|
@db_instance[name] = (value == 'true')
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Fog
|
2
|
+
module Parsers
|
3
|
+
module AWS
|
4
|
+
module RDS
|
5
|
+
require 'fog/aws/parsers/rds/db_cluster_parser'
|
6
|
+
|
7
|
+
class DeleteDBCluster < Fog::Parsers::AWS::RDS::DbClusterParser
|
8
|
+
def reset
|
9
|
+
@response = { 'DeleteDBClusterResult' => {}, 'ResponseMetadata' => {} }
|
10
|
+
super
|
11
|
+
end
|
12
|
+
|
13
|
+
def start_element(name, attrs = [])
|
14
|
+
super
|
15
|
+
end
|
16
|
+
|
17
|
+
def end_element(name)
|
18
|
+
case name
|
19
|
+
when 'DBCluster'
|
20
|
+
@response['DeleteDBClusterResult']['DBCluster'] = @db_cluster
|
21
|
+
@db_cluster = fresh_cluster
|
22
|
+
when 'RequestId'
|
23
|
+
@response['ResponseMetadata'][name] = value
|
24
|
+
else
|
25
|
+
super
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Fog
|
2
|
+
module Parsers
|
3
|
+
module AWS
|
4
|
+
module RDS
|
5
|
+
require 'fog/aws/parsers/rds/db_cluster_snapshot_parser'
|
6
|
+
|
7
|
+
class DeleteDBClusterSnapshot < Fog::Parsers::AWS::RDS::DBClusterSnapshotParser
|
8
|
+
def reset
|
9
|
+
@response = {'DeleteDBClusterSnapshotResult' => {}, 'ResponseMetadata' => {} }
|
10
|
+
super
|
11
|
+
end
|
12
|
+
|
13
|
+
def start_element(name, attrs = [])
|
14
|
+
super
|
15
|
+
end
|
16
|
+
|
17
|
+
def end_element(name)
|
18
|
+
case name
|
19
|
+
when 'RequestId'
|
20
|
+
@response['ResponseMetadata'][name] = value
|
21
|
+
when 'DBClusterSnapshot'
|
22
|
+
@response['DeleteDBClusterSnapshotResult']['DBClusterSnapshot'] = @db_cluster_snapshot
|
23
|
+
@db_cluster_snapshot = fresh_snapshot
|
24
|
+
else
|
25
|
+
super
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module Fog
|
2
|
+
module Parsers
|
3
|
+
module AWS
|
4
|
+
module RDS
|
5
|
+
require 'fog/aws/parsers/rds/db_cluster_snapshot_parser'
|
6
|
+
|
7
|
+
class DescribeDBClusterSnapshots < Fog::Parsers::AWS::RDS::DBClusterSnapshotParser
|
8
|
+
def reset
|
9
|
+
@response = {'DescribeDBClusterSnapshotsResult' => {'DBClusterSnapshots' => []}, 'ResponseMetadata' => {}}
|
10
|
+
super
|
11
|
+
end
|
12
|
+
|
13
|
+
def start_element(name, attrs = [])
|
14
|
+
super
|
15
|
+
end
|
16
|
+
|
17
|
+
def end_element(name)
|
18
|
+
case name
|
19
|
+
when 'DBClusterSnapshot'
|
20
|
+
@response['DescribeDBClusterSnapshotsResult']['DBClusterSnapshots'] << @db_cluster_snapshot
|
21
|
+
@db_cluster_snapshot = fresh_snapshot
|
22
|
+
when 'Marker'
|
23
|
+
@response['DescribeDBClusterSnapshotsResult']['Marker'] = value
|
24
|
+
when 'RequestId'
|
25
|
+
@response['ResponseMetadata'][name] = value
|
26
|
+
else
|
27
|
+
super
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module Fog
|
2
|
+
module Parsers
|
3
|
+
module AWS
|
4
|
+
module RDS
|
5
|
+
require 'fog/aws/parsers/rds/db_cluster_parser'
|
6
|
+
|
7
|
+
class DescribeDBClusters < Fog::Parsers::AWS::RDS::DbClusterParser
|
8
|
+
def reset
|
9
|
+
@response = { 'DescribeDBClustersResult' => { 'DBClusters' => []}, 'ResponseMetadata' => {} }
|
10
|
+
super
|
11
|
+
end
|
12
|
+
|
13
|
+
def start_element(name, attrs=[])
|
14
|
+
super
|
15
|
+
end
|
16
|
+
|
17
|
+
def end_element(name)
|
18
|
+
case name
|
19
|
+
when 'DBCluster'
|
20
|
+
@response['DescribeDBClustersResult']['DBClusters'] << @db_cluster
|
21
|
+
@db_cluster = fresh_cluster
|
22
|
+
when 'Marker'
|
23
|
+
@response['DescribeDBClustersResult']['Marker'] = value
|
24
|
+
when 'RequestId'
|
25
|
+
@response['ResponseMetadata'][name] = value
|
26
|
+
else
|
27
|
+
super
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module Fog
|
2
|
+
module Parsers
|
3
|
+
module AWS
|
4
|
+
module RDS
|
5
|
+
require 'fog/aws/parsers/rds/db_parameter_parser'
|
6
|
+
|
7
|
+
class DescribeEngineDefaultParameters < Fog::Parsers::AWS::RDS::DBParameterParser
|
8
|
+
def reset
|
9
|
+
@response = {'DescribeEngineDefaultParametersResult' => {'Parameters' => []}, 'ResponseMetadata' => {}}
|
10
|
+
super
|
11
|
+
end
|
12
|
+
|
13
|
+
def start_element(name, attrs = [])
|
14
|
+
super
|
15
|
+
end
|
16
|
+
|
17
|
+
def end_element(name)
|
18
|
+
case name
|
19
|
+
when 'Parameter'
|
20
|
+
@response['DescribeEngineDefaultParametersResult']['Parameters'] << @db_parameter
|
21
|
+
@db_parameter = new_db_parameter
|
22
|
+
when 'Marker'
|
23
|
+
@response['DescribeEngineDefaultParametersResult']['Marker'] = @value
|
24
|
+
when 'RequestId'
|
25
|
+
@response['ResponseMetadata'][name] = @value
|
26
|
+
else
|
27
|
+
super
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -6,7 +6,7 @@ module Fog
|
|
6
6
|
|
7
7
|
class RestoreDBInstanceFromDBSnapshot < Fog::Parsers::AWS::RDS::DbParser
|
8
8
|
def reset
|
9
|
-
@response = { '
|
9
|
+
@response = { 'RestoreDBInstanceFromDBSnapshotResult' => {}, 'ResponseMetadata' => {} }
|
10
10
|
super
|
11
11
|
end
|
12
12
|
|
@@ -17,7 +17,7 @@ module Fog
|
|
17
17
|
def end_element(name)
|
18
18
|
case name
|
19
19
|
when 'DBInstance'
|
20
|
-
@response['
|
20
|
+
@response['RestoreDBInstanceFromDBSnapshotResult']['DBInstance'] = @db_instance
|
21
21
|
@db_instance = fresh_instance
|
22
22
|
when 'RequestId'
|
23
23
|
@response['ResponseMetadata'][name] = value
|
@@ -17,19 +17,12 @@ module Fog
|
|
17
17
|
|
18
18
|
def end_element(name)
|
19
19
|
case name
|
20
|
-
when 'AllocatedStorage'
|
21
|
-
|
22
|
-
when '
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
when 'InstanceCreateTime' then @db_snapshot['InstanceCreateTime'] = Time.parse value
|
27
|
-
when 'Iops' then @db_snapshot['Iops'] = value
|
28
|
-
when 'MasterUsername' then @db_snapshot['MasterUsername'] = value
|
29
|
-
when 'Port' then @db_snapshot['Port'] = value.to_i
|
30
|
-
when 'SnapshotCreateTime' then @db_snapshot['SnapshotCreateTime'] = Time.parse value
|
31
|
-
when 'SnapshotType' then @db_snapshot['SnapshotType'] = value
|
32
|
-
when 'Status' then @db_snapshot['Status'] = value
|
20
|
+
when 'AllocatedStorage', 'Port'
|
21
|
+
@db_snapshot[name] = value.to_i
|
22
|
+
when 'InstanceCreateTime', 'SnapshotCreateTime'
|
23
|
+
@db_snapshot[name] = Time.parse(value)
|
24
|
+
else
|
25
|
+
@db_snapshot[name] = value
|
33
26
|
end
|
34
27
|
end
|
35
28
|
end
|
data/lib/fog/aws/rds.rb
CHANGED
@@ -62,10 +62,23 @@ module Fog
|
|
62
62
|
request :create_event_subscription
|
63
63
|
request :delete_event_subscription
|
64
64
|
|
65
|
+
request :describe_engine_default_parameters
|
66
|
+
|
67
|
+
request :describe_db_clusters
|
68
|
+
request :describe_db_cluster_snapshots
|
69
|
+
request :create_db_cluster
|
70
|
+
request :create_db_cluster_snapshot
|
71
|
+
request :delete_db_cluster
|
72
|
+
request :delete_db_cluster_snapshot
|
73
|
+
|
65
74
|
model_path 'fog/aws/models/rds'
|
66
75
|
model :server
|
67
76
|
collection :servers
|
68
77
|
|
78
|
+
model :cluster
|
79
|
+
collection :clusters
|
80
|
+
collection :cluster_snapshots
|
81
|
+
|
69
82
|
model :snapshot
|
70
83
|
collection :snapshots
|
71
84
|
|
@@ -95,11 +108,23 @@ module Fog
|
|
95
108
|
@data ||= Hash.new do |hash, region|
|
96
109
|
hash[region] = Hash.new do |region_hash, key|
|
97
110
|
region_hash[key] = {
|
111
|
+
:clusters => {},
|
112
|
+
:cluster_snapshots => {},
|
98
113
|
:servers => {},
|
99
114
|
:security_groups => {},
|
100
115
|
:subnet_groups => {},
|
101
116
|
:snapshots => {},
|
102
117
|
:event_subscriptions => {},
|
118
|
+
:default_parameters => [
|
119
|
+
{
|
120
|
+
"DataType" => "integer",
|
121
|
+
"Source" => "engine-default",
|
122
|
+
"Description" => "Intended for use with master-to-master replication, and can be used to control the operation of AUTO_INCREMENT columns",
|
123
|
+
"ApplyType" => "dynamic",
|
124
|
+
"AllowedValues" => "1-65535",
|
125
|
+
"ParameterName" => "auto_increment_increment"
|
126
|
+
}
|
127
|
+
],
|
103
128
|
:db_engine_versions => [
|
104
129
|
{
|
105
130
|
'Engine' => "mysql",
|