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.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.travis.yml +4 -0
  4. data/README.md +1 -1
  5. data/gemfiles/Gemfile-edge +5 -0
  6. data/lib/fog/aws/models/compute/security_group.rb +4 -4
  7. data/lib/fog/aws/models/rds/cluster.rb +93 -0
  8. data/lib/fog/aws/models/rds/cluster_snapshots.rb +48 -0
  9. data/lib/fog/aws/models/rds/clusters.rb +23 -0
  10. data/lib/fog/aws/models/rds/parameters.rb +15 -0
  11. data/lib/fog/aws/models/rds/server.rb +29 -11
  12. data/lib/fog/aws/models/rds/servers.rb +4 -0
  13. data/lib/fog/aws/models/rds/snapshot.rb +36 -17
  14. data/lib/fog/aws/parsers/rds/create_db_cluster.rb +32 -0
  15. data/lib/fog/aws/parsers/rds/create_db_cluster_snapshot.rb +33 -0
  16. data/lib/fog/aws/parsers/rds/db_cluster_parser.rb +71 -0
  17. data/lib/fog/aws/parsers/rds/db_cluster_snapshot_parser.rb +32 -0
  18. data/lib/fog/aws/parsers/rds/db_parameter_parser.rb +30 -0
  19. data/lib/fog/aws/parsers/rds/db_parser.rb +2 -1
  20. data/lib/fog/aws/parsers/rds/delete_db_cluster.rb +32 -0
  21. data/lib/fog/aws/parsers/rds/delete_db_cluster_snapshot.rb +32 -0
  22. data/lib/fog/aws/parsers/rds/describe_db_cluster_snapshots.rb +34 -0
  23. data/lib/fog/aws/parsers/rds/describe_db_clusters.rb +34 -0
  24. data/lib/fog/aws/parsers/rds/describe_engine_default_parameters.rb +34 -0
  25. data/lib/fog/aws/parsers/rds/restore_db_instance_from_db_snapshot.rb +2 -2
  26. data/lib/fog/aws/parsers/rds/snapshot_parser.rb +6 -13
  27. data/lib/fog/aws/rds.rb +25 -0
  28. data/lib/fog/aws/requests/compute/describe_availability_zones.rb +5 -2
  29. data/lib/fog/aws/requests/rds/create_db_cluster.rb +98 -0
  30. data/lib/fog/aws/requests/rds/create_db_cluster_snapshot.rb +68 -0
  31. data/lib/fog/aws/requests/rds/create_db_instance.rb +42 -4
  32. data/lib/fog/aws/requests/rds/create_db_snapshot.rb +1 -1
  33. data/lib/fog/aws/requests/rds/delete_db_cluster.rb +55 -0
  34. data/lib/fog/aws/requests/rds/delete_db_cluster_snapshot.rb +43 -0
  35. data/lib/fog/aws/requests/rds/delete_db_instance.rb +9 -0
  36. data/lib/fog/aws/requests/rds/delete_db_snapshot.rb +2 -1
  37. data/lib/fog/aws/requests/rds/describe_db_cluster_snapshots.rb +66 -0
  38. data/lib/fog/aws/requests/rds/describe_db_clusters.rb +54 -0
  39. data/lib/fog/aws/requests/rds/describe_db_instances.rb +4 -0
  40. data/lib/fog/aws/requests/rds/describe_db_parameters.rb +15 -1
  41. data/lib/fog/aws/requests/rds/describe_engine_default_parameters.rb +40 -0
  42. data/lib/fog/aws/requests/rds/modify_db_instance.rb +52 -49
  43. data/lib/fog/aws/requests/rds/modify_db_parameter_group.rb +28 -1
  44. data/lib/fog/aws/requests/rds/restore_db_instance_from_db_snapshot.rb +63 -2
  45. data/lib/fog/aws/version.rb +1 -1
  46. data/tests/models/rds/cluster_tests.rb +54 -0
  47. data/tests/models/rds/clusters_tests.rb +5 -0
  48. data/tests/models/rds/helper.rb +13 -0
  49. data/tests/models/rds/server_tests.rb +3 -3
  50. data/tests/models/rds/servers_tests.rb +18 -0
  51. data/tests/requests/compute/instance_tests.rb +2 -3
  52. data/tests/requests/rds/cluster_snapshot_tests.rb +43 -0
  53. data/tests/requests/rds/cluster_tests.rb +37 -0
  54. data/tests/requests/rds/helper.rb +84 -0
  55. data/tests/requests/rds/instance_tests.rb +16 -4
  56. data/tests/requests/rds/parameter_group_tests.rb +1 -1
  57. data/tests/requests/rds/parameter_request_tests.rb +0 -2
  58. 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 = { 'RestoreDBInstanceFromDBSnapshot' => {}, 'ResponseMetadata' => {} }
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['RestoreDBInstanceFromDBSnapshot']['DBInstance'] = @db_instance
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' then @db_snapshot['AllocatedStorage'] = value.to_i
21
- when 'AvailabilityZone' then @db_snapshot['AvailabilityZone'] = value
22
- when 'DBInstanceIdentifier' then @db_snapshot['DBInstanceIdentifier'] = value
23
- when 'DBSnapshotIdentifier' then @db_snapshot['DBSnapshotIdentifier'] = value
24
- when 'Engine' then @db_snapshot['Engine'] = value
25
- when 'EngineVersion' then @db_snapshot['EngineVersion'] = value
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
@@ -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",