provider/aws: Fix import of RouteTable with destination prefixes (#9686)
* add test failure * provider/aws: Skip import of routes that contain destination prefix ids
This commit is contained in:
parent
0e85d6bb15
commit
01e8bd1f70
|
@ -40,6 +40,12 @@ func resourceAwsRouteTableImportState(
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if route.DestinationPrefixListId != nil {
|
||||||
|
// Skipping because VPC endpoint routes are handled separately
|
||||||
|
// See aws_vpc_endpoint
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
// Minimal data for route
|
// Minimal data for route
|
||||||
d := subResource.Data(nil)
|
d := subResource.Data(nil)
|
||||||
d.SetType("aws_route")
|
d.SetType("aws_route")
|
||||||
|
|
|
@ -35,3 +35,136 @@ func TestAccAWSRouteTable_importBasic(t *testing.T) {
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestAccAWSRouteTable_complex(t *testing.T) {
|
||||||
|
checkFn := func(s []*terraform.InstanceState) error {
|
||||||
|
// Expect 3: group, 2 rules
|
||||||
|
if len(s) != 3 {
|
||||||
|
return fmt.Errorf("bad states: %#v", s)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
resource.Test(t, resource.TestCase{
|
||||||
|
PreCheck: func() { testAccPreCheck(t) },
|
||||||
|
Providers: testAccProviders,
|
||||||
|
CheckDestroy: testAccCheckRouteTableDestroy,
|
||||||
|
Steps: []resource.TestStep{
|
||||||
|
resource.TestStep{
|
||||||
|
Config: testAccRouteTableConfig_complexImport,
|
||||||
|
},
|
||||||
|
|
||||||
|
resource.TestStep{
|
||||||
|
ResourceName: "aws_route_table.mod",
|
||||||
|
ImportState: true,
|
||||||
|
ImportStateCheck: checkFn,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
const testAccRouteTableConfig_complexImport = `
|
||||||
|
resource "aws_vpc" "default" {
|
||||||
|
cidr_block = "10.0.0.0/16"
|
||||||
|
enable_dns_hostnames = true
|
||||||
|
|
||||||
|
tags {
|
||||||
|
Name = "tf-rt-import-test"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_subnet" "tf_test_subnet" {
|
||||||
|
vpc_id = "${aws_vpc.default.id}"
|
||||||
|
cidr_block = "10.0.0.0/24"
|
||||||
|
map_public_ip_on_launch = true
|
||||||
|
|
||||||
|
tags {
|
||||||
|
Name = "tf-rt-import-test"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_eip" "nat" {
|
||||||
|
vpc = true
|
||||||
|
associate_with_private_ip = "10.0.0.10"
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_internet_gateway" "gw" {
|
||||||
|
vpc_id = "${aws_vpc.default.id}"
|
||||||
|
|
||||||
|
tags {
|
||||||
|
Name = "tf-rt-import-test"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "private_subnet_cidrs" {
|
||||||
|
default = "10.0.0.0/24"
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_nat_gateway" "nat" {
|
||||||
|
count = "${length(split(",", var.private_subnet_cidrs))}"
|
||||||
|
allocation_id = "${element(aws_eip.nat.*.id, count.index)}"
|
||||||
|
subnet_id = "${aws_subnet.tf_test_subnet.id}"
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_route_table" "mod" {
|
||||||
|
count = "${length(split(",", var.private_subnet_cidrs))}"
|
||||||
|
vpc_id = "${aws_vpc.default.id}"
|
||||||
|
|
||||||
|
tags {
|
||||||
|
Name = "tf-rt-import-test"
|
||||||
|
}
|
||||||
|
|
||||||
|
depends_on = ["aws_internet_gateway.ogw", "aws_internet_gateway.gw"]
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_route" "mod-1" {
|
||||||
|
route_table_id = "${aws_route_table.mod.id}"
|
||||||
|
destination_cidr_block = "0.0.0.0/0"
|
||||||
|
nat_gateway_id = "${element(aws_nat_gateway.nat.*.id, count.index)}"
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_route" "mod" {
|
||||||
|
route_table_id = "${aws_route_table.mod.id}"
|
||||||
|
destination_cidr_block = "10.181.0.0/16"
|
||||||
|
vpc_peering_connection_id = "${aws_vpc_peering_connection.foo.id}"
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_vpc_endpoint" "s3" {
|
||||||
|
vpc_id = "${aws_vpc.default.id}"
|
||||||
|
service_name = "com.amazonaws.us-west-2.s3"
|
||||||
|
route_table_ids = ["${aws_route_table.mod.*.id}"]
|
||||||
|
}
|
||||||
|
|
||||||
|
### vpc bar
|
||||||
|
|
||||||
|
resource "aws_vpc" "bar" {
|
||||||
|
cidr_block = "10.1.0.0/16"
|
||||||
|
|
||||||
|
tags {
|
||||||
|
Name = "tf-rt-import-test"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "aws_internet_gateway" "ogw" {
|
||||||
|
vpc_id = "${aws_vpc.bar.id}"
|
||||||
|
|
||||||
|
tags {
|
||||||
|
Name = "tf-rt-import-test"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
### vpc peer connection
|
||||||
|
|
||||||
|
resource "aws_vpc_peering_connection" "foo" {
|
||||||
|
vpc_id = "${aws_vpc.default.id}"
|
||||||
|
peer_vpc_id = "${aws_vpc.bar.id}"
|
||||||
|
peer_owner_id = "187416307283"
|
||||||
|
|
||||||
|
tags {
|
||||||
|
Name = "tf-rt-import-test"
|
||||||
|
}
|
||||||
|
|
||||||
|
auto_accept = true
|
||||||
|
}
|
||||||
|
`
|
||||||
|
|
Loading…
Reference in New Issue