def create_vpc(cidrBlock, options = {})
Excon::Response.new.tap do |response|
if cidrBlock
response.status = 200
vpc_id = Fog::AWS::Mock.vpc_id
vpc = {
'vpcId' => vpc_id,
'state' => 'pending',
'cidrBlock' => cidrBlock,
'dhcpOptionsId' => Fog::AWS::Mock.request_id,
'tagSet' => {},
'enableDnsSupport' => true,
'enableDnsHostnames' => false,
'mapPublicIpOnLaunch' => false,
'classicLinkEnabled' => false,
'classicLinkDnsSupport' => false
}
self.data[:vpcs].push(vpc)
default_route = self.route_tables.new(:vpc_id => vpc_id)
default_route.save
route_table = self.data[:route_tables].find { |routetable| routetable["routeTableId"].eql? default_route.id }
assoc = add_route_association(default_route.id, nil, true)
route_table["associationSet"].push(assoc)
default_nacl = self.network_acls.new(:vpc_id => vpc_id)
default_nacl.save
self.data[:network_acls][default_nacl.network_acl_id]['default'] = true
response.body = {
'requestId' => Fog::AWS::Mock.request_id,
'vpcSet' => [vpc]
}
else
response.status = 400
response.body = {
'Code' => 'InvalidParameterValue'
}
if cidrBlock.empty?
response.body['Message'] = "Invalid value '' for cidrBlock. Must be specified."
end
end
end
end