cf_factory 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (109) hide show
  1. data/bin/cf_factory +9 -9
  2. data/examples/base_vpc.rb +40 -40
  3. data/examples/cloudfront_private.rb +23 -23
  4. data/examples/cloudinit_script_for_one_instance.rb +77 -77
  5. data/examples/cloudinit_script_with_autoscaling.rb +85 -85
  6. data/examples/dynamodb_table.rb +24 -24
  7. data/examples/elastic_beanstalk_example.rb +23 -23
  8. data/examples/elb_with_cloudfront.rb +100 -100
  9. data/examples/instance_with_eip.rb +40 -40
  10. data/examples/instance_with_yum.rb +40 -40
  11. data/examples/just_an_instance.rb +31 -31
  12. data/examples/nat_mutual_monitoring.rb +69 -69
  13. data/examples/play_with_region_and_zones.rb +28 -28
  14. data/examples/ra_web_hosting.rb +148 -148
  15. data/examples/s3_with_cloudfront.rb +35 -35
  16. data/examples/test_vpc.rb +61 -61
  17. data/lib/cf_factory/as/cf_as_group.rb +80 -77
  18. data/lib/cf_factory/as/cf_as_launch_config.rb +55 -55
  19. data/lib/cf_factory/as/cf_as_scaling_policy.rb +35 -35
  20. data/lib/cf_factory/as/cf_as_update_policy.rb +23 -0
  21. data/lib/cf_factory/base/cf_base.rb +112 -102
  22. data/lib/cf_factory/base/cf_ec2_tag.rb +34 -34
  23. data/lib/cf_factory/base/cf_generator.rb +20 -20
  24. data/lib/cf_factory/base/cf_helper.rb +93 -93
  25. data/lib/cf_factory/base/cf_inner.rb +74 -74
  26. data/lib/cf_factory/base/cf_main.rb +103 -103
  27. data/lib/cf_factory/base/cf_mapping.rb +28 -28
  28. data/lib/cf_factory/base/cf_named_inner.rb +70 -1
  29. data/lib/cf_factory/base/cf_output.rb +26 -26
  30. data/lib/cf_factory/base/cf_parameter.rb +27 -27
  31. data/lib/cf_factory/base/cf_script_reader.rb +34 -34
  32. data/lib/cf_factory/cloudformation/cf_cloud_formation_init.rb +27 -27
  33. data/lib/cf_factory/cloudformation/cf_cloudformation_command.rb +39 -39
  34. data/lib/cf_factory/cloudformation/cf_cloudformation_commands.rb +27 -27
  35. data/lib/cf_factory/cloudformation/cf_cloudformation_config.rb +35 -35
  36. data/lib/cf_factory/cloudformation/cf_cloudformation_file.rb +40 -40
  37. data/lib/cf_factory/cloudformation/cf_cloudformation_files.rb +27 -27
  38. data/lib/cf_factory/cloudformation/cf_cloudformation_inner.rb +30 -30
  39. data/lib/cf_factory/cloudformation/cf_cloudformation_package.rb +36 -36
  40. data/lib/cf_factory/cloudformation/cf_cloudformation_packages.rb +44 -44
  41. data/lib/cf_factory/cloudformation/cf_cloudformation_sources.rb +32 -32
  42. data/lib/cf_factory/cloudformation/cf_init_script.rb +80 -80
  43. data/lib/cf_factory/cloudfront/cf_cache_behavior.rb +39 -39
  44. data/lib/cf_factory/cloudfront/cf_cache_behaviors.rb +30 -30
  45. data/lib/cf_factory/cloudfront/cf_cloudfront_distribution.rb +66 -66
  46. data/lib/cf_factory/cloudfront/cf_custom_origin_config.rb +39 -39
  47. data/lib/cf_factory/cloudfront/cf_default_cache_behavior.rb +34 -34
  48. data/lib/cf_factory/cloudfront/cf_distribution_config.rb +33 -33
  49. data/lib/cf_factory/cloudfront/cf_forwarded_values.rb +27 -27
  50. data/lib/cf_factory/cloudfront/cf_logging.rb +26 -26
  51. data/lib/cf_factory/cloudfront/cf_origin.rb +42 -42
  52. data/lib/cf_factory/cloudfront/cf_s3_origin_config.rb +27 -27
  53. data/lib/cf_factory/cloudwatch/cf_cloud_watch_alarm.rb +60 -60
  54. data/lib/cf_factory/dynamo/cf_dynamo_table.rb +45 -45
  55. data/lib/cf_factory/eb/cd_eb_solution_stack.rb +27 -28
  56. data/lib/cf_factory/eb/cf_eb_application.rb +41 -41
  57. data/lib/cf_factory/eb/cf_eb_application_version.rb +24 -24
  58. data/lib/cf_factory/eb/cf_eb_configuration_template.rb +36 -36
  59. data/lib/cf_factory/eb/cf_eb_environment.rb +56 -56
  60. data/lib/cf_factory/eb/cf_eb_option_setting.rb +19 -19
  61. data/lib/cf_factory/ec2/cf_ebs_volume.rb +56 -56
  62. data/lib/cf_factory/ec2/cf_ec2_instance.rb +80 -66
  63. data/lib/cf_factory/ec2/cf_ec2_security_group.rb +42 -42
  64. data/lib/cf_factory/ec2/cf_ec2_security_group_egress.rb +30 -30
  65. data/lib/cf_factory/ec2/cf_ec2_security_group_ingress.rb +41 -41
  66. data/lib/cf_factory/ec2/cf_eip.rb +28 -28
  67. data/lib/cf_factory/ec2/cf_eip_association.rb +33 -31
  68. data/lib/cf_factory/ec2/cf_inner_network_interface.rb +26 -0
  69. data/lib/cf_factory/ec2/cf_network_interface.rb +40 -0
  70. data/lib/cf_factory/elb/cf_app_cookie_stickiness_policy.rb +17 -17
  71. data/lib/cf_factory/elb/cf_elb.rb +51 -51
  72. data/lib/cf_factory/elb/cf_health_check.rb +25 -25
  73. data/lib/cf_factory/elb/cf_lb_cookie_stickiness_policy.rb +17 -17
  74. data/lib/cf_factory/elb/cf_listener.rb +28 -28
  75. data/lib/cf_factory/help/fixes.rb +15 -15
  76. data/lib/cf_factory/help/ip_mask.rb +167 -167
  77. data/lib/cf_factory/help/template_validation.rb +30 -30
  78. data/lib/cf_factory/iam/cf_iam_access_key.rb +34 -34
  79. data/lib/cf_factory/iam/cf_iam_group.rb +32 -32
  80. data/lib/cf_factory/iam/cf_iam_instance_profile.rb +32 -32
  81. data/lib/cf_factory/iam/cf_iam_policy.rb +20 -20
  82. data/lib/cf_factory/iam/cf_iam_role.rb +58 -58
  83. data/lib/cf_factory/iam/cf_iam_statement.rb +25 -25
  84. data/lib/cf_factory/iam/cf_iam_user.rb +36 -36
  85. data/lib/cf_factory/iam/cf_policy_document.rb +21 -21
  86. data/lib/cf_factory/modules/base_vpc.rb +63 -63
  87. data/lib/cf_factory/rds/cf_rds_instance.rb +55 -55
  88. data/lib/cf_factory/rds/cf_rds_security_group.rb +35 -35
  89. data/lib/cf_factory/rds/cf_rds_security_group_ingress.rb +31 -31
  90. data/lib/cf_factory/rds/cf_rds_subnet_group.rb +31 -31
  91. data/lib/cf_factory/route53/cf_elb_alias_target.rb +23 -23
  92. data/lib/cf_factory/route53/cf_record_set.rb +63 -63
  93. data/lib/cf_factory/route53/cf_route53_record_set.rb +63 -63
  94. data/lib/cf_factory/route53/cf_route53_record_set_group.rb +44 -44
  95. data/lib/cf_factory/s3/cf_s3_bucket.rb +34 -34
  96. data/lib/cf_factory/s3/cf_web_site_config.rb +26 -26
  97. data/lib/cf_factory/sqs/cf_sqs_queue.rb +28 -28
  98. data/lib/cf_factory/vpc/cf_attach_gateway.rb +30 -30
  99. data/lib/cf_factory/vpc/cf_internet_gateway.rb +32 -32
  100. data/lib/cf_factory/vpc/cf_network_acl.rb +41 -41
  101. data/lib/cf_factory/vpc/cf_network_acl_association.rb +26 -26
  102. data/lib/cf_factory/vpc/cf_network_acl_entry.rb +39 -39
  103. data/lib/cf_factory/vpc/cf_route.rb +45 -45
  104. data/lib/cf_factory/vpc/cf_route_table.rb +43 -43
  105. data/lib/cf_factory/vpc/cf_route_table_association.rb +26 -26
  106. data/lib/cf_factory/vpc/cf_subnet.rb +50 -50
  107. data/lib/cf_factory/vpc/cf_vpc.rb +66 -66
  108. data/lib/cf_factory.rb +12 -12
  109. metadata +120 -91
@@ -1,58 +1,58 @@
1
- require 'cf_factory/base/cf_base'
2
- require 'cf_factory/base/cf_helper'
3
- require 'cf_factory/iam/cf_iam_instance_profile'
4
-
5
- module CfFactory
6
- class CfIamRole
7
- include CfBase
8
-
9
- def initialize(name, path, options)
10
- @name = name
11
- @path = path
12
- @policies = options[:policies]
13
- end
14
-
15
- def get_cf_type
16
- "AWS::IAM::Role"
17
- end
18
-
19
- def get_cf_attributes
20
- {}
21
- end
22
-
23
- def get_cf_properties
24
- result = {
25
- "Path" => @path,
26
- "AssumeRolePolicyDocument" => assume_role_ec2() #no other supported right now
27
- }
28
- result["Policies"] = CfHelper.generate_inner_array(@policies) unless @policies.nil?
29
- result
30
- end
31
-
32
- def generate
33
- result = super
34
- result += CfIamInstanceProfile.new(@name+"Profile", @path, [@name]).generate
35
- end
36
-
37
- private
38
-
39
- def assume_role_ec2
40
- ' {
41
- "Statement":[
42
- {
43
- "Effect":"Allow",
44
- "Principal":{
45
- "Service":[
46
- "ec2.amazonaws.com"
47
- ]
48
- },
49
- "Action":[
50
- "sts:AssumeRole"
51
- ]
52
- }
53
- ]
54
- }'
55
- end
56
-
57
- end
58
- end
1
+ require 'cf_factory/base/cf_base'
2
+ require 'cf_factory/base/cf_helper'
3
+ require 'cf_factory/iam/cf_iam_instance_profile'
4
+
5
+ module CfFactory
6
+ class CfIamRole
7
+ include CfBase
8
+
9
+ def initialize(name, path, options)
10
+ @name = name
11
+ @path = path
12
+ @policies = options[:policies]
13
+ end
14
+
15
+ def get_cf_type
16
+ "AWS::IAM::Role"
17
+ end
18
+
19
+ def get_cf_attributes
20
+ {}
21
+ end
22
+
23
+ def get_cf_properties
24
+ result = {
25
+ "Path" => @path,
26
+ "AssumeRolePolicyDocument" => assume_role_ec2() #no other supported right now
27
+ }
28
+ result["Policies"] = CfHelper.generate_inner_array(@policies) unless @policies.nil?
29
+ result
30
+ end
31
+
32
+ def generate
33
+ result = super
34
+ result += CfIamInstanceProfile.new(@name+"Profile", @path, [@name]).generate
35
+ end
36
+
37
+ private
38
+
39
+ def assume_role_ec2
40
+ ' {
41
+ "Statement":[
42
+ {
43
+ "Effect":"Allow",
44
+ "Principal":{
45
+ "Service":[
46
+ "ec2.amazonaws.com"
47
+ ]
48
+ },
49
+ "Action":[
50
+ "sts:AssumeRole"
51
+ ]
52
+ }
53
+ ]
54
+ }'
55
+ end
56
+
57
+ end
58
+ end
@@ -1,25 +1,25 @@
1
- require 'cf_factory/base/cf_inner'
2
-
3
- module CfFactory
4
- class CfIamStatement
5
- include CfInner
6
-
7
- def initialize(effect, action, resource)
8
- @effect = effect
9
- @action = action
10
- @resource = resource
11
- end
12
-
13
- def get_cf_attributes
14
- {"Effect" => @effect,
15
- "Action" => @action,
16
- "Resource" => @resource
17
- }
18
- end
19
-
20
- def additional_indent
21
- 4
22
- end
23
-
24
- end
25
- end
1
+ require 'cf_factory/base/cf_inner'
2
+
3
+ module CfFactory
4
+ class CfIamStatement
5
+ include CfInner
6
+
7
+ def initialize(effect, action, resource)
8
+ @effect = effect
9
+ @action = action
10
+ @resource = resource
11
+ end
12
+
13
+ def get_cf_attributes
14
+ {"Effect" => @effect,
15
+ "Action" => @action,
16
+ "Resource" => @resource
17
+ }
18
+ end
19
+
20
+ def additional_indent
21
+ 4
22
+ end
23
+
24
+ end
25
+ end
@@ -1,36 +1,36 @@
1
- require 'cf_factory/base/cf_base'
2
- require 'cf_factory/base/cf_helper'
3
- require 'cf_factory/iam/cf_iam_instance_profile'
4
-
5
- module CfFactory
6
- class CfIamUser
7
- include CfBase
8
-
9
- def initialize(name, path, options = {})
10
- @name = name
11
- @path = path
12
- @policies = options[:policies]
13
- @login_profile = options[:login_profile]
14
- @groups = options[:groups]
15
- end
16
-
17
- def get_cf_type
18
- "AWS::IAM::User"
19
- end
20
-
21
- def get_cf_attributes
22
- {}
23
- end
24
-
25
- def get_cf_properties
26
- result = {
27
- "Path" => @path
28
- }
29
- result["Policies"] = CfHelper.generate_inner_array(@policies) unless @policies.nil?
30
- result["LoginProfile"] = "XXX" unless @login_profile.nil?
31
- result["Groups"] = CfHelper.generate_ref_array(@groups) unless @groups.nil?
32
- result
33
- end
34
-
35
- end
36
- end
1
+ require 'cf_factory/base/cf_base'
2
+ require 'cf_factory/base/cf_helper'
3
+ require 'cf_factory/iam/cf_iam_instance_profile'
4
+
5
+ module CfFactory
6
+ class CfIamUser
7
+ include CfBase
8
+
9
+ def initialize(name, path, options = {})
10
+ @name = name
11
+ @path = path
12
+ @policies = options[:policies]
13
+ @login_profile = options[:login_profile]
14
+ @groups = options[:groups]
15
+ end
16
+
17
+ def get_cf_type
18
+ "AWS::IAM::User"
19
+ end
20
+
21
+ def get_cf_attributes
22
+ {}
23
+ end
24
+
25
+ def get_cf_properties
26
+ result = {
27
+ "Path" => @path
28
+ }
29
+ result["Policies"] = CfHelper.generate_inner_array(@policies) unless @policies.nil?
30
+ result["LoginProfile"] = "XXX" unless @login_profile.nil?
31
+ result["Groups"] = CfHelper.generate_ref_array(@groups) unless @groups.nil?
32
+ result
33
+ end
34
+
35
+ end
36
+ end
@@ -1,21 +1,21 @@
1
- require 'cf_factory/base/cf_inner'
2
-
3
- module CfFactory
4
- class CfPolicyDocument
5
- include CfInner
6
-
7
- def initialize(statements, additional_indent = 2)
8
- @additional_indent = additional_indent
9
- @statements = statements
10
- end
11
-
12
- def get_cf_attributes()
13
- {"Statement" => CfHelper.generate_inner_array(@statements)}
14
- end
15
-
16
- def additional_indent
17
- @additional_indent
18
- end
19
-
20
- end
21
- end
1
+ require 'cf_factory/base/cf_inner'
2
+
3
+ module CfFactory
4
+ class CfPolicyDocument
5
+ include CfInner
6
+
7
+ def initialize(statements, additional_indent = 2)
8
+ @additional_indent = additional_indent
9
+ @statements = statements
10
+ end
11
+
12
+ def get_cf_attributes()
13
+ {"Statement" => CfHelper.generate_inner_array(@statements)}
14
+ end
15
+
16
+ def additional_indent
17
+ @additional_indent
18
+ end
19
+
20
+ end
21
+ end
@@ -1,63 +1,63 @@
1
- module CfFactory
2
- class BaseVpc
3
- attr_reader :vpc, :subnets, :private_route_table, :public_route_table
4
-
5
- def initialize(name, cidr, number_public_subnets, number_private_subnets, availability_zones, subnet_size = 256)
6
- @name = name
7
- @cidr = cidr
8
- @number_public_subnets = number_public_subnets
9
- @number_private_subnets = number_private_subnets
10
- @subnet_size = subnet_size
11
- @availability_zones = availability_zones
12
- setup()
13
- end
14
-
15
- def add_to_template(cf)
16
- cf.add_vpc(@vpc)
17
- end
18
-
19
- def setup
20
- define_vpc()
21
- define_subnets()
22
- end
23
-
24
- def define_vpc
25
- @vpc = CfVpc.new(@cidr)
26
- igw = CfInternetGateway.new("#{@name}Igw", @vpc)
27
- @vpc.add_internet_gateway(igw)
28
- @private_route_table = CfRouteTable.new("#{@name}PrivRt")
29
- @vpc.add_route_table(@private_route_table)
30
- @public_route_table = CfRouteTable.new("#{@name}PubRt")
31
- igw_route = CfRoute.new("IgwRoute", "0.0.0.0/0", igw)
32
- @public_route_table.add_route(igw_route)
33
- @vpc.add_route_table(@public_route_table)
34
- end
35
-
36
- def define_subnets
37
- myMask = IpMask.create_from_cidr(@cidr)
38
- puts "myMask = #{myMask.inspect}"
39
- divider_array = [@subnet_size]*(@number_public_subnets + @number_private_subnets)
40
- puts "divider_array = #{divider_array}"
41
- subnet_ranges = myMask.divide_individually(divider_array)
42
- puts "subnet ranges = #{subnet_ranges.inspect}"
43
- @subnets = []
44
- 0.upto(@number_public_subnets-1) do |i|
45
- @vpc.add_subnet(CfSubnet.new("#{@name}PublicSubnet#{i+1}", @cidr, @availability_zones[i%(@availability_zones.size)], @public_route_table))
46
- end
47
- 0.upto(@number_private_subnets-1) do |i|
48
- @vpc.add_subnet(CfSubnet.new("#{@name}PrivateSubnet#{i+1}", @cidr, @availability_zones[i%(@availability_zones.size)], @private_route_table))
49
- end
50
- end
51
-
52
- def ip2num(ip_part)
53
- sum = 0
54
- exp = 3
55
- ip_part.split(".").each() {|ip|
56
- sum += ip.to_i * (256 ** exp)
57
- exp -= 1
58
- }
59
- sum
60
- end
61
-
62
- end
63
- end
1
+ module CfFactory
2
+ class BaseVpc
3
+ attr_reader :vpc, :subnets, :private_route_table, :public_route_table
4
+
5
+ def initialize(name, cidr, number_public_subnets, number_private_subnets, availability_zones, subnet_size = 256)
6
+ @name = name
7
+ @cidr = cidr
8
+ @number_public_subnets = number_public_subnets
9
+ @number_private_subnets = number_private_subnets
10
+ @subnet_size = subnet_size
11
+ @availability_zones = availability_zones
12
+ setup()
13
+ end
14
+
15
+ def add_to_template(cf)
16
+ cf.add_vpc(@vpc)
17
+ end
18
+
19
+ def setup
20
+ define_vpc()
21
+ define_subnets()
22
+ end
23
+
24
+ def define_vpc
25
+ @vpc = CfVpc.new(@cidr)
26
+ igw = CfInternetGateway.new("#{@name}Igw", @vpc)
27
+ @vpc.add_internet_gateway(igw)
28
+ @private_route_table = CfRouteTable.new("#{@name}PrivRt")
29
+ @vpc.add_route_table(@private_route_table)
30
+ @public_route_table = CfRouteTable.new("#{@name}PubRt")
31
+ igw_route = CfRoute.new("IgwRoute", "0.0.0.0/0", igw)
32
+ @public_route_table.add_route(igw_route)
33
+ @vpc.add_route_table(@public_route_table)
34
+ end
35
+
36
+ def define_subnets
37
+ myMask = IpMask.create_from_cidr(@cidr)
38
+ puts "myMask = #{myMask.inspect}"
39
+ divider_array = [@subnet_size]*(@number_public_subnets + @number_private_subnets)
40
+ puts "divider_array = #{divider_array}"
41
+ subnet_ranges = myMask.divide_individually(divider_array)
42
+ puts "subnet ranges = #{subnet_ranges.inspect}"
43
+ @subnets = []
44
+ 0.upto(@number_public_subnets-1) do |i|
45
+ @vpc.add_subnet(CfSubnet.new("#{@name}PublicSubnet#{i+1}", @cidr, @availability_zones[i%(@availability_zones.size)], @public_route_table))
46
+ end
47
+ 0.upto(@number_private_subnets-1) do |i|
48
+ @vpc.add_subnet(CfSubnet.new("#{@name}PrivateSubnet#{i+1}", @cidr, @availability_zones[i%(@availability_zones.size)], @private_route_table))
49
+ end
50
+ end
51
+
52
+ def ip2num(ip_part)
53
+ sum = 0
54
+ exp = 3
55
+ ip_part.split(".").each() {|ip|
56
+ sum += ip.to_i * (256 ** exp)
57
+ exp -= 1
58
+ }
59
+ sum
60
+ end
61
+
62
+ end
63
+ end
@@ -1,55 +1,55 @@
1
- require 'cf_factory/base/cf_base'
2
- require 'cf_factory/base/cf_helper'
3
-
4
- module CfFactory
5
- class CfRdsInstance
6
- VALID_TYPES = ["db.t1.micro", "db.m1.small","db.m1.medium","db.m1.large","db.m1.xlarge","db.m2.xlarge","db.m2.2xlarge","db.m2.4xlarge"]
7
- include CfBase
8
-
9
- def initialize(name, allocated_storage, engine, db_instance_class, master_username, master_userpassword, options = {})
10
- @name = name
11
- @allocated_storage = allocated_storage
12
- @db_instance_class = db_instance_class
13
- @engine = engine
14
- @master_username = master_username
15
- @master_userpassword = master_userpassword
16
- @multi_az = options[:multi_az]
17
- @security_groups = options[:security_groups]
18
- @subnet_group = options[:subnet_group]
19
- validate()
20
- end
21
-
22
- def get_cf_type
23
- "AWS::RDS::DBInstance"
24
- end
25
-
26
- def get_cf_attributes
27
- {}
28
- end
29
-
30
- def get_cf_properties
31
- result = {"AllocatedStorage" => @allocated_storage,
32
- "DBInstanceClass" => @db_instance_class,
33
- "Engine" => @engine, "MasterUsername" => @master_username,
34
- "MasterUserPassword" => @master_userpassword
35
- }
36
- result["MultiAZ"] = @multi_az unless @multi_az.nil?
37
- result["DBSecurityGroups"] = CfHelper.generate_ref_array(@security_groups) unless @security_groups.nil?
38
- result["DBSubnetGroupName"] = @subnet_group.generate_ref unless @subnet_group.nil?
39
- result
40
- end
41
-
42
- def add_rule(ingress_rule)
43
- @rules << ingress_rule
44
- end
45
-
46
- private
47
-
48
- def validate
49
- if !VALID_TYPES.include?(@db_instance_class)
50
- raise Exception.new("invalid type '#{@db_instance_class}' - supported classes are #{@VALID_TYPES.inspect}")
51
- end
52
- end
53
-
54
- end
55
- end
1
+ require 'cf_factory/base/cf_base'
2
+ require 'cf_factory/base/cf_helper'
3
+
4
+ module CfFactory
5
+ class CfRdsInstance
6
+ VALID_TYPES = ["db.t1.micro", "db.m1.small","db.m1.medium","db.m1.large","db.m1.xlarge","db.m2.xlarge","db.m2.2xlarge","db.m2.4xlarge"]
7
+ include CfBase
8
+
9
+ def initialize(name, allocated_storage, engine, db_instance_class, master_username, master_userpassword, options = {})
10
+ @name = name
11
+ @allocated_storage = allocated_storage
12
+ @db_instance_class = db_instance_class
13
+ @engine = engine
14
+ @master_username = master_username
15
+ @master_userpassword = master_userpassword
16
+ @multi_az = options[:multi_az]
17
+ @security_groups = options[:security_groups]
18
+ @subnet_group = options[:subnet_group]
19
+ validate()
20
+ end
21
+
22
+ def get_cf_type
23
+ "AWS::RDS::DBInstance"
24
+ end
25
+
26
+ def get_cf_attributes
27
+ {}
28
+ end
29
+
30
+ def get_cf_properties
31
+ result = {"AllocatedStorage" => @allocated_storage,
32
+ "DBInstanceClass" => @db_instance_class,
33
+ "Engine" => @engine, "MasterUsername" => @master_username,
34
+ "MasterUserPassword" => @master_userpassword
35
+ }
36
+ result["MultiAZ"] = @multi_az unless @multi_az.nil?
37
+ result["DBSecurityGroups"] = CfHelper.generate_ref_array(@security_groups) unless @security_groups.nil?
38
+ result["DBSubnetGroupName"] = @subnet_group.generate_ref unless @subnet_group.nil?
39
+ result
40
+ end
41
+
42
+ def add_rule(ingress_rule)
43
+ @rules << ingress_rule
44
+ end
45
+
46
+ private
47
+
48
+ def validate
49
+ if !VALID_TYPES.include?(@db_instance_class)
50
+ raise Exception.new("invalid type '#{@db_instance_class}' - supported classes are #{@VALID_TYPES.inspect}")
51
+ end
52
+ end
53
+
54
+ end
55
+ end
@@ -1,35 +1,35 @@
1
- require 'cf_factory/base/cf_base'
2
- require 'cf_factory/base/cf_helper'
3
-
4
- module CfFactory
5
- class CfRdsSecurityGroup
6
- include CfBase
7
-
8
- def initialize(name, description, vpc = nil)
9
- @name = name
10
- @description = description
11
- @vpc = vpc
12
- @rules = []
13
- end
14
-
15
- def get_cf_type
16
- "AWS::RDS::DBSecurityGroup"
17
- end
18
-
19
- def get_cf_attributes
20
- {}
21
- end
22
-
23
- def get_cf_properties
24
- rules_array = CfHelper.generate_inner_array(@rules)
25
- result = {"GroupDescription" => @description, "DBSecurityGroupIngress" => rules_array}
26
- result["EC2VpcId"] = @vpc.generate_ref unless @vpc.nil?
27
- result
28
- end
29
-
30
- def add_rule(ingress_rule)
31
- @rules << ingress_rule
32
- end
33
-
34
- end
35
- end
1
+ require 'cf_factory/base/cf_base'
2
+ require 'cf_factory/base/cf_helper'
3
+
4
+ module CfFactory
5
+ class CfRdsSecurityGroup
6
+ include CfBase
7
+
8
+ def initialize(name, description, vpc = nil)
9
+ @name = name
10
+ @description = description
11
+ @vpc = vpc
12
+ @rules = []
13
+ end
14
+
15
+ def get_cf_type
16
+ "AWS::RDS::DBSecurityGroup"
17
+ end
18
+
19
+ def get_cf_attributes
20
+ {}
21
+ end
22
+
23
+ def get_cf_properties
24
+ rules_array = CfHelper.generate_inner_array(@rules)
25
+ result = {"GroupDescription" => @description, "DBSecurityGroupIngress" => rules_array}
26
+ result["EC2VpcId"] = @vpc.generate_ref unless @vpc.nil?
27
+ result
28
+ end
29
+
30
+ def add_rule(ingress_rule)
31
+ @rules << ingress_rule
32
+ end
33
+
34
+ end
35
+ end
@@ -1,31 +1,31 @@
1
- require 'cf_factory/base/cf_inner'
2
-
3
- module CfFactory
4
- class CfRdsSecurityGroupIngress
5
- include CfInner
6
-
7
- def initialize(cidr = nil, ec2_sec_group = nil, ec2_sec_group_owner_id = nil)
8
- @cidr = cidr
9
- @ec2_sec_group = ec2_sec_group
10
- @ec2_sec_group_owner_id = ec2_sec_group_owner_id
11
- @use_sg_id = true
12
- end
13
-
14
- def set_use_sg_id(flag)
15
- @use_sg_id = flag
16
- end
17
-
18
- def get_cf_attributes
19
- result = {}
20
- result["CIDRIP"] = @cidr unless @cidr.nil?
21
- if @use_sg_id
22
- result["EC2SecurityGroupId"] = @ec2_sec_group.generate_ref unless @ec2_sec_group.nil?
23
- else
24
- result["EC2SecurityGroupName"] = @ec2_sec_group.generate_ref unless @ec2_sec_group.nil?
25
- end
26
- result["EC2SecurityGroupOwnerId"] = @ec2_sec_group_owner_id unless @ec2_sec_group_owner_id.nil?
27
- result
28
- end
29
-
30
- end
31
- end
1
+ require 'cf_factory/base/cf_inner'
2
+
3
+ module CfFactory
4
+ class CfRdsSecurityGroupIngress
5
+ include CfInner
6
+
7
+ def initialize(cidr = nil, ec2_sec_group = nil, ec2_sec_group_owner_id = nil)
8
+ @cidr = cidr
9
+ @ec2_sec_group = ec2_sec_group
10
+ @ec2_sec_group_owner_id = ec2_sec_group_owner_id
11
+ @use_sg_id = true
12
+ end
13
+
14
+ def set_use_sg_id(flag)
15
+ @use_sg_id = flag
16
+ end
17
+
18
+ def get_cf_attributes
19
+ result = {}
20
+ result["CIDRIP"] = @cidr unless @cidr.nil?
21
+ if @use_sg_id
22
+ result["EC2SecurityGroupId"] = @ec2_sec_group.generate_ref unless @ec2_sec_group.nil?
23
+ else
24
+ result["EC2SecurityGroupName"] = @ec2_sec_group.generate_ref unless @ec2_sec_group.nil?
25
+ end
26
+ result["EC2SecurityGroupOwnerId"] = @ec2_sec_group_owner_id unless @ec2_sec_group_owner_id.nil?
27
+ result
28
+ end
29
+
30
+ end
31
+ end