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.
- data/bin/cf_factory +9 -9
- data/examples/base_vpc.rb +40 -40
- data/examples/cloudfront_private.rb +23 -23
- data/examples/cloudinit_script_for_one_instance.rb +77 -77
- data/examples/cloudinit_script_with_autoscaling.rb +85 -85
- data/examples/dynamodb_table.rb +24 -24
- data/examples/elastic_beanstalk_example.rb +23 -23
- data/examples/elb_with_cloudfront.rb +100 -100
- data/examples/instance_with_eip.rb +40 -40
- data/examples/instance_with_yum.rb +40 -40
- data/examples/just_an_instance.rb +31 -31
- data/examples/nat_mutual_monitoring.rb +69 -69
- data/examples/play_with_region_and_zones.rb +28 -28
- data/examples/ra_web_hosting.rb +148 -148
- data/examples/s3_with_cloudfront.rb +35 -35
- data/examples/test_vpc.rb +61 -61
- data/lib/cf_factory/as/cf_as_group.rb +80 -77
- data/lib/cf_factory/as/cf_as_launch_config.rb +55 -55
- data/lib/cf_factory/as/cf_as_scaling_policy.rb +35 -35
- data/lib/cf_factory/as/cf_as_update_policy.rb +23 -0
- data/lib/cf_factory/base/cf_base.rb +112 -102
- data/lib/cf_factory/base/cf_ec2_tag.rb +34 -34
- data/lib/cf_factory/base/cf_generator.rb +20 -20
- data/lib/cf_factory/base/cf_helper.rb +93 -93
- data/lib/cf_factory/base/cf_inner.rb +74 -74
- data/lib/cf_factory/base/cf_main.rb +103 -103
- data/lib/cf_factory/base/cf_mapping.rb +28 -28
- data/lib/cf_factory/base/cf_named_inner.rb +70 -1
- data/lib/cf_factory/base/cf_output.rb +26 -26
- data/lib/cf_factory/base/cf_parameter.rb +27 -27
- data/lib/cf_factory/base/cf_script_reader.rb +34 -34
- data/lib/cf_factory/cloudformation/cf_cloud_formation_init.rb +27 -27
- data/lib/cf_factory/cloudformation/cf_cloudformation_command.rb +39 -39
- data/lib/cf_factory/cloudformation/cf_cloudformation_commands.rb +27 -27
- data/lib/cf_factory/cloudformation/cf_cloudformation_config.rb +35 -35
- data/lib/cf_factory/cloudformation/cf_cloudformation_file.rb +40 -40
- data/lib/cf_factory/cloudformation/cf_cloudformation_files.rb +27 -27
- data/lib/cf_factory/cloudformation/cf_cloudformation_inner.rb +30 -30
- data/lib/cf_factory/cloudformation/cf_cloudformation_package.rb +36 -36
- data/lib/cf_factory/cloudformation/cf_cloudformation_packages.rb +44 -44
- data/lib/cf_factory/cloudformation/cf_cloudformation_sources.rb +32 -32
- data/lib/cf_factory/cloudformation/cf_init_script.rb +80 -80
- data/lib/cf_factory/cloudfront/cf_cache_behavior.rb +39 -39
- data/lib/cf_factory/cloudfront/cf_cache_behaviors.rb +30 -30
- data/lib/cf_factory/cloudfront/cf_cloudfront_distribution.rb +66 -66
- data/lib/cf_factory/cloudfront/cf_custom_origin_config.rb +39 -39
- data/lib/cf_factory/cloudfront/cf_default_cache_behavior.rb +34 -34
- data/lib/cf_factory/cloudfront/cf_distribution_config.rb +33 -33
- data/lib/cf_factory/cloudfront/cf_forwarded_values.rb +27 -27
- data/lib/cf_factory/cloudfront/cf_logging.rb +26 -26
- data/lib/cf_factory/cloudfront/cf_origin.rb +42 -42
- data/lib/cf_factory/cloudfront/cf_s3_origin_config.rb +27 -27
- data/lib/cf_factory/cloudwatch/cf_cloud_watch_alarm.rb +60 -60
- data/lib/cf_factory/dynamo/cf_dynamo_table.rb +45 -45
- data/lib/cf_factory/eb/cd_eb_solution_stack.rb +27 -28
- data/lib/cf_factory/eb/cf_eb_application.rb +41 -41
- data/lib/cf_factory/eb/cf_eb_application_version.rb +24 -24
- data/lib/cf_factory/eb/cf_eb_configuration_template.rb +36 -36
- data/lib/cf_factory/eb/cf_eb_environment.rb +56 -56
- data/lib/cf_factory/eb/cf_eb_option_setting.rb +19 -19
- data/lib/cf_factory/ec2/cf_ebs_volume.rb +56 -56
- data/lib/cf_factory/ec2/cf_ec2_instance.rb +80 -66
- data/lib/cf_factory/ec2/cf_ec2_security_group.rb +42 -42
- data/lib/cf_factory/ec2/cf_ec2_security_group_egress.rb +30 -30
- data/lib/cf_factory/ec2/cf_ec2_security_group_ingress.rb +41 -41
- data/lib/cf_factory/ec2/cf_eip.rb +28 -28
- data/lib/cf_factory/ec2/cf_eip_association.rb +33 -31
- data/lib/cf_factory/ec2/cf_inner_network_interface.rb +26 -0
- data/lib/cf_factory/ec2/cf_network_interface.rb +40 -0
- data/lib/cf_factory/elb/cf_app_cookie_stickiness_policy.rb +17 -17
- data/lib/cf_factory/elb/cf_elb.rb +51 -51
- data/lib/cf_factory/elb/cf_health_check.rb +25 -25
- data/lib/cf_factory/elb/cf_lb_cookie_stickiness_policy.rb +17 -17
- data/lib/cf_factory/elb/cf_listener.rb +28 -28
- data/lib/cf_factory/help/fixes.rb +15 -15
- data/lib/cf_factory/help/ip_mask.rb +167 -167
- data/lib/cf_factory/help/template_validation.rb +30 -30
- data/lib/cf_factory/iam/cf_iam_access_key.rb +34 -34
- data/lib/cf_factory/iam/cf_iam_group.rb +32 -32
- data/lib/cf_factory/iam/cf_iam_instance_profile.rb +32 -32
- data/lib/cf_factory/iam/cf_iam_policy.rb +20 -20
- data/lib/cf_factory/iam/cf_iam_role.rb +58 -58
- data/lib/cf_factory/iam/cf_iam_statement.rb +25 -25
- data/lib/cf_factory/iam/cf_iam_user.rb +36 -36
- data/lib/cf_factory/iam/cf_policy_document.rb +21 -21
- data/lib/cf_factory/modules/base_vpc.rb +63 -63
- data/lib/cf_factory/rds/cf_rds_instance.rb +55 -55
- data/lib/cf_factory/rds/cf_rds_security_group.rb +35 -35
- data/lib/cf_factory/rds/cf_rds_security_group_ingress.rb +31 -31
- data/lib/cf_factory/rds/cf_rds_subnet_group.rb +31 -31
- data/lib/cf_factory/route53/cf_elb_alias_target.rb +23 -23
- data/lib/cf_factory/route53/cf_record_set.rb +63 -63
- data/lib/cf_factory/route53/cf_route53_record_set.rb +63 -63
- data/lib/cf_factory/route53/cf_route53_record_set_group.rb +44 -44
- data/lib/cf_factory/s3/cf_s3_bucket.rb +34 -34
- data/lib/cf_factory/s3/cf_web_site_config.rb +26 -26
- data/lib/cf_factory/sqs/cf_sqs_queue.rb +28 -28
- data/lib/cf_factory/vpc/cf_attach_gateway.rb +30 -30
- data/lib/cf_factory/vpc/cf_internet_gateway.rb +32 -32
- data/lib/cf_factory/vpc/cf_network_acl.rb +41 -41
- data/lib/cf_factory/vpc/cf_network_acl_association.rb +26 -26
- data/lib/cf_factory/vpc/cf_network_acl_entry.rb +39 -39
- data/lib/cf_factory/vpc/cf_route.rb +45 -45
- data/lib/cf_factory/vpc/cf_route_table.rb +43 -43
- data/lib/cf_factory/vpc/cf_route_table_association.rb +26 -26
- data/lib/cf_factory/vpc/cf_subnet.rb +50 -50
- data/lib/cf_factory/vpc/cf_vpc.rb +66 -66
- data/lib/cf_factory.rb +12 -12
- metadata +120 -91
|
@@ -1,56 +1,56 @@
|
|
|
1
|
-
require 'cf_factory/base/cf_base'
|
|
2
|
-
module CfFactory
|
|
3
|
-
class CfEbsVolume
|
|
4
|
-
include CfBase
|
|
5
|
-
|
|
6
|
-
def initialize(name, availability_zone, options = {})
|
|
7
|
-
@name = name
|
|
8
|
-
@availability_zone = availability_zone
|
|
9
|
-
|
|
10
|
-
@size = options[:size]
|
|
11
|
-
@snapshot_id = options[:snapshot_id]
|
|
12
|
-
@iops = options[:iops]
|
|
13
|
-
@volume_type = options[:volume_type]
|
|
14
|
-
set_deletion_policy("Delete")
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def self.create_normal(name, availability_zone, size)
|
|
18
|
-
CfEbsVolume.new(name, availability_zone, {:size => size})
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def self.create_piops(name, availability_zone, size, iops)
|
|
22
|
-
CfEbsVolume.new(name, availability_zone, {:size => size, :volume_type => "io1", :iops => iops})
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def self.create_from_snapshot(name, availability_zone, snapshot_id)
|
|
26
|
-
CfEbsVolume.new(name, availability_zone, {:snapshot_id => snapshot_id})
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
def set_tags(tag_list)
|
|
30
|
-
@tag_list = tag_list
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def set_deletion_policy(deletion_policy)
|
|
34
|
-
@deletion_policy = deletion_policy
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def get_cf_type
|
|
38
|
-
"AWS::EC2::Volume"
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
def get_cf_attributes
|
|
42
|
-
result = super
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
def get_cf_properties
|
|
46
|
-
result = {}
|
|
47
|
-
result["AvailabilityZone"] = @availability_zone
|
|
48
|
-
result["Size"] = @size unless @size.nil?
|
|
49
|
-
result["VolumeType"] = @volume_type unless @volume_type.nil?
|
|
50
|
-
result["SnapshotId"] = @snapshot_id unless @snapshot_id.nil?
|
|
51
|
-
result["Iops"] = @iops unless @iops.nil?
|
|
52
|
-
result
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
end
|
|
56
|
-
end
|
|
1
|
+
require 'cf_factory/base/cf_base'
|
|
2
|
+
module CfFactory
|
|
3
|
+
class CfEbsVolume
|
|
4
|
+
include CfBase
|
|
5
|
+
|
|
6
|
+
def initialize(name, availability_zone, options = {})
|
|
7
|
+
@name = name
|
|
8
|
+
@availability_zone = availability_zone
|
|
9
|
+
|
|
10
|
+
@size = options[:size]
|
|
11
|
+
@snapshot_id = options[:snapshot_id]
|
|
12
|
+
@iops = options[:iops]
|
|
13
|
+
@volume_type = options[:volume_type]
|
|
14
|
+
set_deletion_policy("Delete")
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def self.create_normal(name, availability_zone, size)
|
|
18
|
+
CfEbsVolume.new(name, availability_zone, {:size => size})
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def self.create_piops(name, availability_zone, size, iops)
|
|
22
|
+
CfEbsVolume.new(name, availability_zone, {:size => size, :volume_type => "io1", :iops => iops})
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def self.create_from_snapshot(name, availability_zone, snapshot_id)
|
|
26
|
+
CfEbsVolume.new(name, availability_zone, {:snapshot_id => snapshot_id})
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def set_tags(tag_list)
|
|
30
|
+
@tag_list = tag_list
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def set_deletion_policy(deletion_policy)
|
|
34
|
+
@deletion_policy = deletion_policy
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def get_cf_type
|
|
38
|
+
"AWS::EC2::Volume"
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def get_cf_attributes
|
|
42
|
+
result = super
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def get_cf_properties
|
|
46
|
+
result = {}
|
|
47
|
+
result["AvailabilityZone"] = @availability_zone
|
|
48
|
+
result["Size"] = @size unless @size.nil?
|
|
49
|
+
result["VolumeType"] = @volume_type unless @volume_type.nil?
|
|
50
|
+
result["SnapshotId"] = @snapshot_id unless @snapshot_id.nil?
|
|
51
|
+
result["Iops"] = @iops unless @iops.nil?
|
|
52
|
+
result
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
end
|
|
56
|
+
end
|
|
@@ -1,66 +1,80 @@
|
|
|
1
|
-
require 'cf_factory/base/cf_base'
|
|
2
|
-
module CfFactory
|
|
3
|
-
class CfEc2Instance
|
|
4
|
-
SUPPORTED_TYPES = ["t1.micro","m1.small","m1.medium","m1.large","m1.xlarge",
|
|
5
|
-
"m2.xlarge","m2.2xlarge","m2.4xlarge","m3.xlarge","m3.2xlarge","c1.medium", "c1.xlarge",
|
|
6
|
-
"cc1.4xlarge","cc2.8xlarge", "cg1.4xlarge", "hi1.4xlarge"]
|
|
7
|
-
include CfBase
|
|
8
|
-
|
|
9
|
-
def initialize(name, image_id, instance_type, options = {})
|
|
10
|
-
@name = name
|
|
11
|
-
@image_id = image_id
|
|
12
|
-
@instance_type = instance_type
|
|
13
|
-
@keyname = options[:keyname]
|
|
14
|
-
@subnet = options[:subnet]
|
|
15
|
-
@vpc_security_groups = options[:vpc_security_groups]
|
|
16
|
-
@security_groups = options[:security_groups]
|
|
17
|
-
@source_dest_check = options[:source_dest_check]
|
|
18
|
-
@user_data = options[:user_data]
|
|
19
|
-
@availability_zone = options[:availability_zone]
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
result["
|
|
45
|
-
result["
|
|
46
|
-
result["
|
|
47
|
-
result["
|
|
48
|
-
result["
|
|
49
|
-
result["
|
|
50
|
-
result
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
end
|
|
66
|
-
|
|
1
|
+
require 'cf_factory/base/cf_base'
|
|
2
|
+
module CfFactory
|
|
3
|
+
class CfEc2Instance
|
|
4
|
+
SUPPORTED_TYPES = ["t1.micro","m1.small","m1.medium","m1.large","m1.xlarge",
|
|
5
|
+
"m2.xlarge","m2.2xlarge","m2.4xlarge","m3.xlarge","m3.2xlarge","c1.medium", "c1.xlarge",
|
|
6
|
+
"cc1.4xlarge","cc2.8xlarge", "cg1.4xlarge", "hi1.4xlarge"]
|
|
7
|
+
include CfBase
|
|
8
|
+
|
|
9
|
+
def initialize(name, image_id, instance_type, options = {})
|
|
10
|
+
@name = name
|
|
11
|
+
@image_id = image_id
|
|
12
|
+
@instance_type = instance_type
|
|
13
|
+
@keyname = options[:keyname]
|
|
14
|
+
@subnet = options[:subnet]
|
|
15
|
+
@vpc_security_groups = options[:vpc_security_groups]
|
|
16
|
+
@security_groups = options[:security_groups]
|
|
17
|
+
@source_dest_check = options[:source_dest_check]
|
|
18
|
+
@user_data = options[:user_data]
|
|
19
|
+
@availability_zone = options[:availability_zone]
|
|
20
|
+
@network_interfaces = options[:network_interfaces]
|
|
21
|
+
validate()
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def set_tags(tag_list)
|
|
25
|
+
@tag_list = tag_list
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def set_deletion_policy(deletion_policy)
|
|
29
|
+
@deletion_policy = deletion_policy
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def get_cf_type
|
|
33
|
+
"AWS::EC2::Instance"
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def get_cf_attributes
|
|
37
|
+
result = super
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def get_cf_properties
|
|
41
|
+
result = {"ImageId" => CfHelper.clean(@image_id),
|
|
42
|
+
"InstanceType" => @instance_type,
|
|
43
|
+
}
|
|
44
|
+
result["KeyName"] = @keyname unless @keyname.nil?
|
|
45
|
+
result["SubnetId"] = @subnet.generate_ref unless @subnet.nil?
|
|
46
|
+
result["SecurityGroupIds"] = CfHelper.generate_ref_array(@vpc_security_groups) unless @vpc_security_groups.nil?
|
|
47
|
+
result["SecurityGroups"] = CfHelper.generate_ref_array(@security_groups) unless @security_groups.nil?
|
|
48
|
+
result["SourceDestCheck"] = @source_dest_check unless @source_dest_check.nil?
|
|
49
|
+
result["UserData"] = CfHelper.base64(@user_data) unless @user_data.nil?
|
|
50
|
+
result["AvailabilityZone"] = @availability_zone unless @availability_zone.nil?
|
|
51
|
+
if !@network_interfaces.nil? && @network_interfaces.size > 0
|
|
52
|
+
nics = []
|
|
53
|
+
index = 0
|
|
54
|
+
@network_interfaces.each() {|nic|
|
|
55
|
+
nics << CfFactory::CfInnerNetworkInterface.new(nic, index)
|
|
56
|
+
index += 1
|
|
57
|
+
}
|
|
58
|
+
result["NetworkInterfaces"] = CfHelper.generate_inner_array(nics)
|
|
59
|
+
end
|
|
60
|
+
result
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def assign_eip
|
|
64
|
+
#TODo
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
private
|
|
68
|
+
|
|
69
|
+
def validate
|
|
70
|
+
unless @instance_type.include?("Ref")
|
|
71
|
+
raise Exception.new("instance type not supported #{@instance_type}") unless SUPPORTED_TYPES.include?(@instance_type)
|
|
72
|
+
end
|
|
73
|
+
unless @network_interfaces.nil?
|
|
74
|
+
raise Exception.new("no security group allowed when ENI specified") unless @security_groups.nil?
|
|
75
|
+
raise Exception.new("no subnet allowed when ENI specified") unless @subnet.nil?
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
end
|
|
80
|
+
end
|
|
@@ -1,42 +1,42 @@
|
|
|
1
|
-
require 'cf_factory/base/cf_base'
|
|
2
|
-
module CfFactory
|
|
3
|
-
class CfEc2SecurityGroup
|
|
4
|
-
include CfBase
|
|
5
|
-
|
|
6
|
-
def initialize(name, description, vpc = nil)
|
|
7
|
-
@name = name
|
|
8
|
-
@description = description
|
|
9
|
-
@vpc = vpc
|
|
10
|
-
@ingress_rules = []
|
|
11
|
-
@egress_rules = []
|
|
12
|
-
#TODO: already check name/description for invalid characters
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def get_cf_type
|
|
16
|
-
"AWS::EC2::SecurityGroup"
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def get_cf_attributes
|
|
20
|
-
{}
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def get_cf_properties
|
|
24
|
-
result = {"GroupDescription" => @description}
|
|
25
|
-
result["VpcId"] = @vpc.generate_ref unless @vpc.nil?
|
|
26
|
-
ingress = CfHelper.generate_inner_array(@ingress_rules)
|
|
27
|
-
result["SecurityGroupIngress"] = ingress unless @ingress_rules.size == 0
|
|
28
|
-
egress = CfHelper.generate_inner_array(@egress_rules)
|
|
29
|
-
result["SecurityGroupEgress"] = egress unless @egress_rules.size == 0
|
|
30
|
-
result
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def add_ingress_rule(ingress_rule)
|
|
34
|
-
@ingress_rules << ingress_rule
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def add_egress_rule(egress_rule)
|
|
38
|
-
@egress_rules << egress_rule
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
end
|
|
42
|
-
end
|
|
1
|
+
require 'cf_factory/base/cf_base'
|
|
2
|
+
module CfFactory
|
|
3
|
+
class CfEc2SecurityGroup
|
|
4
|
+
include CfBase
|
|
5
|
+
|
|
6
|
+
def initialize(name, description, vpc = nil)
|
|
7
|
+
@name = name
|
|
8
|
+
@description = description
|
|
9
|
+
@vpc = vpc
|
|
10
|
+
@ingress_rules = []
|
|
11
|
+
@egress_rules = []
|
|
12
|
+
#TODO: already check name/description for invalid characters
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def get_cf_type
|
|
16
|
+
"AWS::EC2::SecurityGroup"
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def get_cf_attributes
|
|
20
|
+
{}
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def get_cf_properties
|
|
24
|
+
result = {"GroupDescription" => @description}
|
|
25
|
+
result["VpcId"] = @vpc.generate_ref unless @vpc.nil?
|
|
26
|
+
ingress = CfHelper.generate_inner_array(@ingress_rules)
|
|
27
|
+
result["SecurityGroupIngress"] = ingress unless @ingress_rules.size == 0
|
|
28
|
+
egress = CfHelper.generate_inner_array(@egress_rules)
|
|
29
|
+
result["SecurityGroupEgress"] = egress unless @egress_rules.size == 0
|
|
30
|
+
result
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def add_ingress_rule(ingress_rule)
|
|
34
|
+
@ingress_rules << ingress_rule
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def add_egress_rule(egress_rule)
|
|
38
|
+
@egress_rules << egress_rule
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
end
|
|
42
|
+
end
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
require 'cf_factory/base/cf_inner'
|
|
2
|
-
|
|
3
|
-
module CfFactory
|
|
4
|
-
class CfEc2SecurityGroupEgress
|
|
5
|
-
include CfInner
|
|
6
|
-
|
|
7
|
-
def additional_indent
|
|
8
|
-
2
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def initialize(ip_protocol, from_port, to_port, cidr = nil, dest_group = nil)
|
|
12
|
-
@ip_protocol = ip_protocol
|
|
13
|
-
@from_port = from_port
|
|
14
|
-
@to_port = to_port
|
|
15
|
-
@cidr = cidr
|
|
16
|
-
@dest_group = dest_group
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def get_cf_attributes
|
|
20
|
-
result = {}
|
|
21
|
-
result["CidrIp"] = @cidr unless @cidr.nil?
|
|
22
|
-
result["DestinationSecurityGroupId"] = @dest_group.generate_ref unless @dest_group.nil?
|
|
23
|
-
result["FromPort"] = @from_port
|
|
24
|
-
result["ToPort"] = @to_port
|
|
25
|
-
result["IpProtocol"] = @ip_protocol
|
|
26
|
-
result
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
end
|
|
30
|
-
end
|
|
1
|
+
require 'cf_factory/base/cf_inner'
|
|
2
|
+
|
|
3
|
+
module CfFactory
|
|
4
|
+
class CfEc2SecurityGroupEgress
|
|
5
|
+
include CfInner
|
|
6
|
+
|
|
7
|
+
def additional_indent
|
|
8
|
+
2
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def initialize(ip_protocol, from_port, to_port, cidr = nil, dest_group = nil)
|
|
12
|
+
@ip_protocol = ip_protocol
|
|
13
|
+
@from_port = from_port
|
|
14
|
+
@to_port = to_port
|
|
15
|
+
@cidr = cidr
|
|
16
|
+
@dest_group = dest_group
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def get_cf_attributes
|
|
20
|
+
result = {}
|
|
21
|
+
result["CidrIp"] = @cidr unless @cidr.nil?
|
|
22
|
+
result["DestinationSecurityGroupId"] = @dest_group.generate_ref unless @dest_group.nil?
|
|
23
|
+
result["FromPort"] = @from_port
|
|
24
|
+
result["ToPort"] = @to_port
|
|
25
|
+
result["IpProtocol"] = @ip_protocol
|
|
26
|
+
result
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
require 'cf_factory/base/cf_inner'
|
|
2
|
-
|
|
3
|
-
module CfFactory
|
|
4
|
-
class CfEc2SecurityGroupIngress
|
|
5
|
-
include CfInner
|
|
6
|
-
|
|
7
|
-
def additional_indent
|
|
8
|
-
2
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def initialize(ip_protocol, from_port, to_port, cidr = nil, source_group = nil, options = {})
|
|
12
|
-
@ip_protocol = ip_protocol
|
|
13
|
-
@from_port = from_port
|
|
14
|
-
@to_port = to_port
|
|
15
|
-
@cidr = cidr
|
|
16
|
-
@source_group = source_group
|
|
17
|
-
@source_group_owner_id = options[:source_group_owner_id]
|
|
18
|
-
@use_sg_id = true
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def set_use_sg_id(flag)
|
|
22
|
-
@use_sg_id = flag
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def get_cf_attributes
|
|
26
|
-
result = {}
|
|
27
|
-
result["CidrIp"] = @cidr unless @cidr.nil?
|
|
28
|
-
if @use_sg_id
|
|
29
|
-
result["SourceSecurityGroupId"] = @source_group.generate_ref unless @source_group.nil?
|
|
30
|
-
else
|
|
31
|
-
result["SourceSecurityGroupName"] = @source_group.generate_ref unless @source_group.nil?
|
|
32
|
-
end
|
|
33
|
-
result["SourceSecurityGroupOwnerId"] = @source_group_owner_id unless @source_group_owner_id.nil?
|
|
34
|
-
result["FromPort"] = @from_port
|
|
35
|
-
result["ToPort"] = @to_port
|
|
36
|
-
result["IpProtocol"] = @ip_protocol
|
|
37
|
-
result
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
end
|
|
41
|
-
end
|
|
1
|
+
require 'cf_factory/base/cf_inner'
|
|
2
|
+
|
|
3
|
+
module CfFactory
|
|
4
|
+
class CfEc2SecurityGroupIngress
|
|
5
|
+
include CfInner
|
|
6
|
+
|
|
7
|
+
def additional_indent
|
|
8
|
+
2
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def initialize(ip_protocol, from_port, to_port, cidr = nil, source_group = nil, options = {})
|
|
12
|
+
@ip_protocol = ip_protocol
|
|
13
|
+
@from_port = from_port
|
|
14
|
+
@to_port = to_port
|
|
15
|
+
@cidr = cidr
|
|
16
|
+
@source_group = source_group
|
|
17
|
+
@source_group_owner_id = options[:source_group_owner_id]
|
|
18
|
+
@use_sg_id = true
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def set_use_sg_id(flag)
|
|
22
|
+
@use_sg_id = flag
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def get_cf_attributes
|
|
26
|
+
result = {}
|
|
27
|
+
result["CidrIp"] = @cidr unless @cidr.nil?
|
|
28
|
+
if @use_sg_id
|
|
29
|
+
result["SourceSecurityGroupId"] = @source_group.generate_ref unless @source_group.nil?
|
|
30
|
+
else
|
|
31
|
+
result["SourceSecurityGroupName"] = @source_group.generate_ref unless @source_group.nil?
|
|
32
|
+
end
|
|
33
|
+
result["SourceSecurityGroupOwnerId"] = @source_group_owner_id unless @source_group_owner_id.nil?
|
|
34
|
+
result["FromPort"] = @from_port
|
|
35
|
+
result["ToPort"] = @to_port
|
|
36
|
+
result["IpProtocol"] = @ip_protocol
|
|
37
|
+
result
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
end
|
|
41
|
+
end
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
require 'cf_factory/base/cf_base'
|
|
2
|
-
module CfFactory
|
|
3
|
-
class CfEip
|
|
4
|
-
include CfBase
|
|
5
|
-
|
|
6
|
-
def initialize(name, instance = nil, is_vpc = false)
|
|
7
|
-
@name = name
|
|
8
|
-
@instance = instance
|
|
9
|
-
@domain = is_vpc ? "vpc" : nil
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
def get_cf_type
|
|
13
|
-
"AWS::EC2::EIP"
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def get_cf_attributes
|
|
17
|
-
{}
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def get_cf_properties
|
|
21
|
-
result = {}
|
|
22
|
-
result["InstanceId"] = @instance.generate_ref unless @instance.nil?
|
|
23
|
-
result["Domain"] = @domain unless @domain.nil?
|
|
24
|
-
result
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
end
|
|
28
|
-
end
|
|
1
|
+
require 'cf_factory/base/cf_base'
|
|
2
|
+
module CfFactory
|
|
3
|
+
class CfEip
|
|
4
|
+
include CfBase
|
|
5
|
+
|
|
6
|
+
def initialize(name, instance = nil, is_vpc = false)
|
|
7
|
+
@name = name
|
|
8
|
+
@instance = instance
|
|
9
|
+
@domain = is_vpc ? "vpc" : nil
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def get_cf_type
|
|
13
|
+
"AWS::EC2::EIP"
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def get_cf_attributes
|
|
17
|
+
{}
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def get_cf_properties
|
|
21
|
+
result = {}
|
|
22
|
+
result["InstanceId"] = @instance.generate_ref unless @instance.nil?
|
|
23
|
+
result["Domain"] = @domain unless @domain.nil?
|
|
24
|
+
result
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -1,31 +1,33 @@
|
|
|
1
|
-
require 'cf_factory/base/cf_base'
|
|
2
|
-
|
|
3
|
-
module CfFactory
|
|
4
|
-
class CfEipAssociation
|
|
5
|
-
include CfBase
|
|
6
|
-
|
|
7
|
-
def initialize(name,
|
|
8
|
-
@name = name
|
|
9
|
-
@eip = eip
|
|
10
|
-
@instance = instance
|
|
11
|
-
@
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
result
|
|
25
|
-
result["
|
|
26
|
-
result["
|
|
27
|
-
result
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
end
|
|
31
|
-
|
|
1
|
+
require 'cf_factory/base/cf_base'
|
|
2
|
+
|
|
3
|
+
module CfFactory
|
|
4
|
+
class CfEipAssociation
|
|
5
|
+
include CfBase
|
|
6
|
+
|
|
7
|
+
def initialize(name, options = {})
|
|
8
|
+
@name = name
|
|
9
|
+
@eip = options[:eip]
|
|
10
|
+
@instance = options[:instance]
|
|
11
|
+
@network_interface = options[:network_interface]
|
|
12
|
+
@is_vpc = options[:is_vpc] || false
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def get_cf_type
|
|
16
|
+
"AWS::EC2::EIPAssociation"
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def get_cf_attributes
|
|
20
|
+
{}
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def get_cf_properties
|
|
24
|
+
result = {}
|
|
25
|
+
result["InstanceId"] = @instance.generate_ref unless @instance.nil?
|
|
26
|
+
result["EIP"] = @eip.generate_ref unless @is_vpc
|
|
27
|
+
result["AllocationId"] = @eip.retrieve_attribute("AllocationId") if @is_vpc
|
|
28
|
+
result["NetworkInterfaceId"] = @network_interface.generate_ref unless @network_interface.nil?
|
|
29
|
+
result
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
require 'cf_factory/base/cf_inner'
|
|
2
|
+
|
|
3
|
+
module CfFactory
|
|
4
|
+
class CfInnerNetworkInterface
|
|
5
|
+
include CfInner
|
|
6
|
+
|
|
7
|
+
def additional_indent
|
|
8
|
+
2
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def initialize(network_interface, device_index, options = {})
|
|
12
|
+
@network_interface = network_interface
|
|
13
|
+
@device_index = device_index
|
|
14
|
+
@delete_on_termination = options[:delete_on_termination]
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def get_cf_attributes
|
|
18
|
+
result = {}
|
|
19
|
+
result["NetworkInterfaceId"] = @network_interface.generate_ref
|
|
20
|
+
result["DeviceIndex"] = @device_index
|
|
21
|
+
result["DeleteOnTermination"] = @delete_on_termination unless @delete_on_termination.nil?
|
|
22
|
+
result
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
end
|
|
26
|
+
end
|