Skip to content

Commit

Permalink
Merge pull request #32393 from djordje-ch/b-custom-routing-endpoint-r…
Browse files Browse the repository at this point in the history
…egion

r/aws_globalaccelerator_custom_routing_endpoint_group: honor endpoint_group_region attribute
  • Loading branch information
ewbankkit authored Jul 19, 2023
2 parents 32be83a + ab8ca94 commit 993689b
Show file tree
Hide file tree
Showing 3 changed files with 74 additions and 4 deletions.
3 changes: 3 additions & 0 deletions .changelog/32393.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
```release-note:bug
resource/aws_globalaccelerator_custom_routing_endpoint_group: Respect configured `endpoint_group_region` value on resource Create
```
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ func ResourceCustomRoutingEndpointGroup() *schema.Resource {
Optional: true,
Computed: true,
ForceNew: true,
ValidateFunc: validation.StringLenBetween(1, 255),
ValidateFunc: verify.ValidRegionName,
},
"listener_arn": {
Type: schema.TypeString,
Expand All @@ -105,15 +105,18 @@ func ResourceCustomRoutingEndpointGroup() *schema.Resource {
func resourceCustomRoutingEndpointGroupCreate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
var diags diag.Diagnostics
conn := meta.(*conns.AWSClient).GlobalAcceleratorConn(ctx)
region := meta.(*conns.AWSClient).Region

input := &globalaccelerator.CreateCustomRoutingEndpointGroupInput{
DestinationConfigurations: expandCustomRoutingDestinationConfigurations(d.Get("destination_configuration").(*schema.Set).List()),
EndpointGroupRegion: aws.String(region),
EndpointGroupRegion: aws.String(meta.(*conns.AWSClient).Region),
IdempotencyToken: aws.String(id.UniqueId()),
ListenerArn: aws.String(d.Get("listener_arn").(string)),
}

if v, ok := d.GetOk("endpoint_group_region"); ok {
input.EndpointGroupRegion = aws.String(v.(string))
}

output, err := conn.CreateCustomRoutingEndpointGroupWithContext(ctx, input)

if err != nil {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ func TestAccGlobalAcceleratorCustomRoutingEndpointGroup_basic(t *testing.T) {
resource.TestCheckTypeSetElemAttr(resourceName, "destination_configuration.0.protocols.*", "TCP"),
resource.TestCheckResourceAttr(resourceName, "destination_configuration.0.to_port", "8443"),
resource.TestCheckResourceAttr(resourceName, "endpoint_configuration.#", "0"),
resource.TestCheckResourceAttrSet(resourceName, "endpoint_group_region"),
resource.TestCheckResourceAttr(resourceName, "endpoint_group_region", acctest.Region()),
),
},
{
Expand Down Expand Up @@ -113,6 +113,41 @@ func TestAccGlobalAcceleratorCustomRoutingEndpointGroup_endpointConfiguration(t
})
}

func TestAccGlobalAcceleratorCustomRoutingEndpointGroup_endpointGroupRegion(t *testing.T) {
ctx := acctest.Context(t)
var v globalaccelerator.CustomRoutingEndpointGroup
resourceName := "aws_globalaccelerator_custom_routing_endpoint_group.test"
rName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix)

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { acctest.PreCheck(ctx, t); testAccPreCheck(ctx, t) },
ErrorCheck: acctest.ErrorCheck(t, globalaccelerator.EndpointsID),
ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories,
CheckDestroy: testAccCheckCustomRoutingEndpointGroupDestroy(ctx),
Steps: []resource.TestStep{
{
Config: testAccCustomRoutingEndpointGroupConfig_endpointGroupRegion(rName),
Check: resource.ComposeAggregateTestCheckFunc(
testAccCheckCustomRoutingEndpointGroupExists(ctx, resourceName, &v),
resource.TestCheckResourceAttrSet(resourceName, "arn"),
resource.TestCheckResourceAttr(resourceName, "destination_configuration.#", "1"),
resource.TestCheckResourceAttr(resourceName, "destination_configuration.0.from_port", "443"),
resource.TestCheckResourceAttr(resourceName, "destination_configuration.0.protocols.#", "1"),
resource.TestCheckTypeSetElemAttr(resourceName, "destination_configuration.0.protocols.*", "TCP"),
resource.TestCheckResourceAttr(resourceName, "destination_configuration.0.to_port", "8443"),
resource.TestCheckResourceAttr(resourceName, "endpoint_configuration.#", "0"),
resource.TestCheckResourceAttr(resourceName, "endpoint_group_region", acctest.AlternateRegion()),
),
},
{
ResourceName: resourceName,
ImportState: true,
ImportStateVerify: true,
},
},
})
}

func testAccCheckCustomRoutingEndpointGroupExists(ctx context.Context, n string, v *globalaccelerator.CustomRoutingEndpointGroup) resource.TestCheckFunc {
return func(s *terraform.State) error {
conn := acctest.Provider.Meta().(*conns.AWSClient).GlobalAcceleratorConn(ctx)
Expand Down Expand Up @@ -248,3 +283,32 @@ resource "aws_internet_gateway" "test" {
}
`, rName))
}

func testAccCustomRoutingEndpointGroupConfig_endpointGroupRegion(rName string) string {
return fmt.Sprintf(`
resource "aws_globalaccelerator_custom_routing_accelerator" "test" {
name = %[1]q
}
resource "aws_globalaccelerator_custom_routing_listener" "test" {
accelerator_arn = aws_globalaccelerator_custom_routing_accelerator.test.id
port_range {
from_port = 443
to_port = 443
}
}
resource "aws_globalaccelerator_custom_routing_endpoint_group" "test" {
listener_arn = aws_globalaccelerator_custom_routing_listener.test.id
destination_configuration {
from_port = 443
to_port = 8443
protocols = ["TCP"]
}
endpoint_group_region = %[2]q
}
`, rName, acctest.AlternateRegion())
}

0 comments on commit 993689b

Please sign in to comment.