Skip to content

Commit

Permalink
r/aws_route_table: Add (and comment out) 'TestAccAWSRouteTable_IPv4_T…
Browse files Browse the repository at this point in the history
…o_NetworkInterface_Attached' and 'TestAccAWSRouteTable_IPv4_To_NetworkInterface_TwoAttachments'.

These two tests fail as expected (#1426 and hashicorp#5745).
  • Loading branch information
ewbankkit committed Dec 7, 2020
1 parent e54f7aa commit 21dbab1
Showing 1 changed file with 260 additions and 3 deletions.
263 changes: 260 additions & 3 deletions aws/resource_aws_route_table_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -698,7 +698,101 @@ func TestAccAWSRouteTable_IPv4_To_NatGateway(t *testing.T) {
})
}

func TestAccAWSRouteTable_IPv6_To_NetworkInterface(t *testing.T) {
/*
func TestAccAWSRouteTable_IPv4_To_NetworkInterface_Attached(t *testing.T) {
var routeTable ec2.RouteTable
resourceName := "aws_route_table.test"
rName := acctest.RandomWithPrefix("tf-acc-test")
destinationCidr := "10.2.0.0/16"
resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
IDRefreshName: resourceName,
Providers: testAccProviders,
CheckDestroy: testAccCheckRouteTableDestroy,
Steps: []resource.TestStep{
{
Config: testAccAWSRouteTableConfigIpv4NetworkInterfaceAttached(rName, destinationCidr),
Check: resource.ComposeTestCheckFunc(
testAccCheckRouteTableExists(resourceName, &routeTable),
testAccCheckAWSRouteTableNumberOfRoutes(&routeTable, 2),
testAccCheckResourceAttrAccountID(resourceName, "owner_id"),
resource.TestCheckResourceAttr(resourceName, "propagating_vgws.#", "0"),
resource.TestCheckResourceAttr(resourceName, "route.#", "1"),
tfawsresource.TestCheckTypeSetElemNestedAttrs(resourceName, "route.*", map[string]string{
"cidr_block": destinationCidr,
"ipv6_cidr_block": "",
}),
resource.TestCheckResourceAttr(resourceName, "tags.%", "1"),
resource.TestCheckResourceAttr(resourceName, "tags.Name", rName),
),
},
{
ResourceName: resourceName,
ImportState: true,
ImportStateVerify: true,
},
},
})
}
func TestAccAWSRouteTable_IPv4_To_NetworkInterface_TwoAttachments(t *testing.T) {
var routeTable ec2.RouteTable
resourceName := "aws_route_table.test"
eni1ResourceName := "aws_network_interface.test1"
eni2ResourceName := "aws_network_interface.test2"
rName := acctest.RandomWithPrefix("tf-acc-test")
destinationCidr := "10.2.0.0/16"
resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
IDRefreshName: resourceName,
Providers: testAccProviders,
CheckDestroy: testAccCheckRouteTableDestroy,
Steps: []resource.TestStep{
{
Config: testAccAWSRouteTableConfigIpv4NetworkInterfaceTwoAttachments(rName, destinationCidr, eni1ResourceName),
Check: resource.ComposeTestCheckFunc(
testAccCheckRouteTableExists(resourceName, &routeTable),
testAccCheckAWSRouteTableNumberOfRoutes(&routeTable, 2),
testAccCheckResourceAttrAccountID(resourceName, "owner_id"),
resource.TestCheckResourceAttr(resourceName, "propagating_vgws.#", "0"),
resource.TestCheckResourceAttr(resourceName, "route.#", "1"),
tfawsresource.TestCheckTypeSetElemNestedAttrs(resourceName, "route.*", map[string]string{
"cidr_block": destinationCidr,
"ipv6_cidr_block": "",
}),
resource.TestCheckResourceAttr(resourceName, "tags.%", "1"),
resource.TestCheckResourceAttr(resourceName, "tags.Name", rName),
),
},
{
Config: testAccAWSRouteTableConfigIpv4NetworkInterfaceTwoAttachments(rName, destinationCidr, eni2ResourceName),
Check: resource.ComposeTestCheckFunc(
testAccCheckRouteTableExists(resourceName, &routeTable),
testAccCheckAWSRouteTableNumberOfRoutes(&routeTable, 2),
testAccCheckResourceAttrAccountID(resourceName, "owner_id"),
resource.TestCheckResourceAttr(resourceName, "propagating_vgws.#", "0"),
resource.TestCheckResourceAttr(resourceName, "route.#", "1"),
tfawsresource.TestCheckTypeSetElemNestedAttrs(resourceName, "route.*", map[string]string{
"cidr_block": destinationCidr,
"ipv6_cidr_block": "",
}),
resource.TestCheckResourceAttr(resourceName, "tags.%", "1"),
resource.TestCheckResourceAttr(resourceName, "tags.Name", rName),
),
},
{
ResourceName: resourceName,
ImportState: true,
ImportStateVerify: true,
},
},
})
}
*/

func TestAccAWSRouteTable_IPv6_To_NetworkInterface_Unattached(t *testing.T) {
var routeTable ec2.RouteTable
resourceName := "aws_route_table.test"
rName := acctest.RandomWithPrefix("tf-acc-test")
Expand All @@ -711,7 +805,7 @@ func TestAccAWSRouteTable_IPv6_To_NetworkInterface(t *testing.T) {
CheckDestroy: testAccCheckRouteTableDestroy,
Steps: []resource.TestStep{
{
Config: testAccAWSRouteTableConfigIpv6NetworkInterface(rName, destinationCidr),
Config: testAccAWSRouteTableConfigIpv6NetworkInterfaceUnattached(rName, destinationCidr),
Check: resource.ComposeTestCheckFunc(
testAccCheckRouteTableExists(resourceName, &routeTable),
testAccCheckAWSRouteTableNumberOfRoutes(&routeTable, 3),
Expand Down Expand Up @@ -1492,7 +1586,170 @@ resource "aws_route_table" "test" {
`, rName, destinationCidr)
}

func testAccAWSRouteTableConfigIpv6NetworkInterface(rName, destinationCidr string) string {
/*
func testAccAWSRouteTableConfigIpv4NetworkInterfaceAttached(rName, destinationCidr string) string {
return composeConfig(
testAccLatestAmazonLinuxHvmEbsAmiConfig(),
testAccAvailableEc2InstanceTypeForRegion("t3.micro", "t2.micro"),
fmt.Sprintf(`
data "aws_availability_zones" "current" {
# Exclude usw2-az4 (us-west-2d) as it has limited instance types.
exclude_zone_ids = ["usw2-az4"]
state = "available"
filter {
name = "opt-in-status"
values = ["opt-in-not-required"]
}
}
resource "aws_vpc" "test" {
cidr_block = "10.1.0.0/16"
tags = {
Name = %[1]q
}
}
resource "aws_subnet" "test" {
cidr_block = "10.1.1.0/24"
vpc_id = aws_vpc.test.id
availability_zone = data.aws_availability_zones.current.names[0]
tags = {
Name = %[1]q
}
}
resource "aws_network_interface" "test" {
subnet_id = aws_subnet.test.id
tags = {
Name = %[1]q
}
}
resource "aws_instance" "test" {
ami = data.aws_ami.amzn-ami-minimal-hvm-ebs.id
instance_type = data.aws_ec2_instance_type_offering.available.instance_type
network_interface {
device_index = 0
network_interface_id = aws_network_interface.test.id
}
tags = {
Name = %[1]q
}
}
resource "aws_route_table" "test" {
vpc_id = aws_vpc.test.id
route {
cidr_block = %[2]q
network_interface_id = aws_network_interface.test.id
}
tags = {
Name = %[1]q
}
# Wait for the ENI attachment.
depends_on = [aws_instance.test]
}
`, rName, destinationCidr))
}
func testAccAWSRouteTableConfigIpv4NetworkInterfaceTwoAttachments(rName, destinationCidr, targetResourceName string) string {
return composeConfig(
testAccLatestAmazonLinuxHvmEbsAmiConfig(),
testAccAvailableEc2InstanceTypeForRegion("t3.micro", "t2.micro"),
fmt.Sprintf(`
data "aws_availability_zones" "current" {
# Exclude usw2-az4 (us-west-2d) as it has limited instance types.
exclude_zone_ids = ["usw2-az4"]
state = "available"
filter {
name = "opt-in-status"
values = ["opt-in-not-required"]
}
}
resource "aws_vpc" "test" {
cidr_block = "10.1.0.0/16"
tags = {
Name = %[1]q
}
}
resource "aws_subnet" "test" {
cidr_block = "10.1.1.0/24"
vpc_id = aws_vpc.test.id
availability_zone = data.aws_availability_zones.current.names[0]
tags = {
Name = %[1]q
}
}
resource "aws_network_interface" "test1" {
subnet_id = aws_subnet.test.id
tags = {
Name = %[1]q
}
}
resource "aws_network_interface" "test2" {
subnet_id = aws_subnet.test.id
tags = {
Name = %[1]q
}
}
resource "aws_instance" "test" {
ami = data.aws_ami.amzn-ami-minimal-hvm-ebs.id
instance_type = data.aws_ec2_instance_type_offering.available.instance_type
network_interface {
device_index = 0
network_interface_id = aws_network_interface.test1.id
}
network_interface {
device_index = 1
network_interface_id = aws_network_interface.test2.id
}
tags = {
Name = %[1]q
}
}
resource "aws_route_table" "test" {
vpc_id = aws_vpc.test.id
route {
cidr_block = %[2]q
network_interface_id = %[3]s.id
}
tags = {
Name = %[1]q
}
# Wait for the ENI attachment.
depends_on = [aws_instance.test]
}
`, rName, destinationCidr, targetResourceName))
}
*/

func testAccAWSRouteTableConfigIpv6NetworkInterfaceUnattached(rName, destinationCidr string) string {
return fmt.Sprintf(`
resource "aws_vpc" "test" {
cidr_block = "10.1.0.0/16"
Expand Down

0 comments on commit 21dbab1

Please sign in to comment.