From 17887016dc16b5508b96af9b1d4cba3201ab92fc Mon Sep 17 00:00:00 2001 From: ziyeqf <51212351+ziyeqf@users.noreply.github.com> Date: Wed, 4 Feb 2026 02:24:11 +0000 Subject: [PATCH 1/4] `azurerm_logic_app_standard` - remove `Azurestorageaccount` from update payload --- internal/services/logic/logic_app_standard_resource.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/internal/services/logic/logic_app_standard_resource.go b/internal/services/logic/logic_app_standard_resource.go index 9e4705990535..9172bc4d3b33 100644 --- a/internal/services/logic/logic_app_standard_resource.go +++ b/internal/services/logic/logic_app_standard_resource.go @@ -747,6 +747,11 @@ func (r LogicAppResource) Update() sdk.ResourceFunc { existingSiteConfig := sc.Model.Properties siteEnvelope.SiteConfig = existingSiteConfig + // The `AzureStorageAccounts` received does not contain `endpoint`, which is required in some cases. + // Since we currently do not support this property, we remove it from the payload. + // Tracked by https://github.com/Azure/azure-rest-api-specs/issues/40128 + siteEnvelope.SiteConfig.AzureStorageAccounts = nil + appSettingsResp, err := client.ListApplicationSettings(ctx, *id) if err != nil || appSettingsResp.Model == nil { return fmt.Errorf("reading App Settings for Linux %s: %+v", id, err) From b10fca047fb3545239252017c4d07a8eb43f001b Mon Sep 17 00:00:00 2001 From: ziyeqf <51212351+ziyeqf@users.noreply.github.com> Date: Mon, 16 Mar 2026 23:16:26 +0000 Subject: [PATCH 2/4] `azurerm_logic_app_standard` - add `TestAccLogicAppStandard_fileShareMountUpdate` test case --- .../logic/logic_app_standard_resource_test.go | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) diff --git a/internal/services/logic/logic_app_standard_resource_test.go b/internal/services/logic/logic_app_standard_resource_test.go index 0e4ee973c85d..ad6f2d1a5f37 100644 --- a/internal/services/logic/logic_app_standard_resource_test.go +++ b/internal/services/logic/logic_app_standard_resource_test.go @@ -1111,6 +1111,28 @@ func TestAccLogicAppStandard_vnetContentShareEnabled(t *testing.T) { }) } +func TestAccLogicAppStandard_fileShareMountUpdate(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_logic_app_standard", "test") + r := LogicAppStandardResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.fileShareMount(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.fileShareMountUpdate(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + func (r LogicAppStandardResource) Exists(ctx context.Context, clients *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { id, err := commonids.ParseLogicAppId(state.ID) if err != nil { @@ -2653,3 +2675,77 @@ resource "azurerm_logic_app_standard" "test" { } `, r.template(data), data.RandomInteger, enabled) } + +func (r LogicAppStandardResource) fileShareMount(data acceptance.TestData) string { + return fmt.Sprintf(` +%s + +resource "azurerm_logic_app_standard" "test" { + name = "acctest-%d-func" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + app_service_plan_id = azurerm_app_service_plan.test.id + storage_account_name = azurerm_storage_account.test.name + storage_account_access_key = azurerm_storage_account.test.primary_access_key +} + +resource "azapi_resource_action" "logicapp_storage_config" { + type = "Microsoft.Web/sites/config@2022-09-01" + resource_id = "${azurerm_logic_app_standard.test.id}/config/azurestorageaccounts" + method = "PUT" + + body = { + properties = { + FileSystem = { + type = "FileShare", + accountName = azurerm_storage_account.test.name, + shareName = "dummy-share", + accessKey = azurerm_storage_account.test.primary_access_key, + mountPath = "\\mounts\\FileSystem", + endpoint = azurerm_storage_account.test.primary_blob_endpoint, + protocol = "Smb" + } + } + } +} +`, r.template(data), data.RandomInteger) +} + +func (r LogicAppStandardResource) fileShareMountUpdate(data acceptance.TestData) string { + return fmt.Sprintf(` +%s + +resource "azurerm_logic_app_standard" "test" { + name = "acctest-%d-func" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + app_service_plan_id = azurerm_app_service_plan.test.id + storage_account_name = azurerm_storage_account.test.name + storage_account_access_key = azurerm_storage_account.test.primary_access_key + + tags = { + "test" = "1" + } +} + +resource "azapi_resource_action" "logicapp_storage_config" { + type = "Microsoft.Web/sites/config@2022-09-01" + resource_id = "${azurerm_logic_app_standard.test.id}/config/azurestorageaccounts" + method = "PUT" + + body = { + properties = { + FileSystem = { + type = "FileShare", + accountName = azurerm_storage_account.test.name, + shareName = "dummy-share", + accessKey = azurerm_storage_account.test.primary_access_key, + mountPath = "\\mounts\\FileSystem", + endpoint = azurerm_storage_account.test.primary_blob_endpoint, + protocol = "Smb" + } + } + } +} +`, r.template(data), data.RandomInteger) +} From 624180654f2e5dae4bd573d5bd1c310f00e6af5f Mon Sep 17 00:00:00 2001 From: ziyeqf <51212351+ziyeqf@users.noreply.github.com> Date: Tue, 17 Mar 2026 04:14:03 +0000 Subject: [PATCH 3/4] add azapi provider for testing --- internal/acceptance/testcase.go | 4 ++++ internal/services/logic/logic_app_standard_resource_test.go | 3 +++ 2 files changed, 7 insertions(+) diff --git a/internal/acceptance/testcase.go b/internal/acceptance/testcase.go index c9a62e03d62c..a7246d199782 100644 --- a/internal/acceptance/testcase.go +++ b/internal/acceptance/testcase.go @@ -217,5 +217,9 @@ func (td TestData) externalProviders() map[string]resource.ExternalProvider { VersionConstraint: "=4.1.0", Source: "registry.terraform.io/hashicorp/tls", }, + "azapi": { + VersionConstraint: "=2.8.0", + Source: "azure/azapi", + }, } } diff --git a/internal/services/logic/logic_app_standard_resource_test.go b/internal/services/logic/logic_app_standard_resource_test.go index ad6f2d1a5f37..1990ae2fadd0 100644 --- a/internal/services/logic/logic_app_standard_resource_test.go +++ b/internal/services/logic/logic_app_standard_resource_test.go @@ -2323,6 +2323,9 @@ provider "azurerm" { features {} } +provider "azapi" { +} + resource "azurerm_resource_group" "test" { name = "acctestRG-%[1]d" location = "%[2]s" From dfe89cc3a4114ddaf825ab8242d782ada516bde7 Mon Sep 17 00:00:00 2001 From: ziyeqf <51212351+ziyeqf@users.noreply.github.com> Date: Wed, 8 Jul 2026 01:03:50 +0000 Subject: [PATCH 4/4] update per comment --- internal/acceptance/testcase.go | 4 - .../logic/logic_app_standard_resource.go | 2 +- .../logic/logic_app_standard_resource_test.go | 99 ------------------- 3 files changed, 1 insertion(+), 104 deletions(-) diff --git a/internal/acceptance/testcase.go b/internal/acceptance/testcase.go index a9aa6acbaa39..2ecdcb74adb5 100644 --- a/internal/acceptance/testcase.go +++ b/internal/acceptance/testcase.go @@ -234,9 +234,5 @@ func (td TestData) externalProviders() map[string]resource.ExternalProvider { VersionConstraint: "=4.1.0", Source: "registry.terraform.io/hashicorp/tls", }, - "azapi": { - VersionConstraint: "=2.8.0", - Source: "azure/azapi", - }, } } diff --git a/internal/services/logic/logic_app_standard_resource.go b/internal/services/logic/logic_app_standard_resource.go index ce2ce29a360f..f425f1b5929a 100644 --- a/internal/services/logic/logic_app_standard_resource.go +++ b/internal/services/logic/logic_app_standard_resource.go @@ -805,7 +805,7 @@ func (r LogicAppResource) Update() sdk.ResourceFunc { siteEnvelope.SiteConfig = existingSiteConfig // The `AzureStorageAccounts` received does not contain `endpoint`, which is required in some cases. - // Since we currently do not support this property, we remove it from the payload. + // Since the rest API specs do not contain this property, we remove it from the payload. // Tracked by https://github.com/Azure/azure-rest-api-specs/issues/40128 siteEnvelope.SiteConfig.AzureStorageAccounts = nil diff --git a/internal/services/logic/logic_app_standard_resource_test.go b/internal/services/logic/logic_app_standard_resource_test.go index 344c62ed061a..5ae6c7837b23 100644 --- a/internal/services/logic/logic_app_standard_resource_test.go +++ b/internal/services/logic/logic_app_standard_resource_test.go @@ -1119,28 +1119,6 @@ func TestAccLogicAppStandard_vnetContentShareEnabled(t *testing.T) { }) } -func TestAccLogicAppStandard_fileShareMountUpdate(t *testing.T) { - data := acceptance.BuildTestData(t, "azurerm_logic_app_standard", "test") - r := LogicAppStandardResource{} - - data.ResourceTest(t, r, []acceptance.TestStep{ - { - Config: r.fileShareMount(data), - Check: acceptance.ComposeTestCheckFunc( - check.That(data.ResourceName).ExistsInAzure(r), - ), - }, - data.ImportStep(), - { - Config: r.fileShareMountUpdate(data), - Check: acceptance.ComposeTestCheckFunc( - check.That(data.ResourceName).ExistsInAzure(r), - ), - }, - data.ImportStep(), - }) -} - func TestAccLogicAppStandard_keyVaultReferenceIdentityInvalid(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_logic_app_standard", "test") r := LogicAppStandardResource{} @@ -2417,9 +2395,6 @@ provider "azurerm" { features {} } -provider "azapi" { -} - resource "azurerm_resource_group" "test" { name = "acctestRG-%[1]d" location = "%[2]s" @@ -2611,80 +2586,6 @@ resource "azurerm_logic_app_standard" "test" { `, r.template(data), data.RandomInteger, enabled) } -func (r LogicAppStandardResource) fileShareMount(data acceptance.TestData) string { - return fmt.Sprintf(` -%s - -resource "azurerm_logic_app_standard" "test" { - name = "acctest-%d-func" - location = azurerm_resource_group.test.location - resource_group_name = azurerm_resource_group.test.name - app_service_plan_id = azurerm_app_service_plan.test.id - storage_account_name = azurerm_storage_account.test.name - storage_account_access_key = azurerm_storage_account.test.primary_access_key -} - -resource "azapi_resource_action" "logicapp_storage_config" { - type = "Microsoft.Web/sites/config@2022-09-01" - resource_id = "${azurerm_logic_app_standard.test.id}/config/azurestorageaccounts" - method = "PUT" - - body = { - properties = { - FileSystem = { - type = "FileShare", - accountName = azurerm_storage_account.test.name, - shareName = "dummy-share", - accessKey = azurerm_storage_account.test.primary_access_key, - mountPath = "\\mounts\\FileSystem", - endpoint = azurerm_storage_account.test.primary_blob_endpoint, - protocol = "Smb" - } - } - } -} -`, r.template(data), data.RandomInteger) -} - -func (r LogicAppStandardResource) fileShareMountUpdate(data acceptance.TestData) string { - return fmt.Sprintf(` -%s - -resource "azurerm_logic_app_standard" "test" { - name = "acctest-%d-func" - location = azurerm_resource_group.test.location - resource_group_name = azurerm_resource_group.test.name - app_service_plan_id = azurerm_app_service_plan.test.id - storage_account_name = azurerm_storage_account.test.name - storage_account_access_key = azurerm_storage_account.test.primary_access_key - - tags = { - "test" = "1" - } -} - -resource "azapi_resource_action" "logicapp_storage_config" { - type = "Microsoft.Web/sites/config@2022-09-01" - resource_id = "${azurerm_logic_app_standard.test.id}/config/azurestorageaccounts" - method = "PUT" - - body = { - properties = { - FileSystem = { - type = "FileShare", - accountName = azurerm_storage_account.test.name, - shareName = "dummy-share", - accessKey = azurerm_storage_account.test.primary_access_key, - mountPath = "\\mounts\\FileSystem", - endpoint = azurerm_storage_account.test.primary_blob_endpoint, - protocol = "Smb" - } - } - } -} -`, r.template(data), data.RandomInteger) -} - func (r LogicAppStandardResource) keyVaultReferenceIdentityInvalid(data acceptance.TestData) string { return fmt.Sprintf(` %[1]s