Skip to content

Commit

Permalink
r/aws_route_table: AWS Wavelength support.
Browse files Browse the repository at this point in the history
Acceptance test output:

$ make testacc TEST=./aws/ TESTARGS='-run=TestAccAWSRouteTable_' ACCTEST_PARALLELISM=2
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go test ./aws -v -count 1 -parallel 2 -run=TestAccAWSRouteTable_ -timeout 120m
=== RUN   TestAccAWSRouteTable_basic
=== PAUSE TestAccAWSRouteTable_basic
=== RUN   TestAccAWSRouteTable_disappears
=== PAUSE TestAccAWSRouteTable_disappears
=== RUN   TestAccAWSRouteTable_disappears_SubnetAssociation
=== PAUSE TestAccAWSRouteTable_disappears_SubnetAssociation
=== RUN   TestAccAWSRouteTable_IPv4_To_InternetGateway
=== PAUSE TestAccAWSRouteTable_IPv4_To_InternetGateway
=== RUN   TestAccAWSRouteTable_IPv4_To_Instance
=== PAUSE TestAccAWSRouteTable_IPv4_To_Instance
=== RUN   TestAccAWSRouteTable_IPv6_To_EgressOnlyInternetGateway
=== PAUSE TestAccAWSRouteTable_IPv6_To_EgressOnlyInternetGateway
=== RUN   TestAccAWSRouteTable_tags
=== PAUSE TestAccAWSRouteTable_tags
=== RUN   TestAccAWSRouteTable_RequireRouteDestination
=== PAUSE TestAccAWSRouteTable_RequireRouteDestination
=== RUN   TestAccAWSRouteTable_RequireRouteTarget
=== PAUSE TestAccAWSRouteTable_RequireRouteTarget
=== RUN   TestAccAWSRouteTable_Route_ConfigMode
=== PAUSE TestAccAWSRouteTable_Route_ConfigMode
=== RUN   TestAccAWSRouteTable_IPv4_To_TransitGateway
=== PAUSE TestAccAWSRouteTable_IPv4_To_TransitGateway
=== RUN   TestAccAWSRouteTable_IPv4_To_VpcEndpoint
=== PAUSE TestAccAWSRouteTable_IPv4_To_VpcEndpoint
=== RUN   TestAccAWSRouteTable_IPv4_To_CarrierGateway
=== PAUSE TestAccAWSRouteTable_IPv4_To_CarrierGateway
=== RUN   TestAccAWSRouteTable_IPv4_To_LocalGateway
=== PAUSE TestAccAWSRouteTable_IPv4_To_LocalGateway
=== RUN   TestAccAWSRouteTable_IPv4_To_VpcPeeringConnection
=== PAUSE TestAccAWSRouteTable_IPv4_To_VpcPeeringConnection
=== RUN   TestAccAWSRouteTable_vgwRoutePropagation
=== PAUSE TestAccAWSRouteTable_vgwRoutePropagation
=== RUN   TestAccAWSRouteTable_ConditionalCidrBlock
=== PAUSE TestAccAWSRouteTable_ConditionalCidrBlock
=== RUN   TestAccAWSRouteTable_IPv4_To_NatGateway
=== PAUSE TestAccAWSRouteTable_IPv4_To_NatGateway
=== RUN   TestAccAWSRouteTable_IPv6_To_NetworkInterface_Unattached
=== PAUSE TestAccAWSRouteTable_IPv6_To_NetworkInterface_Unattached
=== RUN   TestAccAWSRouteTable_VpcMultipleCidrs
=== PAUSE TestAccAWSRouteTable_VpcMultipleCidrs
=== RUN   TestAccAWSRouteTable_VpcClassicLink
=== PAUSE TestAccAWSRouteTable_VpcClassicLink
=== RUN   TestAccAWSRouteTable_GatewayVpcEndpoint
=== PAUSE TestAccAWSRouteTable_GatewayVpcEndpoint
=== RUN   TestAccAWSRouteTable_MultipleRoutes
=== PAUSE TestAccAWSRouteTable_MultipleRoutes
=== CONT  TestAccAWSRouteTable_basic
=== CONT  TestAccAWSRouteTable_IPv4_To_CarrierGateway
--- PASS: TestAccAWSRouteTable_basic (22.53s)
=== CONT  TestAccAWSRouteTable_MultipleRoutes
--- PASS: TestAccAWSRouteTable_IPv4_To_CarrierGateway (27.08s)
=== CONT  TestAccAWSRouteTable_GatewayVpcEndpoint
--- PASS: TestAccAWSRouteTable_GatewayVpcEndpoint (38.31s)
=== CONT  TestAccAWSRouteTable_VpcClassicLink
--- PASS: TestAccAWSRouteTable_VpcClassicLink (22.43s)
=== CONT  TestAccAWSRouteTable_VpcMultipleCidrs
--- PASS: TestAccAWSRouteTable_VpcMultipleCidrs (44.06s)
=== CONT  TestAccAWSRouteTable_IPv6_To_NetworkInterface_Unattached
--- PASS: TestAccAWSRouteTable_MultipleRoutes (167.25s)
=== CONT  TestAccAWSRouteTable_IPv4_To_NatGateway
--- PASS: TestAccAWSRouteTable_IPv6_To_NetworkInterface_Unattached (64.25s)
=== CONT  TestAccAWSRouteTable_ConditionalCidrBlock
--- PASS: TestAccAWSRouteTable_ConditionalCidrBlock (52.89s)
=== CONT  TestAccAWSRouteTable_vgwRoutePropagation
--- PASS: TestAccAWSRouteTable_vgwRoutePropagation (65.65s)
=== CONT  TestAccAWSRouteTable_IPv4_To_VpcPeeringConnection
--- PASS: TestAccAWSRouteTable_IPv4_To_VpcPeeringConnection (26.92s)
=== CONT  TestAccAWSRouteTable_IPv4_To_LocalGateway
    data_source_aws_outposts_outposts_test.go:66: skipping since no Outposts found
--- SKIP: TestAccAWSRouteTable_IPv4_To_LocalGateway (1.76s)
=== CONT  TestAccAWSRouteTable_tags
--- PASS: TestAccAWSRouteTable_IPv4_To_NatGateway (216.05s)
=== CONT  TestAccAWSRouteTable_IPv4_To_VpcEndpoint
--- PASS: TestAccAWSRouteTable_tags (69.02s)
=== CONT  TestAccAWSRouteTable_IPv4_To_TransitGateway
--- PASS: TestAccAWSRouteTable_IPv4_To_VpcEndpoint (297.37s)
=== CONT  TestAccAWSRouteTable_Route_ConfigMode
--- PASS: TestAccAWSRouteTable_Route_ConfigMode (70.12s)
=== CONT  TestAccAWSRouteTable_RequireRouteTarget
--- PASS: TestAccAWSRouteTable_RequireRouteTarget (11.79s)
=== CONT  TestAccAWSRouteTable_RequireRouteDestination
=== CONT  TestAccAWSRouteTable_IPv4_To_InternetGateway
--- PASS: TestAccAWSRouteTable_IPv4_To_TransitGateway (411.37s)
--- PASS: TestAccAWSRouteTable_IPv4_To_InternetGateway (64.50s)
=== CONT  TestAccAWSRouteTable_IPv6_To_EgressOnlyInternetGateway
--- PASS: TestAccAWSRouteTable_IPv6_To_EgressOnlyInternetGateway (47.10s)
=== CONT  TestAccAWSRouteTable_IPv4_To_Instance
--- PASS: TestAccAWSRouteTable_RequireRouteDestination (314.49s)
=== CONT  TestAccAWSRouteTable_disappears_SubnetAssociation
--- PASS: TestAccAWSRouteTable_disappears_SubnetAssociation (24.60s)
=== CONT  TestAccAWSRouteTable_disappears
--- PASS: TestAccAWSRouteTable_disappears (19.61s)
--- PASS: TestAccAWSRouteTable_IPv4_To_Instance (324.26s)
PASS
ok  	github.com/terraform-providers/terraform-provider-aws/aws	1259.709s
  • Loading branch information
ewbankkit committed Jan 5, 2021
1 parent d2fba84 commit 8a64f1f
Show file tree
Hide file tree
Showing 3 changed files with 140 additions and 9 deletions.
52 changes: 45 additions & 7 deletions aws/resource_aws_route_table.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
"time"

"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/arn"
"github.com/aws/aws-sdk-go/service/ec2"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
Expand All @@ -22,6 +23,7 @@ var routeTableValidDestinations = []string{
}

var routeTableValidTargets = []string{
"carrier_gateway_id",
"egress_only_gateway_id",
"gateway_id",
"instance_id",
Expand Down Expand Up @@ -67,6 +69,9 @@ func resourceAwsRouteTable() *schema.Resource {
ConfigMode: schema.SchemaConfigModeAttr,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
///
// Destinations.
///
"cidr_block": {
Type: schema.TypeString,
Optional: true,
Expand All @@ -85,6 +90,14 @@ func resourceAwsRouteTable() *schema.Resource {
),
},

//
// Targets.
//
"carrier_gateway_id": {
Type: schema.TypeString,
Optional: true,
},

"egress_only_gateway_id": {
Type: schema.TypeString,
Optional: true,
Expand All @@ -100,32 +113,32 @@ func resourceAwsRouteTable() *schema.Resource {
Optional: true,
},

"nat_gateway_id": {
"local_gateway_id": {
Type: schema.TypeString,
Optional: true,
},

"local_gateway_id": {
"nat_gateway_id": {
Type: schema.TypeString,
Optional: true,
},

"transit_gateway_id": {
"network_interface_id": {
Type: schema.TypeString,
Optional: true,
},

"vpc_endpoint_id": {
"transit_gateway_id": {
Type: schema.TypeString,
Optional: true,
},

"vpc_peering_connection_id": {
"vpc_endpoint_id": {
Type: schema.TypeString,
Optional: true,
},

"network_interface_id": {
"vpc_peering_connection_id": {
Type: schema.TypeString,
Optional: true,
},
Expand All @@ -134,6 +147,11 @@ func resourceAwsRouteTable() *schema.Resource {
Set: resourceAwsRouteTableHash,
},

"arn": {
Type: schema.TypeString,
Computed: true,
},

"owner_id": {
Type: schema.TypeString,
Computed: true,
Expand Down Expand Up @@ -231,6 +249,9 @@ func resourceAwsRouteTableRead(d *schema.ResourceData, meta interface{}) error {
if r.DestinationIpv6CidrBlock != nil {
m["ipv6_cidr_block"] = aws.StringValue(r.DestinationIpv6CidrBlock)
}
if r.CarrierGatewayId != nil {
m["carrier_gateway_id"] = aws.StringValue(r.CarrierGatewayId)
}
if r.EgressOnlyInternetGatewayId != nil {
m["egress_only_gateway_id"] = aws.StringValue(r.EgressOnlyInternetGatewayId)
}
Expand Down Expand Up @@ -269,7 +290,16 @@ func resourceAwsRouteTableRead(d *schema.ResourceData, meta interface{}) error {
return fmt.Errorf("error setting tags: %w", err)
}

d.Set("owner_id", rt.OwnerId)
ownerID := aws.StringValue(rt.OwnerId)
arn := arn.ARN{
Partition: meta.(*AWSClient).partition,
Service: "ec2",
Region: meta.(*AWSClient).region,
AccountID: ownerID,
Resource: fmt.Sprintf("route-table/%s", d.Id()),
}.String()
d.Set("arn", arn)
d.Set("owner_id", ownerID)

return nil
}
Expand Down Expand Up @@ -422,6 +452,10 @@ func resourceAwsRouteTableUpdate(d *schema.ResourceData, meta interface{}) error
opts.GatewayId = aws.String(s)
}

if s, ok := m["carrier_gateway_id"].(string); ok && s != "" {
opts.CarrierGatewayId = aws.String(s)
}

if s, ok := m["egress_only_gateway_id"].(string); ok && s != "" {
opts.EgressOnlyInternetGatewayId = aws.String(s)
}
Expand Down Expand Up @@ -559,6 +593,10 @@ func resourceAwsRouteTableHash(v interface{}) int {
buf.WriteString(fmt.Sprintf("%s-", v.(string)))
}

if v, ok := m["carrier_gateway_id"]; ok {
buf.WriteString(fmt.Sprintf("%s-", v.(string)))
}

if v, ok := m["egress_only_gateway_id"]; ok {
buf.WriteString(fmt.Sprintf("%s-", v.(string)))
}
Expand Down
Loading

0 comments on commit 8a64f1f

Please sign in to comment.