Skip VPC endpoint routes when removing default route table's routes. (#10303)

This commit is contained in:
Kit Ewbank 2016-11-23 11:12:59 -05:00 committed by Paul Stack
parent b335418d0d
commit 7319968f5f
2 changed files with 68 additions and 0 deletions

View File

@ -188,6 +188,11 @@ func revokeAllRouteTableRules(defaultRouteTableId string, meta interface{}) erro
if r.GatewayId != nil && *r.GatewayId == "local" {
continue
}
if r.DestinationPrefixListId != nil {
// Skipping because VPC endpoint routes are handled separately
// See aws_vpc_endpoint
continue
}
log.Printf(
"[INFO] Deleting route from %s: %s",
defaultRouteTableId, *r.DestinationCidrBlock)

View File

@ -65,6 +65,26 @@ func TestAccAWSDefaultRouteTable_swap(t *testing.T) {
})
}
func TestAccAWSDefaultRouteTable_vpc_endpoint(t *testing.T) {
var v ec2.RouteTable
resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
IDRefreshName: "aws_default_route_table.foo",
Providers: testAccProviders,
CheckDestroy: testAccCheckDefaultRouteTableDestroy,
Steps: []resource.TestStep{
resource.TestStep{
Config: testAccDefaultRouteTable_vpc_endpoint,
Check: resource.ComposeTestCheckFunc(
testAccCheckRouteTableExists(
"aws_default_route_table.foo", &v),
),
},
},
})
}
func testAccCheckDefaultRouteTableDestroy(s *terraform.State) error {
conn := testAccProvider.Meta().(*AWSClient).ec2conn
@ -238,3 +258,46 @@ resource "aws_main_route_table_association" "a" {
route_table_id = "${aws_route_table.r.id}"
}
`
const testAccDefaultRouteTable_vpc_endpoint = `
provider "aws" {
region = "us-west-2"
}
resource "aws_vpc" "test" {
cidr_block = "10.0.0.0/16"
tags {
Name = "test"
}
}
resource "aws_internet_gateway" "igw" {
vpc_id = "${aws_vpc.test.id}"
tags {
Name = "test"
}
}
resource "aws_vpc_endpoint" "s3" {
vpc_id = "${aws_vpc.test.id}"
service_name = "com.amazonaws.us-west-2.s3"
route_table_ids = [
"${aws_vpc.test.default_route_table_id}"
]
}
resource "aws_default_route_table" "foo" {
default_route_table_id = "${aws_vpc.test.default_route_table_id}"
tags {
Name = "test"
}
route {
cidr_block = "0.0.0.0/0"
gateway_id = "${aws_internet_gateway.igw.id}"
}
}
`