From 7da3913851b45675ef6e4e12fc32f5ca746743c7 Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Wed, 8 Nov 2023 08:58:28 +0100 Subject: [PATCH 1/4] provider: adding a test ensuring that Data Sources do not support import This isn't possible for Data Sources, therefore Data Sources shouldn't be defining an `Importer` --- internal/provider/provider_schema_test.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/internal/provider/provider_schema_test.go b/internal/provider/provider_schema_test.go index da7a0c18e9cb..7862e81102ce 100644 --- a/internal/provider/provider_schema_test.go +++ b/internal/provider/provider_schema_test.go @@ -100,6 +100,24 @@ func schemaContainsSensitiveFieldsNotMarkedAsSensitive(input map[string]*plugins return nil } +func TestDataSourcesShouldNotSupportImport(t *testing.T) { + provider := TestAzureProvider() + + // intentionally sorting these so the output is consistent + dataSourceNames := make([]string, 0) + for dataSourceName := range provider.DataSourcesMap { + dataSourceNames = append(dataSourceNames, dataSourceName) + } + sort.Strings(dataSourceNames) + + for _, dataSourceName := range dataSourceNames { + dataSource := provider.DataSourcesMap[dataSourceName] + if dataSource.Importer != nil { + t.Fatalf("the Data Source %q supports Import but Terraform does not support this - please remove the `Importer` from this Data Source", dataSourceName) + } + } +} + func TestDataSourcesHaveEnabledFieldsMarkedAsBooleans(t *testing.T) { // This test validates that Data Sources do not contain a field suffixed with `_enabled` that isn't a Boolean. // From af93d4248fc62756ddc61b49e88a9e4a54ae96bb Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Wed, 8 Nov 2023 08:59:34 +0100 Subject: [PATCH 2/4] d/azurerm_data_protection_backup_vault: removing import support This isn't supported for Data Sources so is invalid --- .../data_protection_backup_vault_data_source.go | 5 ----- 1 file changed, 5 deletions(-) diff --git a/internal/services/dataprotection/data_protection_backup_vault_data_source.go b/internal/services/dataprotection/data_protection_backup_vault_data_source.go index 67e8f4a67d9d..3b5e112bb492 100644 --- a/internal/services/dataprotection/data_protection_backup_vault_data_source.go +++ b/internal/services/dataprotection/data_protection_backup_vault_data_source.go @@ -29,11 +29,6 @@ func dataSourceDataProtectionBackupVault() *pluginsdk.Resource { Read: pluginsdk.DefaultTimeout(5 * time.Minute), }, - Importer: pluginsdk.ImporterValidatingResourceId(func(id string) error { - _, err := backupvaults.ParseBackupVaultID(id) - return err - }), - Schema: map[string]*pluginsdk.Schema{ "name": { Type: pluginsdk.TypeString, From 7992b47ed3ad3cc8fd65c33046f16f85b7c7257e Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Wed, 8 Nov 2023 09:01:16 +0100 Subject: [PATCH 3/4] d/kusto_database: removing Import support This isn't valid for a data source --- internal/services/kusto/kusto_database_data_source.go | 6 ------ 1 file changed, 6 deletions(-) diff --git a/internal/services/kusto/kusto_database_data_source.go b/internal/services/kusto/kusto_database_data_source.go index 250522303a36..bae7511c2ee3 100644 --- a/internal/services/kusto/kusto_database_data_source.go +++ b/internal/services/kusto/kusto_database_data_source.go @@ -12,7 +12,6 @@ import ( "github.com/hashicorp/go-azure-helpers/resourcemanager/location" "github.com/hashicorp/go-azure-sdk/resource-manager/kusto/2023-08-15/databases" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" - "github.com/hashicorp/terraform-provider-azurerm/internal/services/kusto/parse" kustoValidate "github.com/hashicorp/terraform-provider-azurerm/internal/services/kusto/validate" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/internal/timeouts" @@ -22,11 +21,6 @@ func dataSourceKustoDatabase() *pluginsdk.Resource { return &pluginsdk.Resource{ Read: dataSourceKustoDatabaseRead, - Importer: pluginsdk.ImporterValidatingResourceId(func(id string) error { - _, err := parse.DatabaseID(id) - return err - }), - Timeouts: &pluginsdk.ResourceTimeout{ Read: pluginsdk.DefaultTimeout(5 * time.Minute), }, From 8f89d3347c4f1e175462ab83bd882a97b92a0f32 Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Wed, 8 Nov 2023 09:01:46 +0100 Subject: [PATCH 4/4] d/virtual_hub_route_table: removing import support This isn't valid for Data Sources, so should be removed --- .../services/network/virtual_hub_route_table_data_source.go | 5 ----- 1 file changed, 5 deletions(-) diff --git a/internal/services/network/virtual_hub_route_table_data_source.go b/internal/services/network/virtual_hub_route_table_data_source.go index 983f81593a35..f130b419272a 100644 --- a/internal/services/network/virtual_hub_route_table_data_source.go +++ b/internal/services/network/virtual_hub_route_table_data_source.go @@ -24,11 +24,6 @@ func dataSourceVirtualHubRouteTable() *pluginsdk.Resource { Read: pluginsdk.DefaultTimeout(5 * time.Minute), }, - Importer: pluginsdk.ImporterValidatingResourceId(func(id string) error { - _, err := parse.HubRouteTableID(id) - return err - }), - Schema: map[string]*pluginsdk.Schema{ "name": { Type: pluginsdk.TypeString,