From 52cd6f98468ea22f623249fe24b0e8ece4cf2e94 Mon Sep 17 00:00:00 2001 From: Jeffrey Cline <20408400+WodansSon@users.noreply.github.com> Date: Fri, 12 Jan 2024 15:19:00 -0700 Subject: [PATCH 1/2] Initial Check-in... --- .../cdn/cdn_frontdoor_route_resource.go | 5 +- .../cdn/cdn_frontdoor_route_resource_test.go | 46 +++++++++++++++++++ 2 files changed, 49 insertions(+), 2 deletions(-) diff --git a/internal/services/cdn/cdn_frontdoor_route_resource.go b/internal/services/cdn/cdn_frontdoor_route_resource.go index 13a3bbe9f61c..0aa0625cd716 100644 --- a/internal/services/cdn/cdn_frontdoor_route_resource.go +++ b/internal/services/cdn/cdn_frontdoor_route_resource.go @@ -455,11 +455,12 @@ func resourceCdnFrontDoorRouteUpdate(d *pluginsdk.ResourceData, meta interface{} } } - // NOTE: You need to always pass these two on update else you will - // disable your cache and disassociate your custom domains... + // NOTE: You need to always pass these three on update else you will + // disable your cache, disassociate your custom domains or remove your origin path... updateProps := azuresdkhacks.RouteUpdatePropertiesParameters{ CustomDomains: existing.RouteProperties.CustomDomains, CacheConfiguration: existing.RouteProperties.CacheConfiguration, + OriginPath: existing.RouteProperties.OriginPath, } if d.HasChange("cache") { diff --git a/internal/services/cdn/cdn_frontdoor_route_resource_test.go b/internal/services/cdn/cdn_frontdoor_route_resource_test.go index 31d104f37355..4cc187159ea9 100644 --- a/internal/services/cdn/cdn_frontdoor_route_resource_test.go +++ b/internal/services/cdn/cdn_frontdoor_route_resource_test.go @@ -85,6 +85,30 @@ func TestAccCdnFrontDoorRoute_update(t *testing.T) { }) } +func TestAccCdnFrontDoorRoute_originPath(t *testing.T) { + // regression test case for issue #24466 + data := acceptance.BuildTestData(t, "azurerm_cdn_frontdoor_route", "test") + r := CdnFrontDoorRouteResource{} + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.completeNoCache(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("cdn_frontdoor_origin_path").HasValue("/example"), + ), + }, + data.ImportStep("cdn_frontdoor_origin_group_id", "cdn_frontdoor_origin_ids"), + { + Config: r.complete(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("cdn_frontdoor_origin_path").HasValue("/example"), + ), + }, + data.ImportStep("cdn_frontdoor_origin_group_id", "cdn_frontdoor_origin_ids"), + }) +} + func (r CdnFrontDoorRouteResource) Exists(ctx context.Context, clients *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { id, err := parse.FrontDoorRouteID(state.ID) if err != nil { @@ -216,6 +240,28 @@ resource "azurerm_cdn_frontdoor_route" "test" { `, template, data.RandomInteger) } +func (r CdnFrontDoorRouteResource) completeNoCache(data acceptance.TestData) string { + template := r.template(data) + return fmt.Sprintf(` +%s + +resource "azurerm_cdn_frontdoor_route" "test" { + name = "accTestRoute-%d" + cdn_frontdoor_endpoint_id = azurerm_cdn_frontdoor_endpoint.test.id + cdn_frontdoor_origin_group_id = azurerm_cdn_frontdoor_origin_group.test.id + cdn_frontdoor_origin_ids = [azurerm_cdn_frontdoor_origin.test.id] + cdn_frontdoor_rule_set_ids = [azurerm_cdn_frontdoor_rule_set.test.id] + cdn_frontdoor_origin_path = "/example" + + enabled = true + forwarding_protocol = "HttpsOnly" + https_redirect_enabled = true + patterns_to_match = ["/*"] + supported_protocols = ["Http", "Https"] +} +`, template, data.RandomInteger) +} + func (r CdnFrontDoorRouteResource) update(data acceptance.TestData) string { template := r.template(data) return fmt.Sprintf(` From 9415c37cba51309e0270dcf7ce9b523178cda1f1 Mon Sep 17 00:00:00 2001 From: Jeffrey Cline <20408400+WodansSon@users.noreply.github.com> Date: Fri, 12 Jan 2024 17:18:59 -0700 Subject: [PATCH 2/2] Add default value for originPath in update block... --- internal/services/cdn/cdn_frontdoor_route_resource.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/internal/services/cdn/cdn_frontdoor_route_resource.go b/internal/services/cdn/cdn_frontdoor_route_resource.go index 0aa0625cd716..8ad50013de09 100644 --- a/internal/services/cdn/cdn_frontdoor_route_resource.go +++ b/internal/services/cdn/cdn_frontdoor_route_resource.go @@ -492,6 +492,8 @@ func resourceCdnFrontDoorRouteUpdate(d *pluginsdk.ResourceData, meta interface{} } if d.HasChange("cdn_frontdoor_origin_path") { + updateProps.OriginPath = nil + originPath := d.Get("cdn_frontdoor_origin_path").(string) if originPath != "" { updateProps.OriginPath = utils.String(originPath)