1
0
Fork 0
mirror of https://github.com/fog/fog-aws.git synced 2022-11-09 13:50:52 -05:00
fog--fog-aws/tests/requests/compute/subnet_tests.rb
2015-01-02 09:42:20 -08:00

85 lines
2.7 KiB
Ruby

Shindo.tests('Fog::Compute[:aws] | subnet requests', ['aws']) do
@subnet_format = {
'subnetId' => String,
'state' => String,
'vpcId' => String,
'cidrBlock' => String,
'availableIpAddressCount' => String,
'availabilityZone' => String,
'tagSet' => Hash,
}
@single_subnet_format = {
'subnet' => @subnet_format,
'requestId' => String,
}
@subnets_format = {
'subnetSet' => [@subnet_format],
'requestId' => String
}
@modify_subnet_format = {
'requestId' => String,
'return' => Fog::Boolean
}
@vpc_network = '10.0.10.0/24'
@vpc=Fog::Compute[:aws].vpcs.create('cidr_block' => @vpc_network)
@vpc_id = @vpc.id
tests('success') do
@subnet_id = nil
@subnet_network = '10.0.10.16/28'
tests("#create_subnet('#{@vpc_id}', '#{@subnet_network}')").formats(@single_subnet_format) do
data = Fog::Compute[:aws].create_subnet(@vpc_id, @subnet_network).body
@subnet_id = data['subnet']['subnetId']
data
end
tests("modify_subnet('#{@subnet_id}'").formats(@modify_subnet_format) do
Fog::Compute[:aws].modify_subnet_attribute(@subnet_id, 'MapPublicIpOnLaunch' => true).body
end
@vpc2=Fog::Compute[:aws].vpcs.create('cidr_block' => @vpc_network)
@vpc2_id = @vpc2.id
# Create a second subnet in a second VPC with the same netblock
tests("#create_subnet('#{@vpc2_id}', '#{@subnet_network}')").formats(@single_subnet_format) do
data = Fog::Compute[:aws].create_subnet(@vpc2_id, @subnet_network).body
@subnet2_id = data['subnet']['subnetId']
data
end
Fog::Compute[:aws].delete_subnet(@subnet2_id)
tests('#describe_subnets').formats(@subnets_format) do
Fog::Compute[:aws].describe_subnets.body
end
tests("#delete_subnet('#{@subnet_id}')").formats(AWS::Compute::Formats::BASIC) do
Fog::Compute[:aws].delete_subnet(@subnet_id).body
end
end
tests('failure') do
tests("#create_subnet('vpc-00000000', '10.0.10.0/16')").raises(Fog::Compute::AWS::NotFound) do
Fog::Compute[:aws].create_subnet('vpc-00000000', '10.0.10.0/16')
end
tests("#create_subnet('#{@vpc_id}', '10.0.9.16/28')").raises(Fog::Compute::AWS::Error) do
Fog::Compute[:aws].create_subnet(@vpc_id, '10.0.9.16/28')
end
# Attempt to create two subnets with conflicting CIDRs in the same VPC
tests("#create_subnet('#{@vpc_id}', '10.0.10.0/24'); " \
"#create_subnet('#{@vpc_id}', '10.0.10.64/26'); ").raises(::Fog::Compute::AWS::Error) do
Fog::Compute[:aws].create_subnet(@vpc_id, '10.0.10.0/24')
Fog::Compute[:aws].create_subnet(@vpc_id, '10.0.10.64/26')
end
end
@vpc.destroy
end