mirror of
https://github.com/fog/fog-aws.git
synced 2022-11-09 13:50:52 -05:00
86 lines
2.7 KiB
Ruby
86 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
|