diff --git a/azurerm/internal/services/datafactory/data_factory_linked_service_odata_resource.go b/azurerm/internal/services/datafactory/data_factory_linked_service_odata_resource.go index 1aae557f3a64c..f6a34f1313a89 100644 --- a/azurerm/internal/services/datafactory/data_factory_linked_service_odata_resource.go +++ b/azurerm/internal/services/datafactory/data_factory_linked_service_odata_resource.go @@ -10,6 +10,7 @@ import ( "github.com/terraform-providers/terraform-provider-azurerm/azurerm/helpers/azure" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/helpers/tf" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/clients" + "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/services/datafactory/parse" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/services/datafactory/validate" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/timeouts" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils" @@ -191,31 +192,28 @@ func resourceArmDataFactoryLinkedServiceODataRead(d *schema.ResourceData, meta i ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() - id, err := azure.ParseAzureResourceID(d.Id()) + id, err := parse.LinkedServiceID(d.Id()) if err != nil { return err } - resourceGroup := id.ResourceGroup - dataFactoryName := id.Path["factories"] - name := id.Path["linkedservices"] - resp, err := client.Get(ctx, resourceGroup, dataFactoryName, name, "") + resp, err := client.Get(ctx, id.ResourceGroup, id.FactoryName, id.Name, "") if err != nil { if utils.ResponseWasNotFound(resp.Response) { d.SetId("") return nil } - return fmt.Errorf("Error retrieving Data Factory Linked Service OData %q (Data Factory %q / Resource Group %q): %+v", name, dataFactoryName, resourceGroup, err) + return fmt.Errorf("Error retrieving Data Factory Linked Service OData %q (Data Factory %q / Resource Group %q): %+v", id.Name, id.FactoryName, id.ResourceGroup, err) } d.Set("name", resp.Name) - d.Set("resource_group_name", resourceGroup) - d.Set("data_factory_name", dataFactoryName) + d.Set("resource_group_name", id.ResourceGroup) + d.Set("data_factory_name", id.FactoryName) odata, ok := resp.Properties.AsODataLinkedService() if !ok { - return fmt.Errorf("Error classifiying Data Factory Linked Service OData %q (Data Factory %q / Resource Group %q): Expected: %q Received: %q", name, dataFactoryName, resourceGroup, datafactory.TypeWeb, *resp.Type) + return fmt.Errorf("Error classifiying Data Factory Linked Service OData %q (Data Factory %q / Resource Group %q): Expected: %q Received: %q", id.Name, id.FactoryName, id.ResourceGroup, datafactory.TypeWeb, *resp.Type) } props := odata.ODataLinkedServiceTypeProperties @@ -255,18 +253,15 @@ func resourceArmDataFactoryLinkedServiceODataDelete(d *schema.ResourceData, meta ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d) defer cancel() - id, err := azure.ParseAzureResourceID(d.Id()) + id, err := parse.LinkedServiceID(d.Id()) if err != nil { return err } - resourceGroup := id.ResourceGroup - dataFactoryName := id.Path["factories"] - name := id.Path["linkedservices"] - response, err := client.Delete(ctx, resourceGroup, dataFactoryName, name) + response, err := client.Delete(ctx, id.ResourceGroup, id.FactoryName, id.Name) if err != nil { if !utils.ResponseWasNotFound(response) { - return fmt.Errorf("Error deleting Data Factory Linked Service OData %q (Data Factory %q / Resource Group %q): %+v", name, dataFactoryName, resourceGroup, err) + return fmt.Errorf("Error deleting Data Factory Linked Service OData %q (Data Factory %q / Resource Group %q): %+v", id.Name, id.FactoryName, id.ResourceGroup, err) } } diff --git a/azurerm/internal/services/datafactory/data_factory_linked_service_odata_resource_test.go b/azurerm/internal/services/datafactory/data_factory_linked_service_odata_resource_test.go index 7d23f34324071..12b02aa5fd44c 100644 --- a/azurerm/internal/services/datafactory/data_factory_linked_service_odata_resource_test.go +++ b/azurerm/internal/services/datafactory/data_factory_linked_service_odata_resource_test.go @@ -7,10 +7,10 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/helper/resource" "github.com/hashicorp/terraform-plugin-sdk/terraform" - "github.com/terraform-providers/terraform-provider-azurerm/azurerm/helpers/azure" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/acceptance" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/acceptance/check" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/clients" + "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/services/datafactory/parse" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils" ) @@ -88,15 +88,12 @@ func TestAccDataFactoryLinkedServiceOData_basic_update(t *testing.T) { } func (t LinkedServiceODataResource) Exists(ctx context.Context, clients *clients.Client, state *terraform.InstanceState) (*bool, error) { - id, err := azure.ParseAzureResourceID(state.ID) + id, err := parse.LinkedServiceID(state.ID) if err != nil { return nil, err } - resourceGroup := id.ResourceGroup - dataFactoryName := id.Path["factories"] - name := id.Path["linkedservices"] - resp, err := clients.DataFactory.LinkedServiceClient.Get(ctx, resourceGroup, dataFactoryName, name, "") + resp, err := clients.DataFactory.LinkedServiceClient.Get(ctx, id.ResourceGroup, id.FactoryName, id.Name, "") if err != nil { return nil, fmt.Errorf("reading Data Factory Linked Service OData (%s): %+v", id, err) }