1
0
Fork 0
mirror of https://github.com/fog/fog-aws.git synced 2022-11-09 13:50:52 -05:00

fix default vpc security group mocks

Create default security groups when the vpc is created.  This prevents
sequencing issues in the tests.
This commit is contained in:
Joshua Lane 2017-02-24 13:37:44 -08:00
parent fadf7f9e9b
commit 3f82c2930e
No known key found for this signature in database
GPG key ID: E37522BC4267876A
3 changed files with 29 additions and 38 deletions

View file

@ -77,6 +77,28 @@ module Fog
# Manually override since Amazon doesn't let you create a default one
self.data[:network_acls][default_nacl.network_acl_id]['default'] = true
# create default security groups
default_elb_group_name = "default_elb_#{Fog::Mock.random_hex(6)}"
Fog::Compute::AWS::Mock.data[region][@aws_access_key_id][:security_groups][default_elb_group_name] = {
'groupDescription' => 'default_elb security group',
'groupName' => default_elb_group_name,
'groupId' => Fog::AWS::Mock.security_group_id,
'ipPermissions' => [],
'ownerId' => self.data[:owner_id],
'vpcId' => vpc_id
}
Fog::Compute::AWS::Mock.data[region][@aws_access_key_id][:security_groups]['default'] = {
'groupDescription' => 'default',
'groupName' => 'default',
'groupId' => Fog::AWS::Mock.security_group_id,
'ipPermissions' => [],
'ownerId' => self.data[:owner_id],
'vpcId' => vpc_id
}
response.body = {
'requestId' => Fog::AWS::Mock.request_id,
'vpcSet' => [vpc]

View file

@ -111,53 +111,22 @@ module Fog
when 'EC2-Classic'
Fog::Compute::AWS::Mock.data[region][@aws_access_key_id][:security_groups]['amazon-elb-sg']
when 'EC2-VPC-Default'
# find or create default vpc
compute = Fog::Compute::AWS::new(:aws_access_key_id => @aws_access_key_id, :aws_secret_access_key => @aws_secret_access_key)
unless vpc = compute.vpcs.all.first
vpc = compute.vpcs.create('cidr_block' => '10.0.0.0/24')
end
default_sg = Fog::Compute::AWS::Mock.data[region][@aws_access_key_id][:security_groups].values.find { |sg|
vpc = compute.vpcs.all.first ||
compute.vpcs.create('cidr_block' => '10.0.0.0/24')
Fog::Compute::AWS::Mock.data[region][@aws_access_key_id][:security_groups].values.find { |sg|
sg['groupName'] =~ /^default_elb/ &&
sg["vpcId"] == vpc.id
}
unless default_sg
default_sg = {
'groupDescription' => 'default_elb security group',
'groupName' => "default_elb_#{Fog::Mock.random_hex(6)}",
'groupId' => Fog::AWS::Mock.security_group_id,
'ipPermissionsEgress' => [],
'ipPermissions' => [],
'ownerId' => self.data[:owner_id],
'vpcId' => vpc.id
}
Fog::Compute::AWS::Mock.data[region][@aws_access_key_id][:security_groups]['default'] = default_sg
end
default_sg
when 'EC2-VPC'
# find or create default vpc security group
vpc_id = subnets.first["vpcId"]
default_sg = Fog::Compute::AWS::Mock.data[region][@aws_access_key_id][:security_groups].values.find { |sg|
Fog::Compute::AWS::Mock.data[region][@aws_access_key_id][:security_groups].values.find { |sg|
sg['groupName'] == 'default' &&
sg["vpcId"] == vpc_id
}
unless default_sg
default_sg = {
'groupDescription' => 'default elb security group',
'groupName' => 'default',
'groupId' => Fog::AWS::Mock.security_group_id,
'ipPermissionsEgress' => [],
'ipPermissions' => [],
'ownerId' => self.data[:owner_id],
'vpcId' => vpc_id
}
Fog::Compute::AWS::Mock.data[region][@aws_access_key_id][:security_groups]['default'] = default_sg
end
default_sg
end
self.data[:tags] ||= {}
self.data[:tags][lb_name] = {}

View file

@ -33,7 +33,7 @@ Shindo.tests('AWS::EFS | file systems', ['aws', 'efs']) do
:vpc_id => vpc.id,
:cidr_block => "10.0.1.0/24"
)
default_security_group = Fog::Compute[:aws].security_groups.detect { |sg| sg.description == 'default group' }
default_security_group = Fog::Compute[:aws].security_groups.detect { |sg| sg.description == 'default_elb security group' }
else
vpc = Fog::Compute[:aws].vpcs.first
subnet = vpc.subnets.first