cf_factory 0.0.4 → 0.0.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.
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