diff --git a/azurerm/internal/services/network/registration.go b/azurerm/internal/services/network/registration.go index 5f7e6f881a72..8ecf117471f0 100644 --- a/azurerm/internal/services/network/registration.go +++ b/azurerm/internal/services/network/registration.go @@ -38,13 +38,13 @@ func (r Registration) SupportedDataSources() map[string]*schema.Resource { "azurerm_route_filter": dataSourceRouteFilter(), "azurerm_route_table": dataSourceRouteTable(), "azurerm_network_service_tags": dataSourceNetworkServiceTags(), - "azurerm_subnet": dataSourceArmSubnet(), - "azurerm_virtual_hub": dataSourceArmVirtualHub(), - "azurerm_virtual_network_gateway": dataSourceArmVirtualNetworkGateway(), - "azurerm_virtual_network_gateway_connection": dataSourceArmVirtualNetworkGatewayConnection(), - "azurerm_virtual_network": dataSourceArmVirtualNetwork(), - "azurerm_web_application_firewall_policy": dataArmWebApplicationFirewallPolicy(), - "azurerm_virtual_wan": dataSourceArmVirtualWan(), + "azurerm_subnet": dataSourceSubnet(), + "azurerm_virtual_hub": dataSourceVirtualHub(), + "azurerm_virtual_network_gateway": dataSourceVirtualNetworkGateway(), + "azurerm_virtual_network_gateway_connection": dataSourceVirtualNetworkGatewayConnection(), + "azurerm_virtual_network": dataSourceVirtualNetwork(), + "azurerm_web_application_firewall_policy": dataWebApplicationFirewallPolicy(), + "azurerm_virtual_wan": dataSourceVirtualWan(), } } @@ -85,26 +85,26 @@ func (r Registration) SupportedResources() map[string]*schema.Resource { "azurerm_route_filter": resourceRouteFilter(), "azurerm_route_table": resourceRouteTable(), "azurerm_route": resourceRoute(), - "azurerm_virtual_hub_security_partner_provider": resourceArmVirtualHubSecurityPartnerProvider(), - "azurerm_subnet_service_endpoint_storage_policy": resourceArmSubnetServiceEndpointStoragePolicy(), - "azurerm_subnet_network_security_group_association": resourceArmSubnetNetworkSecurityGroupAssociation(), - "azurerm_subnet_route_table_association": resourceArmSubnetRouteTableAssociation(), - "azurerm_subnet_nat_gateway_association": resourceArmSubnetNatGatewayAssociation(), - "azurerm_subnet": resourceArmSubnet(), - "azurerm_virtual_hub": resourceArmVirtualHub(), - "azurerm_virtual_hub_bgp_connection": resourceArmVirtualHubBgpConnection(), - "azurerm_virtual_hub_connection": resourceArmVirtualHubConnection(), - "azurerm_virtual_hub_ip": resourceArmVirtualHubIP(), - "azurerm_virtual_hub_route_table": resourceArmVirtualHubRouteTable(), - "azurerm_virtual_network_gateway_connection": resourceArmVirtualNetworkGatewayConnection(), - "azurerm_virtual_network_gateway": resourceArmVirtualNetworkGateway(), - "azurerm_virtual_network_peering": resourceArmVirtualNetworkPeering(), - "azurerm_virtual_network": resourceArmVirtualNetwork(), - "azurerm_virtual_wan": resourceArmVirtualWan(), - "azurerm_vpn_gateway": resourceArmVPNGateway(), - "azurerm_vpn_gateway_connection": resourceArmVPNGatewayConnection(), - "azurerm_vpn_server_configuration": resourceArmVPNServerConfiguration(), - "azurerm_vpn_site": resourceArmVpnSite(), - "azurerm_web_application_firewall_policy": resourceArmWebApplicationFirewallPolicy(), + "azurerm_virtual_hub_security_partner_provider": resourceVirtualHubSecurityPartnerProvider(), + "azurerm_subnet_service_endpoint_storage_policy": resourceSubnetServiceEndpointStoragePolicy(), + "azurerm_subnet_network_security_group_association": resourceSubnetNetworkSecurityGroupAssociation(), + "azurerm_subnet_route_table_association": resourceSubnetRouteTableAssociation(), + "azurerm_subnet_nat_gateway_association": resourceSubnetNatGatewayAssociation(), + "azurerm_subnet": resourceSubnet(), + "azurerm_virtual_hub": resourceVirtualHub(), + "azurerm_virtual_hub_bgp_connection": resourceVirtualHubBgpConnection(), + "azurerm_virtual_hub_connection": resourceVirtualHubConnection(), + "azurerm_virtual_hub_ip": resourceVirtualHubIP(), + "azurerm_virtual_hub_route_table": resourceVirtualHubRouteTable(), + "azurerm_virtual_network_gateway_connection": resourceVirtualNetworkGatewayConnection(), + "azurerm_virtual_network_gateway": resourceVirtualNetworkGateway(), + "azurerm_virtual_network_peering": resourceVirtualNetworkPeering(), + "azurerm_virtual_network": resourceVirtualNetwork(), + "azurerm_virtual_wan": resourceVirtualWan(), + "azurerm_vpn_gateway": resourceVPNGateway(), + "azurerm_vpn_gateway_connection": resourceVPNGatewayConnection(), + "azurerm_vpn_server_configuration": resourceVPNServerConfiguration(), + "azurerm_vpn_site": resourceVpnSite(), + "azurerm_web_application_firewall_policy": resourceWebApplicationFirewallPolicy(), } } diff --git a/azurerm/internal/services/network/subnet_data_source.go b/azurerm/internal/services/network/subnet_data_source.go index fdf1560e96b3..5ec5b547650f 100644 --- a/azurerm/internal/services/network/subnet_data_source.go +++ b/azurerm/internal/services/network/subnet_data_source.go @@ -12,9 +12,9 @@ import ( "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils" ) -func dataSourceArmSubnet() *schema.Resource { +func dataSourceSubnet() *schema.Resource { return &schema.Resource{ - Read: dataSourceArmSubnetRead, + Read: dataSourceSubnetRead, Timeouts: &schema.ResourceTimeout{ Read: schema.DefaultTimeout(5 * time.Minute), @@ -77,7 +77,7 @@ func dataSourceArmSubnet() *schema.Resource { } } -func dataSourceArmSubnetRead(d *schema.ResourceData, meta interface{}) error { +func dataSourceSubnetRead(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.SubnetsClient ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() diff --git a/azurerm/internal/services/network/subnet_nat_gateway_association_resource.go b/azurerm/internal/services/network/subnet_nat_gateway_association_resource.go index 35df248708de..606a4f08e3f7 100644 --- a/azurerm/internal/services/network/subnet_nat_gateway_association_resource.go +++ b/azurerm/internal/services/network/subnet_nat_gateway_association_resource.go @@ -15,11 +15,11 @@ import ( "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils" ) -func resourceArmSubnetNatGatewayAssociation() *schema.Resource { +func resourceSubnetNatGatewayAssociation() *schema.Resource { return &schema.Resource{ - Create: resourceArmSubnetNatGatewayAssociationCreate, - Read: resourceArmSubnetNatGatewayAssociationRead, - Delete: resourceArmSubnetNatGatewayAssociationDelete, + Create: resourceSubnetNatGatewayAssociationCreate, + Read: resourceSubnetNatGatewayAssociationRead, + Delete: resourceSubnetNatGatewayAssociationDelete, Importer: &schema.ResourceImporter{ State: schema.ImportStatePassthrough, }, @@ -48,7 +48,7 @@ func resourceArmSubnetNatGatewayAssociation() *schema.Resource { } } -func resourceArmSubnetNatGatewayAssociationCreate(d *schema.ResourceData, meta interface{}) error { +func resourceSubnetNatGatewayAssociationCreate(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.SubnetsClient ctx, cancel := timeouts.ForCreate(meta.(*clients.Client).StopContext, d) defer cancel() @@ -114,10 +114,10 @@ func resourceArmSubnetNatGatewayAssociationCreate(d *schema.ResourceData, meta i } d.SetId(*read.ID) - return resourceArmSubnetNatGatewayAssociationRead(d, meta) + return resourceSubnetNatGatewayAssociationRead(d, meta) } -func resourceArmSubnetNatGatewayAssociationRead(d *schema.ResourceData, meta interface{}) error { +func resourceSubnetNatGatewayAssociationRead(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.SubnetsClient ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() @@ -158,7 +158,7 @@ func resourceArmSubnetNatGatewayAssociationRead(d *schema.ResourceData, meta int return nil } -func resourceArmSubnetNatGatewayAssociationDelete(d *schema.ResourceData, meta interface{}) error { +func resourceSubnetNatGatewayAssociationDelete(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.SubnetsClient ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d) defer cancel() diff --git a/azurerm/internal/services/network/subnet_network_security_group_association_resource.go b/azurerm/internal/services/network/subnet_network_security_group_association_resource.go index f721d9ff13d9..7dc06ef00855 100644 --- a/azurerm/internal/services/network/subnet_network_security_group_association_resource.go +++ b/azurerm/internal/services/network/subnet_network_security_group_association_resource.go @@ -15,11 +15,11 @@ import ( "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils" ) -func resourceArmSubnetNetworkSecurityGroupAssociation() *schema.Resource { +func resourceSubnetNetworkSecurityGroupAssociation() *schema.Resource { return &schema.Resource{ - Create: resourceArmSubnetNetworkSecurityGroupAssociationCreate, - Read: resourceArmSubnetNetworkSecurityGroupAssociationRead, - Delete: resourceArmSubnetNetworkSecurityGroupAssociationDelete, + Create: resourceSubnetNetworkSecurityGroupAssociationCreate, + Read: resourceSubnetNetworkSecurityGroupAssociationRead, + Delete: resourceSubnetNetworkSecurityGroupAssociationDelete, Importer: &schema.ResourceImporter{ State: schema.ImportStatePassthrough, }, @@ -49,7 +49,7 @@ func resourceArmSubnetNetworkSecurityGroupAssociation() *schema.Resource { } } -func resourceArmSubnetNetworkSecurityGroupAssociationCreate(d *schema.ResourceData, meta interface{}) error { +func resourceSubnetNetworkSecurityGroupAssociationCreate(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.SubnetsClient ctx, cancel := timeouts.ForCreate(meta.(*clients.Client).StopContext, d) defer cancel() @@ -120,10 +120,10 @@ func resourceArmSubnetNetworkSecurityGroupAssociationCreate(d *schema.ResourceDa d.SetId(*read.ID) - return resourceArmSubnetNetworkSecurityGroupAssociationRead(d, meta) + return resourceSubnetNetworkSecurityGroupAssociationRead(d, meta) } -func resourceArmSubnetNetworkSecurityGroupAssociationRead(d *schema.ResourceData, meta interface{}) error { +func resourceSubnetNetworkSecurityGroupAssociationRead(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.SubnetsClient ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() @@ -164,7 +164,7 @@ func resourceArmSubnetNetworkSecurityGroupAssociationRead(d *schema.ResourceData return nil } -func resourceArmSubnetNetworkSecurityGroupAssociationDelete(d *schema.ResourceData, meta interface{}) error { +func resourceSubnetNetworkSecurityGroupAssociationDelete(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.SubnetsClient ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d) defer cancel() diff --git a/azurerm/internal/services/network/subnet_resource.go b/azurerm/internal/services/network/subnet_resource.go index d40f42d19865..8e4b53a35b91 100644 --- a/azurerm/internal/services/network/subnet_resource.go +++ b/azurerm/internal/services/network/subnet_resource.go @@ -21,12 +21,12 @@ import ( var SubnetResourceName = "azurerm_subnet" -func resourceArmSubnet() *schema.Resource { +func resourceSubnet() *schema.Resource { return &schema.Resource{ - Create: resourceArmSubnetCreate, - Read: resourceArmSubnetRead, - Update: resourceArmSubnetUpdate, - Delete: resourceArmSubnetDelete, + Create: resourceSubnetCreate, + Read: resourceSubnetRead, + Update: resourceSubnetUpdate, + Delete: resourceSubnetDelete, Importer: &schema.ResourceImporter{ State: schema.ImportStatePassthrough, }, @@ -175,7 +175,7 @@ func resourceArmSubnet() *schema.Resource { } // TODO: refactor the create/flatten functions -func resourceArmSubnetCreate(d *schema.ResourceData, meta interface{}) error { +func resourceSubnetCreate(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.SubnetsClient ctx, cancel := timeouts.ForCreateUpdate(meta.(*clients.Client).StopContext, d) defer cancel() @@ -257,10 +257,10 @@ func resourceArmSubnetCreate(d *schema.ResourceData, meta interface{}) error { d.SetId(*read.ID) - return resourceArmSubnetRead(d, meta) + return resourceSubnetRead(d, meta) } -func resourceArmSubnetUpdate(d *schema.ResourceData, meta interface{}) error { +func resourceSubnetUpdate(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.SubnetsClient ctx, cancel := timeouts.ForUpdate(meta.(*clients.Client).StopContext, d) defer cancel() @@ -338,10 +338,10 @@ func resourceArmSubnetUpdate(d *schema.ResourceData, meta interface{}) error { return fmt.Errorf("Error waiting for update of Subnet %q (Virtual Network %q / Resource Group %q): %+v", name, networkName, resourceGroup, err) } - return resourceArmSubnetRead(d, meta) + return resourceSubnetRead(d, meta) } -func resourceArmSubnetRead(d *schema.ResourceData, meta interface{}) error { +func resourceSubnetRead(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.SubnetsClient ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() @@ -401,7 +401,7 @@ func resourceArmSubnetRead(d *schema.ResourceData, meta interface{}) error { return nil } -func resourceArmSubnetDelete(d *schema.ResourceData, meta interface{}) error { +func resourceSubnetDelete(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.SubnetsClient ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d) defer cancel() diff --git a/azurerm/internal/services/network/subnet_route_table_association_resource.go b/azurerm/internal/services/network/subnet_route_table_association_resource.go index f4d7aa357bd4..a2487c48c904 100644 --- a/azurerm/internal/services/network/subnet_route_table_association_resource.go +++ b/azurerm/internal/services/network/subnet_route_table_association_resource.go @@ -15,11 +15,11 @@ import ( "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils" ) -func resourceArmSubnetRouteTableAssociation() *schema.Resource { +func resourceSubnetRouteTableAssociation() *schema.Resource { return &schema.Resource{ - Create: resourceArmSubnetRouteTableAssociationCreate, - Read: resourceArmSubnetRouteTableAssociationRead, - Delete: resourceArmSubnetRouteTableAssociationDelete, + Create: resourceSubnetRouteTableAssociationCreate, + Read: resourceSubnetRouteTableAssociationRead, + Delete: resourceSubnetRouteTableAssociationDelete, Importer: &schema.ResourceImporter{ State: schema.ImportStatePassthrough, }, @@ -49,7 +49,7 @@ func resourceArmSubnetRouteTableAssociation() *schema.Resource { } } -func resourceArmSubnetRouteTableAssociationCreate(d *schema.ResourceData, meta interface{}) error { +func resourceSubnetRouteTableAssociationCreate(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.SubnetsClient ctx, cancel := timeouts.ForCreate(meta.(*clients.Client).StopContext, d) defer cancel() @@ -117,10 +117,10 @@ func resourceArmSubnetRouteTableAssociationCreate(d *schema.ResourceData, meta i d.SetId(*read.ID) - return resourceArmSubnetRouteTableAssociationRead(d, meta) + return resourceSubnetRouteTableAssociationRead(d, meta) } -func resourceArmSubnetRouteTableAssociationRead(d *schema.ResourceData, meta interface{}) error { +func resourceSubnetRouteTableAssociationRead(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.SubnetsClient ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() @@ -161,7 +161,7 @@ func resourceArmSubnetRouteTableAssociationRead(d *schema.ResourceData, meta int return nil } -func resourceArmSubnetRouteTableAssociationDelete(d *schema.ResourceData, meta interface{}) error { +func resourceSubnetRouteTableAssociationDelete(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.SubnetsClient ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d) defer cancel() diff --git a/azurerm/internal/services/network/subnet_service_endpoint_storage_policy_resource.go b/azurerm/internal/services/network/subnet_service_endpoint_storage_policy_resource.go index c0081f0cdb48..431c95067819 100644 --- a/azurerm/internal/services/network/subnet_service_endpoint_storage_policy_resource.go +++ b/azurerm/internal/services/network/subnet_service_endpoint_storage_policy_resource.go @@ -24,12 +24,12 @@ import ( "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils" ) -func resourceArmSubnetServiceEndpointStoragePolicy() *schema.Resource { +func resourceSubnetServiceEndpointStoragePolicy() *schema.Resource { return &schema.Resource{ - Create: resourceArmSubnetServiceEndpointStoragePolicyCreateUpdate, - Read: resourceArmSubnetServiceEndpointStoragePolicyRead, - Update: resourceArmSubnetServiceEndpointStoragePolicyCreateUpdate, - Delete: resourceArmSubnetServiceEndpointStoragePolicyDelete, + Create: resourceSubnetServiceEndpointStoragePolicyCreateUpdate, + Read: resourceSubnetServiceEndpointStoragePolicyRead, + Update: resourceSubnetServiceEndpointStoragePolicyCreateUpdate, + Delete: resourceSubnetServiceEndpointStoragePolicyDelete, Importer: azSchema.ValidateResourceIDPriorToImport(func(id string) error { _, err := parse.SubnetServiceEndpointStoragePolicyID(id) @@ -94,7 +94,7 @@ func resourceArmSubnetServiceEndpointStoragePolicy() *schema.Resource { } } -func resourceArmSubnetServiceEndpointStoragePolicyCreateUpdate(d *schema.ResourceData, meta interface{}) error { +func resourceSubnetServiceEndpointStoragePolicyCreateUpdate(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.ServiceEndpointPoliciesClient subscriptionId := meta.(*clients.Client).Account.SubscriptionId ctx, cancel := timeouts.ForCreateUpdate(meta.(*clients.Client).StopContext, d) @@ -134,10 +134,10 @@ func resourceArmSubnetServiceEndpointStoragePolicyCreateUpdate(d *schema.Resourc d.SetId(resourceId.ID()) - return resourceArmSubnetServiceEndpointStoragePolicyRead(d, meta) + return resourceSubnetServiceEndpointStoragePolicyRead(d, meta) } -func resourceArmSubnetServiceEndpointStoragePolicyRead(d *schema.ResourceData, meta interface{}) error { +func resourceSubnetServiceEndpointStoragePolicyRead(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.ServiceEndpointPoliciesClient ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() @@ -172,7 +172,7 @@ func resourceArmSubnetServiceEndpointStoragePolicyRead(d *schema.ResourceData, m return tags.FlattenAndSet(d, resp.Tags) } -func resourceArmSubnetServiceEndpointStoragePolicyDelete(d *schema.ResourceData, meta interface{}) error { +func resourceSubnetServiceEndpointStoragePolicyDelete(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.ServiceEndpointPoliciesClient ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d) defer cancel() diff --git a/azurerm/internal/services/network/tests/subnet_data_source_test.go b/azurerm/internal/services/network/tests/subnet_data_source_test.go index cbd4d88e2b5c..bd47e68d7702 100644 --- a/azurerm/internal/services/network/tests/subnet_data_source_test.go +++ b/azurerm/internal/services/network/tests/subnet_data_source_test.go @@ -6,131 +6,119 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/helper/resource" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/acceptance" + "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/acceptance/check" ) +type SubnetDataSource struct { +} + func TestAccDataSourceSubnet_basic(t *testing.T) { data := acceptance.BuildTestData(t, "data.azurerm_subnet", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - Steps: []resource.TestStep{ - { - Config: testAccDataSourceSubnet_basic(data), - Check: resource.ComposeTestCheckFunc( - resource.TestCheckResourceAttrSet(data.ResourceName, "name"), - resource.TestCheckResourceAttrSet(data.ResourceName, "resource_group_name"), - resource.TestCheckResourceAttrSet(data.ResourceName, "virtual_network_name"), - resource.TestCheckResourceAttrSet(data.ResourceName, "address_prefix"), - resource.TestCheckResourceAttr(data.ResourceName, "network_security_group_id", ""), - resource.TestCheckResourceAttr(data.ResourceName, "route_table_id", ""), - ), - }, + r := SubnetDataSource{} + + data.DataSourceTest(t, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).Key("name").Exists(), + check.That(data.ResourceName).Key("resource_group_name").Exists(), + check.That(data.ResourceName).Key("virtual_network_name").Exists(), + check.That(data.ResourceName).Key("address_prefix").Exists(), + check.That(data.ResourceName).Key("network_security_group_id").HasValue(""), + check.That(data.ResourceName).Key("route_table_id").HasValue(""), + ), }, }) } func TestAccDataSourceAzureRMSubnet_basic_addressPrefixes(t *testing.T) { data := acceptance.BuildTestData(t, "data.azurerm_subnet", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - Steps: []resource.TestStep{ - { - Config: testAccDataSourceSubnet_basic_addressPrefixes(data), - Check: resource.ComposeTestCheckFunc( - resource.TestCheckResourceAttrSet(data.ResourceName, "name"), - resource.TestCheckResourceAttrSet(data.ResourceName, "resource_group_name"), - resource.TestCheckResourceAttrSet(data.ResourceName, "virtual_network_name"), - resource.TestCheckResourceAttrSet(data.ResourceName, "address_prefixes.#"), - resource.TestCheckResourceAttr(data.ResourceName, "network_security_group_id", ""), - resource.TestCheckResourceAttr(data.ResourceName, "route_table_id", ""), - ), - }, + r := SubnetDataSource{} + + data.DataSourceTest(t, []resource.TestStep{ + { + Config: r.basic_addressPrefixes(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).Key("name").Exists(), + check.That(data.ResourceName).Key("resource_group_name").Exists(), + check.That(data.ResourceName).Key("virtual_network_name").Exists(), + check.That(data.ResourceName).Key("address_prefixes.#").Exists(), + check.That(data.ResourceName).Key("network_security_group_id").HasValue(""), + check.That(data.ResourceName).Key("route_table_id").HasValue(""), + ), }, }) } func TestAccDataSourceSubnet_networkSecurityGroup(t *testing.T) { data := acceptance.BuildTestData(t, "data.azurerm_subnet", "test") + r := SubnetDataSource{} - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - Steps: []resource.TestStep{ - { - // since the network security group association is a separate resource this forces it - Config: testAccDataSourceSubnet_networkSecurityGroupDependencies(data), - }, - { - Config: testAccDataSourceSubnet_networkSecurityGroup(data), - Check: resource.ComposeTestCheckFunc( - resource.TestCheckResourceAttrSet(data.ResourceName, "name"), - resource.TestCheckResourceAttrSet(data.ResourceName, "resource_group_name"), - resource.TestCheckResourceAttrSet(data.ResourceName, "virtual_network_name"), - resource.TestCheckResourceAttrSet(data.ResourceName, "address_prefix"), - resource.TestCheckResourceAttrSet(data.ResourceName, "network_security_group_id"), - resource.TestCheckResourceAttr(data.ResourceName, "route_table_id", ""), - ), - }, + data.DataSourceTest(t, []resource.TestStep{ + { + // since the network security group association is a separate resource this forces it + Config: r.networkSecurityGroupDependencies(data), + }, + { + Config: r.networkSecurityGroup(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).Key("name").Exists(), + check.That(data.ResourceName).Key("resource_group_name").Exists(), + check.That(data.ResourceName).Key("virtual_network_name").Exists(), + check.That(data.ResourceName).Key("address_prefix").Exists(), + check.That(data.ResourceName).Key("network_security_group_id").Exists(), + check.That(data.ResourceName).Key("route_table_id").HasValue(""), + ), }, }) } func TestAccDataSourceSubnet_routeTable(t *testing.T) { data := acceptance.BuildTestData(t, "data.azurerm_subnet", "test") + r := SubnetDataSource{} - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - Steps: []resource.TestStep{ - { - // since the route table association is a separate resource this forces it - Config: testAccDataSourceSubnet_routeTableDependencies(data), - }, - { - Config: testAccDataSourceSubnet_routeTable(data), - Check: resource.ComposeTestCheckFunc( - resource.TestCheckResourceAttrSet(data.ResourceName, "name"), - resource.TestCheckResourceAttrSet(data.ResourceName, "resource_group_name"), - resource.TestCheckResourceAttrSet(data.ResourceName, "virtual_network_name"), - resource.TestCheckResourceAttrSet(data.ResourceName, "address_prefix"), - resource.TestCheckResourceAttrSet(data.ResourceName, "route_table_id"), - resource.TestCheckResourceAttr(data.ResourceName, "network_security_group_id", ""), - ), - }, + data.DataSourceTest(t, []resource.TestStep{ + { + // since the route table association is a separate resource this forces it + Config: r.routeTableDependencies(data), + }, + { + Config: r.routeTable(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).Key("name").Exists(), + check.That(data.ResourceName).Key("resource_group_name").Exists(), + check.That(data.ResourceName).Key("virtual_network_name").Exists(), + check.That(data.ResourceName).Key("address_prefix").Exists(), + check.That(data.ResourceName).Key("route_table_id").Exists(), + check.That(data.ResourceName).Key("network_security_group_id").HasValue(""), + ), }, }) } func TestAccDataSourceSubnet_serviceEndpoints(t *testing.T) { data := acceptance.BuildTestData(t, "data.azurerm_subnet", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - Steps: []resource.TestStep{ - { - Config: testAccDataSourceSubnet_serviceEndpoint(data), - Check: resource.ComposeTestCheckFunc( - resource.TestCheckResourceAttrSet(data.ResourceName, "name"), - resource.TestCheckResourceAttrSet(data.ResourceName, "resource_group_name"), - resource.TestCheckResourceAttrSet(data.ResourceName, "virtual_network_name"), - resource.TestCheckResourceAttrSet(data.ResourceName, "address_prefix"), - resource.TestCheckResourceAttr(data.ResourceName, "network_security_group_id", ""), - resource.TestCheckResourceAttr(data.ResourceName, "route_table_id", ""), - resource.TestCheckResourceAttr(data.ResourceName, "service_endpoints.#", "2"), - resource.TestCheckResourceAttr(data.ResourceName, "service_endpoints.0", "Microsoft.Sql"), - resource.TestCheckResourceAttr(data.ResourceName, "service_endpoints.1", "Microsoft.Storage"), - ), - }, + r := SubnetDataSource{} + + data.DataSourceTest(t, []resource.TestStep{ + { + Config: r.serviceEndpoint(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).Key("name").Exists(), + check.That(data.ResourceName).Key("resource_group_name").Exists(), + check.That(data.ResourceName).Key("virtual_network_name").Exists(), + check.That(data.ResourceName).Key("address_prefix").Exists(), + check.That(data.ResourceName).Key("network_security_group_id").HasValue(""), + check.That(data.ResourceName).Key("route_table_id").HasValue(""), + check.That(data.ResourceName).Key("service_endpoints.#").HasValue("2"), + check.That(data.ResourceName).Key("service_endpoints.0").HasValue("Microsoft.Sql"), + check.That(data.ResourceName).Key("service_endpoints.1").HasValue("Microsoft.Storage"), + ), }, }) } -func testAccDataSourceSubnet_basic(data acceptance.TestData) string { - template := testAccDataSourceSubnet_template(data) +func (r SubnetDataSource) basic(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -146,10 +134,10 @@ data "azurerm_subnet" "test" { virtual_network_name = azurerm_subnet.test.virtual_network_name resource_group_name = azurerm_subnet.test.resource_group_name } -`, template) +`, r.template(data)) } -func testAccDataSourceSubnet_basic_addressPrefixes(data acceptance.TestData) string { +func (SubnetDataSource) basic_addressPrefixes(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} @@ -178,8 +166,7 @@ data "azurerm_subnet" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.RandomInteger) } -func testAccDataSourceSubnet_networkSecurityGroupDependencies(data acceptance.TestData) string { - template := testAccDataSourceSubnet_template(data) +func (r SubnetDataSource) networkSecurityGroupDependencies(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -212,11 +199,10 @@ resource "azurerm_subnet_network_security_group_association" "test" { subnet_id = azurerm_subnet.test.id network_security_group_id = azurerm_network_security_group.test.id } -`, template, data.RandomInteger) +`, r.template(data), data.RandomInteger) } -func testAccDataSourceSubnet_networkSecurityGroup(data acceptance.TestData) string { - template := testAccDataSourceSubnet_networkSecurityGroupDependencies(data) +func (r SubnetDataSource) networkSecurityGroup(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -225,11 +211,10 @@ data "azurerm_subnet" "test" { virtual_network_name = azurerm_subnet.test.virtual_network_name resource_group_name = azurerm_subnet.test.resource_group_name } -`, template) +`, r.networkSecurityGroupDependencies(data)) } -func testAccDataSourceSubnet_routeTableDependencies(data acceptance.TestData) string { - template := testAccDataSourceSubnet_template(data) +func (r SubnetDataSource) routeTableDependencies(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -257,11 +242,10 @@ resource "azurerm_subnet_route_table_association" "test" { subnet_id = azurerm_subnet.test.id route_table_id = azurerm_route_table.test.id } -`, template, data.RandomInteger) +`, r.template(data), data.RandomInteger) } -func testAccDataSourceSubnet_routeTable(data acceptance.TestData) string { - template := testAccDataSourceSubnet_routeTableDependencies(data) +func (r SubnetDataSource) routeTable(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -270,11 +254,10 @@ data "azurerm_subnet" "test" { virtual_network_name = azurerm_subnet.test.virtual_network_name resource_group_name = azurerm_subnet.test.resource_group_name } -`, template) +`, r.routeTableDependencies(data)) } -func testAccDataSourceSubnet_serviceEndpoint(data acceptance.TestData) string { - template := testAccAzureRMSubnet_serviceEndpointsUpdated(data) +func (SubnetDataSource) serviceEndpoint(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -283,10 +266,10 @@ data "azurerm_subnet" "test" { virtual_network_name = azurerm_subnet.test.virtual_network_name resource_group_name = azurerm_subnet.test.resource_group_name } -`, template) +`, SubnetResource{}.serviceEndpointsUpdated(data)) } -func testAccDataSourceSubnet_template(data acceptance.TestData) string { +func (SubnetDataSource) template(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} diff --git a/azurerm/internal/services/network/tests/subnet_nat_gateway_association_resource_test.go b/azurerm/internal/services/network/tests/subnet_nat_gateway_association_resource_test.go index ed299daaad85..ed51937011c1 100644 --- a/azurerm/internal/services/network/tests/subnet_nat_gateway_association_resource_test.go +++ b/azurerm/internal/services/network/tests/subnet_nat_gateway_association_resource_test.go @@ -1,6 +1,7 @@ package tests import ( + "context" "fmt" "testing" @@ -8,140 +9,110 @@ import ( "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/utils" ) +type SubnetNatGatewayAssociationResource struct { +} + func TestAccAzureRMSubnetNatGatewayAssociation_basic(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_subnet_nat_gateway_association", "test") + r := SubnetNatGatewayAssociationResource{} - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, + data.ResourceTest(t, r, []resource.TestStep{ // intentional since this is a virtual resource - CheckDestroy: testCheckAzureRMSubnetDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMSubnetNatGatewayAssociation_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetNatGatewayAssociationExists(data.ResourceName), - ), - }, - data.ImportStep(), + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } func TestAccAzureRMSubnetNatGatewayAssociation_requiresImport(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_subnet_nat_gateway_association", "test") + r := SubnetNatGatewayAssociationResource{} - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, + data.ResourceTest(t, r, []resource.TestStep{ // intentional since this is a virtual resource - CheckDestroy: testCheckAzureRMSubnetDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMSubnetNatGatewayAssociation_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetNatGatewayAssociationExists(data.ResourceName), - ), - }, - { - Config: testAccAzureRMSubnetNatGatewayAssociation_requiresImport(data), - ExpectError: acceptance.RequiresImportError(data.ResourceType), - }, + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + { + Config: r.requiresImport(data), + ExpectError: acceptance.RequiresImportError(data.ResourceType), }, }) } func TestAccAzureRMSubnetNatGatewayAssociation_deleted(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_subnet_nat_gateway_association", "test") + r := SubnetNatGatewayAssociationResource{} - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, + data.ResourceTest(t, r, []resource.TestStep{ // intentional since this is virtual resource - CheckDestroy: testCheckAzureRMSubnetDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMSubnetNatGatewayAssociation_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetNatGatewayAssociationExists(data.ResourceName), - testCheckAzureRMSubnetNatGatewayAssociationDisappears(data.ResourceName), - testCheckAzureRMSubnetHasNoNatGateways(data.ResourceName), - ), - ExpectNonEmptyPlan: true, - }, + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + testCheckAzureRMSubnetNatGatewayAssociationDisappears(data.ResourceName), + testCheckAzureRMSubnetHasNoNatGateways(data.ResourceName), + ), + ExpectNonEmptyPlan: true, }, }) } func TestAccAzureRMSubnetNatGatewayAssociation_updateSubnet(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_subnet_nat_gateway_association", "test") + r := SubnetNatGatewayAssociationResource{} - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, + data.ResourceTest(t, r, []resource.TestStep{ // intentional since this is a virtual resource - CheckDestroy: testCheckAzureRMSubnetDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMSubnetNatGatewayAssociation_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetNatGatewayAssociationExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMSubnetNatGatewayAssociation_updateSubnet(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetNatGatewayAssociationExists(data.ResourceName), - ), - }, - data.ImportStep(), + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), + { + Config: r.updateSubnet(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), }) } -func testCheckAzureRMSubnetNatGatewayAssociationExists(resourceName string) resource.TestCheckFunc { - return func(s *terraform.State) error { - client := acceptance.AzureProvider.Meta().(*clients.Client).Network.SubnetsClient - ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext - - rs, ok := s.RootModule().Resources[resourceName] - if !ok { - return fmt.Errorf("Not found: %s", resourceName) - } - subnetId := rs.Primary.Attributes["subnet_id"] - parsedSubnetId, err := azure.ParseAzureResourceID(subnetId) - if err != nil { - return err - } - - resourceGroupName := parsedSubnetId.ResourceGroup - virtualNetworkName := parsedSubnetId.Path["virtualNetworks"] - subnetName := parsedSubnetId.Path["subnets"] - - subnet, err := client.Get(ctx, resourceGroupName, virtualNetworkName, subnetName, "") - if err != nil { - if utils.ResponseWasNotFound(subnet.Response) { - return fmt.Errorf("Bad: Subnet %q (Virtual Network %q / Resource Group: %q) does not exist", subnetName, virtualNetworkName, resourceGroupName) - } - return fmt.Errorf("Bad: Get on subnetClient: %+v", err) - } - - props := subnet.SubnetPropertiesFormat - if props == nil { - return fmt.Errorf("Properties was nil for Subnet %q (Virtual Network %q / Resource Group: %q)", subnetName, virtualNetworkName, resourceGroupName) - } +func (t SubnetNatGatewayAssociationResource) Exists(ctx context.Context, clients *clients.Client, state *terraform.InstanceState) (*bool, error) { + id, err := azure.ParseAzureResourceID(state.ID) + if err != nil { + return nil, err + } + resourceGroup := id.ResourceGroup + virtualNetworkName := id.Path["virtualNetworks"] + subnetName := id.Path["subnets"] - if props.NatGateway == nil || props.NatGateway.ID == nil { - return fmt.Errorf("No NAT Gateway association exists for Subnet %q (Virtual Network %q / Resource Group: %q)", subnetName, virtualNetworkName, resourceGroupName) - } + resp, err := clients.Network.SubnetsClient.Get(ctx, resourceGroup, virtualNetworkName, subnetName, "") + if err != nil { + return nil, fmt.Errorf("reading Subnet Nat Gateway Association (%s): %+v", id, err) + } - return nil + props := resp.SubnetPropertiesFormat + if props == nil || props.NatGateway == nil { + return nil, fmt.Errorf("properties was nil for Subnet %q (Virtual Network %q / Resource Group: %q)", subnetName, virtualNetworkName, resourceGroup) } + + return utils.Bool(props.NatGateway.ID != nil), nil } func testCheckAzureRMSubnetNatGatewayAssociationDisappears(resourceName string) resource.TestCheckFunc { @@ -227,8 +198,7 @@ func testCheckAzureRMSubnetHasNoNatGateways(resourceName string) resource.TestCh } } -func testAccAzureRMSubnetNatGatewayAssociation_basic(data acceptance.TestData) string { - template := testAccAzureRMSubnetNatGatewayAssociation_template(data) +func (r SubnetNatGatewayAssociationResource) basic(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -243,11 +213,10 @@ resource "azurerm_subnet_nat_gateway_association" "test" { subnet_id = azurerm_subnet.test.id nat_gateway_id = azurerm_nat_gateway.test.id } -`, template) +`, r.template(data)) } -func testAccAzureRMSubnetNatGatewayAssociation_requiresImport(data acceptance.TestData) string { - template := testAccAzureRMSubnetNatGatewayAssociation_basic(data) +func (r SubnetNatGatewayAssociationResource) requiresImport(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -255,11 +224,10 @@ resource "azurerm_subnet_nat_gateway_association" "import" { subnet_id = azurerm_subnet_nat_gateway_association.test.subnet_id nat_gateway_id = azurerm_subnet_nat_gateway_association.test.nat_gateway_id } -`, template) +`, r.basic(data)) } -func testAccAzureRMSubnetNatGatewayAssociation_updateSubnet(data acceptance.TestData) string { - template := testAccAzureRMSubnetNatGatewayAssociation_template(data) +func (r SubnetNatGatewayAssociationResource) updateSubnet(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -276,10 +244,10 @@ resource "azurerm_subnet_nat_gateway_association" "test" { subnet_id = azurerm_subnet.test.id nat_gateway_id = azurerm_nat_gateway.test.id } -`, template) +`, r.template(data)) } -func testAccAzureRMSubnetNatGatewayAssociation_template(data acceptance.TestData) string { +func (SubnetNatGatewayAssociationResource) template(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} diff --git a/azurerm/internal/services/network/tests/subnet_network_security_group_association_resource_test.go b/azurerm/internal/services/network/tests/subnet_network_security_group_association_resource_test.go index c8f7bfdef37e..38a10d574644 100644 --- a/azurerm/internal/services/network/tests/subnet_network_security_group_association_resource_test.go +++ b/azurerm/internal/services/network/tests/subnet_network_security_group_association_resource_test.go @@ -1,6 +1,7 @@ package tests import ( + "context" "fmt" "testing" @@ -8,146 +9,113 @@ import ( "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/utils" ) -func TestAccAzureRMSubnetNetworkSecurityGroupAssociation_basic(t *testing.T) { +type SubnetNetworkSecurityGroupAssociationResource struct { +} + +func TestAccSubnetNetworkSecurityGroupAssociation_basic(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_subnet_network_security_group_association", "test") + r := SubnetNetworkSecurityGroupAssociationResource{} - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, + data.ResourceTest(t, r, []resource.TestStep{ // intentional as this is a Virtual Resource - CheckDestroy: testCheckAzureRMSubnetDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMSubnetNetworkSecurityGroupAssociation_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetNetworkSecurityGroupAssociationExists(data.ResourceName), - ), - }, - data.ImportStep(), + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMSubnetNetworkSecurityGroupAssociation_requiresImport(t *testing.T) { +func TestAccSubnetNetworkSecurityGroupAssociation_requiresImport(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_subnet_network_security_group_association", "test") + r := SubnetNetworkSecurityGroupAssociationResource{} - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, + data.ResourceTest(t, r, []resource.TestStep{ // intentional as this is a Virtual Resource - CheckDestroy: testCheckAzureRMSubnetDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMSubnetNetworkSecurityGroupAssociation_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetNetworkSecurityGroupAssociationExists(data.ResourceName), - ), - }, - { - Config: testAccAzureRMSubnetNetworkSecurityGroupAssociation_requiresImport(data), - ExpectError: acceptance.RequiresImportError("azurerm_subnet_network_security_group_association"), - }, + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + { + Config: r.requiresImport(data), + ExpectError: acceptance.RequiresImportError("azurerm_subnet_network_security_group_association"), }, }) } -func TestAccAzureRMSubnetNetworkSecurityGroupAssociation_updateSubnet(t *testing.T) { +func TestAccSubnetNetworkSecurityGroupAssociation_updateSubnet(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_subnet_network_security_group_association", "test") + r := SubnetNetworkSecurityGroupAssociationResource{} - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, + data.ResourceTest(t, r, []resource.TestStep{ // intentional as this is a Virtual Resource - CheckDestroy: testCheckAzureRMSubnetDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMSubnetNetworkSecurityGroupAssociation_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetNetworkSecurityGroupAssociationExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMSubnetNetworkSecurityGroupAssociation_updateSubnet(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetNetworkSecurityGroupAssociationExists(data.ResourceName), - ), - }, - data.ImportStep(), + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), + { + Config: r.updateSubnet(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), }) } -func TestAccAzureRMSubnetNetworkSecurityGroupAssociation_deleted(t *testing.T) { +func TestAccSubnetNetworkSecurityGroupAssociation_deleted(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_subnet_network_security_group_association", "test") + r := SubnetNetworkSecurityGroupAssociationResource{} - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, + data.ResourceTest(t, r, []resource.TestStep{ // intentional as this is a Virtual Resource - CheckDestroy: testCheckAzureRMSubnetDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMSubnetNetworkSecurityGroupAssociation_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetNetworkSecurityGroupAssociationExists(data.ResourceName), - testCheckAzureRMSubnetNetworkSecurityGroupAssociationDisappears(data.ResourceName), - testCheckAzureRMSubnetHasNoNetworkSecurityGroup(data.ResourceName), - ), - ExpectNonEmptyPlan: true, - }, + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + testCheckSubnetNetworkSecurityGroupAssociationDisappears(data.ResourceName), + testCheckSubnetHasNoNetworkSecurityGroup(data.ResourceName), + ), + ExpectNonEmptyPlan: true, }, }) } -func testCheckAzureRMSubnetNetworkSecurityGroupAssociationExists(resourceName string) resource.TestCheckFunc { - return func(s *terraform.State) error { - client := acceptance.AzureProvider.Meta().(*clients.Client).Network.SubnetsClient - ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext - - // Ensure we have enough information in state to look up in API - rs, ok := s.RootModule().Resources[resourceName] - if !ok { - return fmt.Errorf("Not found: %s", resourceName) - } - - subnetId := rs.Primary.Attributes["subnet_id"] - parsedId, err := azure.ParseAzureResourceID(subnetId) - if err != nil { - return err - } - - resourceGroupName := parsedId.ResourceGroup - virtualNetworkName := parsedId.Path["virtualNetworks"] - subnetName := parsedId.Path["subnets"] - - resp, err := client.Get(ctx, resourceGroupName, virtualNetworkName, subnetName, "") - if err != nil { - if utils.ResponseWasNotFound(resp.Response) { - return fmt.Errorf("Bad: Subnet %q (Virtual Network %q / Resource Group: %q) does not exist", subnetName, virtualNetworkName, resourceGroupName) - } - - return fmt.Errorf("Bad: Get on subnetClient: %+v", err) - } - - props := resp.SubnetPropertiesFormat - if props == nil { - return fmt.Errorf("Properties was nil for Subnet %q (Virtual Network %q / Resource Group: %q)", subnetName, virtualNetworkName, resourceGroupName) - } +func (t SubnetNetworkSecurityGroupAssociationResource) Exists(ctx context.Context, clients *clients.Client, state *terraform.InstanceState) (*bool, error) { + id, err := azure.ParseAzureResourceID(state.ID) + if err != nil { + return nil, err + } + resourceGroup := id.ResourceGroup + virtualNetworkName := id.Path["virtualNetworks"] + subnetName := id.Path["subnets"] - if props.NetworkSecurityGroup == nil || props.NetworkSecurityGroup.ID == nil { - return fmt.Errorf("No Network Security Group association exists for Subnet %q (Virtual Network %q / Resource Group: %q)", subnetName, virtualNetworkName, resourceGroupName) - } + resp, err := clients.Network.SubnetsClient.Get(ctx, resourceGroup, virtualNetworkName, subnetName, "") + if err != nil { + return nil, fmt.Errorf("reading Subnet Security Group Association (%s): %+v", id, err) + } - return nil + props := resp.SubnetPropertiesFormat + if props == nil || props.NetworkSecurityGroup == nil { + return nil, fmt.Errorf("properties was nil for Subnet %q (Virtual Network %q / Resource Group: %q)", subnetName, virtualNetworkName, resourceGroup) } + + return utils.Bool(props.NetworkSecurityGroup.ID != nil), nil } -func testCheckAzureRMSubnetNetworkSecurityGroupAssociationDisappears(resourceName string) resource.TestCheckFunc { +func testCheckSubnetNetworkSecurityGroupAssociationDisappears(resourceName string) resource.TestCheckFunc { return func(s *terraform.State) error { client := acceptance.AzureProvider.Meta().(*clients.Client).Network.SubnetsClient ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext @@ -189,7 +157,7 @@ func testCheckAzureRMSubnetNetworkSecurityGroupAssociationDisappears(resourceNam } } -func testCheckAzureRMSubnetHasNoNetworkSecurityGroup(resourceName string) resource.TestCheckFunc { +func testCheckSubnetHasNoNetworkSecurityGroup(resourceName string) resource.TestCheckFunc { return func(s *terraform.State) error { client := acceptance.AzureProvider.Meta().(*clients.Client).Network.SubnetsClient ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext @@ -232,8 +200,7 @@ func testCheckAzureRMSubnetHasNoNetworkSecurityGroup(resourceName string) resour } } -func testAccAzureRMSubnetNetworkSecurityGroupAssociation_basic(data acceptance.TestData) string { - template := testAccAzureRMSubnetNetworkSecurityGroupAssociation_template(data) +func (r SubnetNetworkSecurityGroupAssociationResource) basic(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -248,11 +215,10 @@ resource "azurerm_subnet_network_security_group_association" "test" { subnet_id = azurerm_subnet.test.id network_security_group_id = azurerm_network_security_group.test.id } -`, template) +`, r.template(data)) } -func testAccAzureRMSubnetNetworkSecurityGroupAssociation_requiresImport(data acceptance.TestData) string { - template := testAccAzureRMSubnetNetworkSecurityGroupAssociation_basic(data) +func (r SubnetNetworkSecurityGroupAssociationResource) requiresImport(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -260,11 +226,10 @@ resource "azurerm_subnet_network_security_group_association" "internal" { subnet_id = azurerm_subnet_network_security_group_association.test.subnet_id network_security_group_id = azurerm_subnet_network_security_group_association.test.network_security_group_id } -`, template) +`, r.basic(data)) } -func testAccAzureRMSubnetNetworkSecurityGroupAssociation_updateSubnet(data acceptance.TestData) string { - template := testAccAzureRMSubnetNetworkSecurityGroupAssociation_template(data) +func (r SubnetNetworkSecurityGroupAssociationResource) updateSubnet(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -281,10 +246,10 @@ resource "azurerm_subnet_network_security_group_association" "test" { subnet_id = azurerm_subnet.test.id network_security_group_id = azurerm_network_security_group.test.id } -`, template) +`, r.template(data)) } -func testAccAzureRMSubnetNetworkSecurityGroupAssociation_template(data acceptance.TestData) string { +func (SubnetNetworkSecurityGroupAssociationResource) template(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} diff --git a/azurerm/internal/services/network/tests/subnet_resource_test.go b/azurerm/internal/services/network/tests/subnet_resource_test.go index f75f280aab91..ab5fca6a7392 100644 --- a/azurerm/internal/services/network/tests/subnet_resource_test.go +++ b/azurerm/internal/services/network/tests/subnet_resource_test.go @@ -1,337 +1,286 @@ package tests import ( + "context" "fmt" - "log" "testing" "github.com/hashicorp/go-azure-helpers/response" "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/utils" ) -func TestAccAzureRMSubnet_basic(t *testing.T) { - data := acceptance.BuildTestData(t, "azurerm_subnet", "test") +type SubnetResource struct { +} - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMSubnetDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMSubnet_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetExists(data.ResourceName), - ), - }, - data.ImportStep(), +func TestAccSubnet_basic(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_subnet", "test") + r := SubnetResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMSubnet_basic_addressPrefixes(t *testing.T) { +func TestAccSubnet_basic_addressPrefixes(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_subnet", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMSubnetDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMSubnet_basic_addressPrefixes(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := SubnetResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic_addressPrefixes(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMSubnet_requiresImport(t *testing.T) { +func TestAccSubnet_requiresImport(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_subnet", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMSubnetDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMSubnet_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetExists(data.ResourceName), - ), - }, - { - Config: testAccAzureRMSubnet_requiresImport(data), - ExpectError: acceptance.RequiresImportError("azurerm_subnet"), - }, + r := SubnetResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + { + Config: r.requiresImport(data), + ExpectError: acceptance.RequiresImportError("azurerm_subnet"), }, }) } -func TestAccAzureRMSubnet_disappears(t *testing.T) { +func TestAccSubnet_disappears(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_subnet", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMSubnetDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMSubnet_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetExists(data.ResourceName), - testCheckAzureRMSubnetDisappears(data.ResourceName), - ), - ExpectNonEmptyPlan: true, - }, + r := SubnetResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + testCheckSubnetDisappears(data.ResourceName), + ), + ExpectNonEmptyPlan: true, }, }) } -func TestAccAzureRMSubnet_delegation(t *testing.T) { +func TestAccSubnet_delegation(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_subnet", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMSubnetDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMSubnet_delegation(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMSubnet_delegationUpdated(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMSubnet_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMSubnet_delegation(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := SubnetResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.delegation(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), + { + Config: r.delegationUpdated(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.delegation(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), }) } -func TestAccAzureRMSubnet_enforcePrivateLinkEndpointNetworkPolicies(t *testing.T) { +func TestAccSubnet_enforcePrivateLinkEndpointNetworkPolicies(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_subnet", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMSubnetDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMSubnet_enforcePrivateLinkEndpointNetworkPolicies(data, true), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMSubnet_enforcePrivateLinkEndpointNetworkPolicies(data, false), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMSubnet_enforcePrivateLinkEndpointNetworkPolicies(data, true), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := SubnetResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.enforcePrivateLinkEndpointNetworkPolicies(data, true), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), + { + Config: r.enforcePrivateLinkEndpointNetworkPolicies(data, false), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.enforcePrivateLinkEndpointNetworkPolicies(data, true), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), }) } -func TestAccAzureRMSubnet_enforcePrivateLinkServiceNetworkPolicies(t *testing.T) { +func TestAccSubnet_enforcePrivateLinkServiceNetworkPolicies(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_subnet", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMSubnetDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMSubnet_enforcePrivateLinkServiceNetworkPolicies(data, true), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMSubnet_enforcePrivateLinkServiceNetworkPolicies(data, false), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMSubnet_enforcePrivateLinkServiceNetworkPolicies(data, true), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := SubnetResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.enforcePrivateLinkServiceNetworkPolicies(data, true), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.enforcePrivateLinkServiceNetworkPolicies(data, false), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), + { + Config: r.enforcePrivateLinkServiceNetworkPolicies(data, true), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), }) } -func TestAccAzureRMSubnet_serviceEndpoints(t *testing.T) { +func TestAccSubnet_serviceEndpoints(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_subnet", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMSubnetDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMSubnet_serviceEndpoints(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMSubnet_serviceEndpointsUpdated(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - // remove them - Config: testAccAzureRMSubnet_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMSubnet_serviceEndpoints(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := SubnetResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.serviceEndpoints(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.serviceEndpointsUpdated(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + // remove them + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), + { + Config: r.serviceEndpoints(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), }) } -func TestAccAzureRMSubnet_serviceEndpointPolicy(t *testing.T) { +func TestAccSubnet_serviceEndpointPolicy(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_subnet", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMSubnetDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMSubnet_serviceEndpointPolicyBasic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMSubnet_serviceEndpointPolicyUpdate(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMSubnet_serviceEndpointPolicyBasic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetExists(data.ResourceName), - ), - }, + r := SubnetResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.serviceEndpointPolicyBasic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.serviceEndpointPolicyUpdate(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.serviceEndpointPolicyBasic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, }) } -func TestAccAzureRMSubnet_updateAddressPrefix(t *testing.T) { +func TestAccSubnet_updateAddressPrefix(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_subnet", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMSubnetDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMSubnet_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMSubnet_updatedAddressPrefix(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := SubnetResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.updatedAddressPrefix(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func testCheckAzureRMSubnetExists(resourceName string) resource.TestCheckFunc { - return func(s *terraform.State) error { - client := acceptance.AzureProvider.Meta().(*clients.Client).Network.SubnetsClient - ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext - - // Ensure we have enough information in state to look up in API - rs, ok := s.RootModule().Resources[resourceName] - if !ok { - return fmt.Errorf("Not found: %s", resourceName) - } - - log.Printf("[INFO] Checking Subnet addition.") - - name := rs.Primary.Attributes["name"] - vnetName := rs.Primary.Attributes["virtual_network_name"] - resourceGroup, hasResourceGroup := rs.Primary.Attributes["resource_group_name"] - if !hasResourceGroup { - return fmt.Errorf("Bad: no resource group found in state for subnet: %s", name) - } - - resp, err := client.Get(ctx, resourceGroup, vnetName, name, "") - if err != nil { - if utils.ResponseWasNotFound(resp.Response) { - return fmt.Errorf("Bad: Subnet %q (resource group: %q) does not exist", name, resourceGroup) - } - - return fmt.Errorf("Bad: Get on subnetClient: %+v", err) - } +func (t SubnetResource) Exists(ctx context.Context, clients *clients.Client, state *terraform.InstanceState) (*bool, error) { + id, err := azure.ParseAzureResourceID(state.ID) + if err != nil { + return nil, err + } + resourceGroup := id.ResourceGroup + networkName := id.Path["virtualNetworks"] + name := id.Path["subnets"] - return nil + resp, err := clients.Network.SubnetsClient.Get(ctx, resourceGroup, networkName, name, "") + if err != nil { + return nil, fmt.Errorf("reading Subnet (%s): %+v", id, err) } + + return utils.Bool(resp.ID != nil), nil } -func testCheckAzureRMSubnetDisappears(resourceName string) resource.TestCheckFunc { +func testCheckSubnetDisappears(resourceName string) resource.TestCheckFunc { return func(s *terraform.State) error { client := acceptance.AzureProvider.Meta().(*clients.Client).Network.SubnetsClient ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext @@ -364,33 +313,7 @@ func testCheckAzureRMSubnetDisappears(resourceName string) resource.TestCheckFun } } -func testCheckAzureRMSubnetDestroy(s *terraform.State) error { - client := acceptance.AzureProvider.Meta().(*clients.Client).Network.SubnetsClient - ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext - - for _, rs := range s.RootModule().Resources { - if rs.Type != "azurerm_subnet" { - continue - } - - name := rs.Primary.Attributes["name"] - vnetName := rs.Primary.Attributes["virtual_network_name"] - resourceGroup := rs.Primary.Attributes["resource_group_name"] - - resp, err := client.Get(ctx, resourceGroup, vnetName, name, "") - if err != nil { - if !utils.ResponseWasNotFound(resp.Response) { - return fmt.Errorf("Subnet still exists:\n%#v", resp.SubnetPropertiesFormat) - } - return nil - } - } - - return nil -} - -func testAccAzureRMSubnet_basic(data acceptance.TestData) string { - template := testAccAzureRMSubnet_template(data) +func (r SubnetResource) basic(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -400,11 +323,10 @@ resource "azurerm_subnet" "test" { virtual_network_name = azurerm_virtual_network.test.name address_prefix = "10.0.2.0/24" } -`, template) +`, r.template(data)) } -func testAccAzureRMSubnet_delegation(data acceptance.TestData) string { - template := testAccAzureRMSubnet_template(data) +func (r SubnetResource) delegation(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -425,11 +347,10 @@ resource "azurerm_subnet" "test" { } } } -`, template) +`, r.template(data)) } -func testAccAzureRMSubnet_delegationUpdated(data acceptance.TestData) string { - template := testAccAzureRMSubnet_template(data) +func (r SubnetResource) delegationUpdated(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -452,11 +373,10 @@ resource "azurerm_subnet" "test" { } } } -`, template) +`, r.template(data)) } -func testAccAzureRMSubnet_enforcePrivateLinkEndpointNetworkPolicies(data acceptance.TestData, enabled bool) string { - template := testAccAzureRMSubnet_template(data) +func (r SubnetResource) enforcePrivateLinkEndpointNetworkPolicies(data acceptance.TestData, enabled bool) string { return fmt.Sprintf(` %s @@ -468,11 +388,10 @@ resource "azurerm_subnet" "test" { enforce_private_link_endpoint_network_policies = %t } -`, template, enabled) +`, r.template(data), enabled) } -func testAccAzureRMSubnet_enforcePrivateLinkServiceNetworkPolicies(data acceptance.TestData, enabled bool) string { - template := testAccAzureRMSubnet_template(data) +func (r SubnetResource) enforcePrivateLinkServiceNetworkPolicies(data acceptance.TestData, enabled bool) string { return fmt.Sprintf(` %s @@ -484,10 +403,10 @@ resource "azurerm_subnet" "test" { enforce_private_link_service_network_policies = %t } -`, template, enabled) +`, r.template(data), enabled) } -func testAccAzureRMSubnet_basic_addressPrefixes(data acceptance.TestData) string { +func (SubnetResource) basic_addressPrefixes(data acceptance.TestData) string { return fmt.Sprintf(` resource "azurerm_resource_group" "test" { name = "acctestRG-n-%d" @@ -508,8 +427,7 @@ resource "azurerm_subnet" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.RandomInteger) } -func testAccAzureRMSubnet_requiresImport(data acceptance.TestData) string { - template := testAccAzureRMSubnet_basic(data) +func (r SubnetResource) requiresImport(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -519,11 +437,10 @@ resource "azurerm_subnet" "import" { virtual_network_name = azurerm_subnet.test.virtual_network_name address_prefix = azurerm_subnet.test.address_prefix } -`, template) +`, r.basic(data)) } -func testAccAzureRMSubnet_serviceEndpoints(data acceptance.TestData) string { - template := testAccAzureRMSubnet_template(data) +func (r SubnetResource) serviceEndpoints(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -534,11 +451,10 @@ resource "azurerm_subnet" "test" { address_prefix = "10.0.2.0/24" service_endpoints = ["Microsoft.Sql"] } -`, template) +`, r.template(data)) } -func testAccAzureRMSubnet_serviceEndpointsUpdated(data acceptance.TestData) string { - template := testAccAzureRMSubnet_template(data) +func (r SubnetResource) serviceEndpointsUpdated(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -549,11 +465,10 @@ resource "azurerm_subnet" "test" { address_prefix = "10.0.2.0/24" service_endpoints = ["Microsoft.Sql", "Microsoft.Storage"] } -`, template) +`, r.template(data)) } -func testAccAzureRMSubnet_serviceEndpointPolicyBasic(data acceptance.TestData) string { - template := testAccAzureRMSubnet_template(data) +func (r SubnetResource) serviceEndpointPolicyBasic(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -569,11 +484,10 @@ resource "azurerm_subnet" "test" { virtual_network_name = azurerm_virtual_network.test.name address_prefix = "10.0.2.0/24" } -`, template, data.RandomInteger) +`, r.template(data), data.RandomInteger) } -func testAccAzureRMSubnet_serviceEndpointPolicyUpdate(data acceptance.TestData) string { - template := testAccAzureRMSubnet_template(data) +func (r SubnetResource) serviceEndpointPolicyUpdate(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -591,11 +505,10 @@ resource "azurerm_subnet" "test" { service_endpoints = ["Microsoft.Sql"] service_endpoint_policy_ids = [azurerm_subnet_service_endpoint_storage_policy.test.id] } -`, template, data.RandomInteger) +`, r.template(data), data.RandomInteger) } -func testAccAzureRMSubnet_updatedAddressPrefix(data acceptance.TestData) string { - template := testAccAzureRMSubnet_template(data) +func (r SubnetResource) updatedAddressPrefix(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -605,10 +518,10 @@ resource "azurerm_subnet" "test" { virtual_network_name = azurerm_virtual_network.test.name address_prefix = "10.0.3.0/24" } -`, template) +`, r.template(data)) } -func testAccAzureRMSubnet_template(data acceptance.TestData) string { +func (SubnetResource) template(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} diff --git a/azurerm/internal/services/network/tests/subnet_route_table_association_resource_test.go b/azurerm/internal/services/network/tests/subnet_route_table_association_resource_test.go index 0fcd36dc143d..e987387b707c 100644 --- a/azurerm/internal/services/network/tests/subnet_route_table_association_resource_test.go +++ b/azurerm/internal/services/network/tests/subnet_route_table_association_resource_test.go @@ -1,6 +1,7 @@ package tests import ( + "context" "fmt" "testing" @@ -8,146 +9,113 @@ import ( "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/utils" ) -func TestAccAzureRMSubnetRouteTableAssociation_basic(t *testing.T) { +type SubnetRouteTableAssociationResource struct { +} + +func TestAccSubnetRouteTableAssociation_basic(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_subnet_route_table_association", "test") + r := SubnetRouteTableAssociationResource{} - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, + data.ResourceTest(t, r, []resource.TestStep{ // intentional since this is a Virtual Resource - CheckDestroy: testCheckAzureRMSubnetDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMSubnetRouteTableAssociation_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetRouteTableAssociationExists(data.ResourceName), - ), - }, - data.ImportStep(), + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMSubnetRouteTableAssociation_requiresImport(t *testing.T) { +func TestAccSubnetRouteTableAssociation_requiresImport(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_subnet_route_table_association", "test") + r := SubnetRouteTableAssociationResource{} - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, + data.ResourceTest(t, r, []resource.TestStep{ // intentional since this is a Virtual Resource - CheckDestroy: testCheckAzureRMSubnetDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMSubnetRouteTableAssociation_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetRouteTableAssociationExists(data.ResourceName), - ), - }, - { - Config: testAccAzureRMSubnetRouteTableAssociation_requiresImport(data), - ExpectError: acceptance.RequiresImportError("azurerm_subnet_route_table_association"), - }, + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + { + Config: r.requiresImport(data), + ExpectError: acceptance.RequiresImportError("azurerm_subnet_route_table_association"), }, }) } -func TestAccAzureRMSubnetRouteTableAssociation_updateSubnet(t *testing.T) { +func TestAccSubnetRouteTableAssociation_updateSubnet(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_subnet_route_table_association", "test") + r := SubnetRouteTableAssociationResource{} - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, + data.ResourceTest(t, r, []resource.TestStep{ // intentional since this is a Virtual Resource - CheckDestroy: testCheckAzureRMSubnetDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMSubnetRouteTableAssociation_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetRouteTableAssociationExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMSubnetRouteTableAssociation_updateSubnet(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetRouteTableAssociationExists(data.ResourceName), - ), - }, - data.ImportStep(), + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), + { + Config: r.updateSubnet(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), }) } -func TestAccAzureRMSubnetRouteTableAssociation_deleted(t *testing.T) { +func TestAccSubnetRouteTableAssociation_deleted(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_subnet_route_table_association", "test") + r := SubnetRouteTableAssociationResource{} - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, + data.ResourceTest(t, r, []resource.TestStep{ // intentional since this is a Virtual Resource - CheckDestroy: testCheckAzureRMSubnetDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMSubnetRouteTableAssociation_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetRouteTableAssociationExists(data.ResourceName), - testCheckAzureRMSubnetRouteTableAssociationDisappears(data.ResourceName), - testCheckAzureRMSubnetHasNoRouteTable(data.ResourceName), - ), - ExpectNonEmptyPlan: true, - }, + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + testCheckSubnetRouteTableAssociationDisappears(data.ResourceName), + testCheckSubnetHasNoRouteTable(data.ResourceName), + ), + ExpectNonEmptyPlan: true, }, }) } -func testCheckAzureRMSubnetRouteTableAssociationExists(resourceName string) resource.TestCheckFunc { - return func(s *terraform.State) error { - client := acceptance.AzureProvider.Meta().(*clients.Client).Network.SubnetsClient - ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext - - // Ensure we have enough information in state to look up in API - rs, ok := s.RootModule().Resources[resourceName] - if !ok { - return fmt.Errorf("Not found: %s", resourceName) - } - - subnetId := rs.Primary.Attributes["subnet_id"] - parsedId, err := azure.ParseAzureResourceID(subnetId) - if err != nil { - return err - } - - resourceGroupName := parsedId.ResourceGroup - virtualNetworkName := parsedId.Path["virtualNetworks"] - subnetName := parsedId.Path["subnets"] - - resp, err := client.Get(ctx, resourceGroupName, virtualNetworkName, subnetName, "") - if err != nil { - if utils.ResponseWasNotFound(resp.Response) { - return fmt.Errorf("Bad: Subnet %q (Virtual Network %q / Resource Group: %q) does not exist", subnetName, virtualNetworkName, resourceGroupName) - } - - return fmt.Errorf("Bad: Get on subnetClient: %+v", err) - } - - props := resp.SubnetPropertiesFormat - if props == nil { - return fmt.Errorf("Properties was nil for Subnet %q (Virtual Network %q / Resource Group: %q)", subnetName, virtualNetworkName, resourceGroupName) - } +func (t SubnetRouteTableAssociationResource) Exists(ctx context.Context, clients *clients.Client, state *terraform.InstanceState) (*bool, error) { + id, err := azure.ParseAzureResourceID(state.ID) + if err != nil { + return nil, err + } + resourceGroup := id.ResourceGroup + virtualNetworkName := id.Path["virtualNetworks"] + subnetName := id.Path["subnets"] - if props.RouteTable == nil || props.RouteTable.ID == nil { - return fmt.Errorf("No Route Table association exists for Subnet %q (Virtual Network %q / Resource Group: %q)", subnetName, virtualNetworkName, resourceGroupName) - } + resp, err := clients.Network.SubnetsClient.Get(ctx, resourceGroup, virtualNetworkName, subnetName, "") + if err != nil { + return nil, fmt.Errorf("reading Subnet Route Table Association (%s): %+v", id, err) + } - return nil + props := resp.SubnetPropertiesFormat + if props == nil || props.RouteTable == nil { + return nil, fmt.Errorf("properties was nil for Subnet %q (Virtual Network %q / Resource Group: %q)", subnetName, virtualNetworkName, resourceGroup) } + + return utils.Bool(props.RouteTable.ID != nil), nil } -func testCheckAzureRMSubnetRouteTableAssociationDisappears(resourceName string) resource.TestCheckFunc { +func testCheckSubnetRouteTableAssociationDisappears(resourceName string) resource.TestCheckFunc { return func(s *terraform.State) error { client := acceptance.AzureProvider.Meta().(*clients.Client).Network.SubnetsClient ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext @@ -189,7 +157,7 @@ func testCheckAzureRMSubnetRouteTableAssociationDisappears(resourceName string) } } -func testCheckAzureRMSubnetHasNoRouteTable(resourceName string) resource.TestCheckFunc { +func testCheckSubnetHasNoRouteTable(resourceName string) resource.TestCheckFunc { return func(s *terraform.State) error { client := acceptance.AzureProvider.Meta().(*clients.Client).Network.SubnetsClient ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext @@ -232,8 +200,7 @@ func testCheckAzureRMSubnetHasNoRouteTable(resourceName string) resource.TestChe } } -func testAccAzureRMSubnetRouteTableAssociation_basic(data acceptance.TestData) string { - template := testAccAzureRMSubnetRouteTableAssociation_template(data) +func (r SubnetRouteTableAssociationResource) basic(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -248,11 +215,10 @@ resource "azurerm_subnet_route_table_association" "test" { subnet_id = azurerm_subnet.test.id route_table_id = azurerm_route_table.test.id } -`, template) +`, r.template(data)) } -func testAccAzureRMSubnetRouteTableAssociation_requiresImport(data acceptance.TestData) string { - template := testAccAzureRMSubnetRouteTableAssociation_basic(data) +func (r SubnetRouteTableAssociationResource) requiresImport(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -260,11 +226,10 @@ resource "azurerm_subnet_route_table_association" "import" { subnet_id = azurerm_subnet_route_table_association.test.subnet_id route_table_id = azurerm_subnet_route_table_association.test.route_table_id } -`, template) +`, r.basic(data)) } -func testAccAzureRMSubnetRouteTableAssociation_updateSubnet(data acceptance.TestData) string { - template := testAccAzureRMSubnetRouteTableAssociation_template(data) +func (r SubnetRouteTableAssociationResource) updateSubnet(data acceptance.TestData) string { return fmt.Sprintf(` %s resource "azurerm_subnet" "test" { @@ -280,10 +245,10 @@ resource "azurerm_subnet_route_table_association" "test" { subnet_id = azurerm_subnet.test.id route_table_id = azurerm_route_table.test.id } -`, template) +`, r.template(data)) } -func testAccAzureRMSubnetRouteTableAssociation_template(data acceptance.TestData) string { +func (SubnetRouteTableAssociationResource) template(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} diff --git a/azurerm/internal/services/network/tests/subnet_service_endpoint_policy_storage_resource_test.go b/azurerm/internal/services/network/tests/subnet_service_endpoint_policy_storage_resource_test.go index d696c0c56531..840f8b9973bd 100644 --- a/azurerm/internal/services/network/tests/subnet_service_endpoint_policy_storage_resource_test.go +++ b/azurerm/internal/services/network/tests/subnet_service_endpoint_policy_storage_resource_test.go @@ -1,162 +1,111 @@ package tests import ( + "context" "fmt" "testing" "github.com/hashicorp/terraform-plugin-sdk/helper/resource" "github.com/hashicorp/terraform-plugin-sdk/terraform" "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/network/parse" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils" ) -func TestAccAzureRMSubnetServiceEndpointStoragePolicy_basic(t *testing.T) { - data := acceptance.BuildTestData(t, "azurerm_subnet_service_endpoint_storage_policy", "test") +type SubnetServiceEndpointPolicyStorageResource struct { +} - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMSubnetServiceEndpointStoragePolicyDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMSubnetServiceEndpointStoragePolicy_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetServiceEndpointStoragePolicyExists(data.ResourceName), - ), - }, - data.ImportStep(), +func TestAccSubnetServiceEndpointStoragePolicy_basic(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_subnet_service_endpoint_storage_policy", "test") + r := SubnetServiceEndpointPolicyStorageResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMSubnetServiceEndpointStoragePolicy_complete(t *testing.T) { +func TestAccSubnetServiceEndpointStoragePolicy_complete(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_subnet_service_endpoint_storage_policy", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMSubnetServiceEndpointStoragePolicyDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMSubnetServiceEndpointStoragePolicy_complete(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetServiceEndpointStoragePolicyExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := SubnetServiceEndpointPolicyStorageResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.complete(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMSubnetServiceEndpointStoragePolicy_update(t *testing.T) { +func TestAccSubnetServiceEndpointStoragePolicy_update(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_subnet_service_endpoint_storage_policy", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMSubnetServiceEndpointStoragePolicyDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMSubnetServiceEndpointStoragePolicy_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetServiceEndpointStoragePolicyExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMSubnetServiceEndpointStoragePolicy_complete(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetServiceEndpointStoragePolicyExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMSubnetServiceEndpointStoragePolicy_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetServiceEndpointStoragePolicyExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := SubnetServiceEndpointPolicyStorageResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.complete(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMSubnetServiceEndpointStoragePolicy_requiresImport(t *testing.T) { +func TestAccSubnetServiceEndpointStoragePolicy_requiresImport(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_subnet_service_endpoint_storage_policy", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMSubnetServiceEndpointStoragePolicyDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMSubnetServiceEndpointStoragePolicy_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMSubnetServiceEndpointStoragePolicyExists(data.ResourceName), - ), - }, - data.RequiresImportErrorStep(testAccAzureRMSubnetServiceEndpointStoragePolicy_requiresImport), + r := SubnetServiceEndpointPolicyStorageResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.RequiresImportErrorStep(r.requiresImport), }) } -func testCheckAzureRMSubnetServiceEndpointStoragePolicyExists(resourceName string) resource.TestCheckFunc { - return func(s *terraform.State) error { - client := acceptance.AzureProvider.Meta().(*clients.Client).Network.ServiceEndpointPoliciesClient - ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext - - rs, ok := s.RootModule().Resources[resourceName] - if !ok { - return fmt.Errorf("Subnet Service Endpoint Storage Policy not found: %s", resourceName) - } - - id, err := parse.SubnetServiceEndpointStoragePolicyID(rs.Primary.ID) - if err != nil { - return err - } - - if resp, err := client.Get(ctx, id.ResourceGroup, id.ServiceEndpointPolicyName, ""); err != nil { - if utils.ResponseWasNotFound(resp.Response) { - return fmt.Errorf("Subnet Service Endpoint Storage Policy %q (Resource Group %q) does not exist", id.ServiceEndpointPolicyName, id.ResourceGroup) - } - return fmt.Errorf("Getting on Subnet Service Endpoint Storage Policy: %+v", err) - } - - return nil +func (t SubnetServiceEndpointPolicyStorageResource) Exists(ctx context.Context, clients *clients.Client, state *terraform.InstanceState) (*bool, error) { + id, err := parse.SubnetServiceEndpointStoragePolicyID(state.ID) + if err != nil { + return nil, err } -} -func testCheckAzureRMSubnetServiceEndpointStoragePolicyDestroy(s *terraform.State) error { - client := acceptance.AzureProvider.Meta().(*clients.Client).Network.ServiceEndpointPoliciesClient - ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext - - for _, rs := range s.RootModule().Resources { - if rs.Type != "azurerm_subnet_service_endpoint_storage_policy" { - continue - } - - id, err := parse.SubnetServiceEndpointStoragePolicyID(rs.Primary.ID) - if err != nil { - return err - } - - resp, err := client.Get(ctx, id.ResourceGroup, id.ServiceEndpointPolicyName, "") - if err == nil { - return fmt.Errorf("Subnet Service Endpoint Storage Policy still exists") - } - if !utils.ResponseWasNotFound(resp.Response) { - return fmt.Errorf("Getting on Subnet Service Endpoint Storage Policy: %+v", err) - } - return nil + resp, err := clients.Network.ServiceEndpointPoliciesClient.Get(ctx, id.ResourceGroup, id.ServiceEndpointPolicyName, "") + if err != nil { + return nil, fmt.Errorf("reading Service Endpoint Policy Storage (%s): %+v", id, err) } - return nil + return utils.Bool(resp.ID != nil), nil } -func testAccAzureRMSubnetServiceEndpointStoragePolicy_basic(data acceptance.TestData) string { - template := testAccAzureRMSubnetServiceEndpointStoragePolicy_template(data) +func (r SubnetServiceEndpointPolicyStorageResource) basic(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -165,11 +114,10 @@ resource "azurerm_subnet_service_endpoint_storage_policy" "test" { resource_group_name = azurerm_resource_group.test.name location = azurerm_resource_group.test.location } -`, template, data.RandomInteger) +`, r.template(data), data.RandomInteger) } -func testAccAzureRMSubnetServiceEndpointStoragePolicy_complete(data acceptance.TestData) string { - template := testAccAzureRMSubnetServiceEndpointStoragePolicy_template(data) +func (r SubnetServiceEndpointPolicyStorageResource) complete(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -199,11 +147,10 @@ resource "azurerm_subnet_service_endpoint_storage_policy" "test" { cost_center = "MSFT" } } -`, template, data.RandomString, data.RandomInteger, data.Client().SubscriptionID) +`, r.template(data), data.RandomString, data.RandomInteger, data.Client().SubscriptionID) } -func testAccAzureRMSubnetServiceEndpointStoragePolicy_requiresImport(data acceptance.TestData) string { - template := testAccAzureRMSubnetServiceEndpointStoragePolicy_basic(data) +func (r SubnetServiceEndpointPolicyStorageResource) requiresImport(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -212,10 +159,10 @@ resource "azurerm_subnet_service_endpoint_storage_policy" "import" { resource_group_name = azurerm_subnet_service_endpoint_storage_policy.test.resource_group_name location = azurerm_subnet_service_endpoint_storage_policy.test.location } -`, template) +`, r.basic(data)) } -func testAccAzureRMSubnetServiceEndpointStoragePolicy_template(data acceptance.TestData) string { +func (SubnetServiceEndpointPolicyStorageResource) template(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} diff --git a/azurerm/internal/services/network/tests/virtual_hub_bgp_connection_resource_test.go b/azurerm/internal/services/network/tests/virtual_hub_bgp_connection_resource_test.go index ef980572bc46..b3c3c422a1da 100644 --- a/azurerm/internal/services/network/tests/virtual_hub_bgp_connection_resource_test.go +++ b/azurerm/internal/services/network/tests/virtual_hub_bgp_connection_resource_test.go @@ -1,115 +1,73 @@ package tests import ( + "context" "fmt" "testing" "github.com/hashicorp/terraform-plugin-sdk/helper/resource" "github.com/hashicorp/terraform-plugin-sdk/terraform" "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/network/parse" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils" ) -func TestAccAzureRMVirtualHubBgpConnection_basic(t *testing.T) { +type VirtualHubBGPConnectionResource struct { +} + +func TestAccVirtualHubBgpConnection_basic(t *testing.T) { if true { t.Skip("Skipping due to API issue preventing deletion") return } data := acceptance.BuildTestData(t, "azurerm_virtual_hub_bgp_connection", "test") - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualHubBgpConnectionDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualHubBgpConnection_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualHubBgpConnectionExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := VirtualHubBGPConnectionResource{} + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMVirtualHubBgpConnection_requiresImport(t *testing.T) { +func TestAccVirtualHubBgpConnection_requiresImport(t *testing.T) { if true { t.Skip("Skipping due to API issue preventing deletion") return } data := acceptance.BuildTestData(t, "azurerm_virtual_hub_bgp_connection", "test") - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualHubBgpConnectionDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualHubBgpConnection_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualHubBgpConnectionExists(data.ResourceName), - ), - }, - data.RequiresImportErrorStep(testAccAzureRMVirtualHubBgpConnection_requiresImport), + r := VirtualHubBGPConnectionResource{} + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.RequiresImportErrorStep(r.requiresImport), }) } -func testCheckAzureRMVirtualHubBgpConnectionExists(resourceName string) resource.TestCheckFunc { - return func(s *terraform.State) error { - client := acceptance.AzureProvider.Meta().(*clients.Client).Network.VirtualHubBgpConnectionClient - ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext - - rs, ok := s.RootModule().Resources[resourceName] - if !ok { - return fmt.Errorf("virtualHubBgpConnection not found: %s", resourceName) - } - - id, err := parse.BgpConnectionID(rs.Primary.ID) - if err != nil { - return err - } - - if resp, err := client.Get(ctx, id.ResourceGroup, id.VirtualHubName, id.Name); err != nil { - if utils.ResponseWasNotFound(resp.Response) { - return fmt.Errorf("bad: Network VirtualHubBgpConnection %q does not exist", id.Name) - } - - return fmt.Errorf("bad: Get on Network.VirtualHubBgpConnectionClient: %+v", err) - } - - return nil +func (t VirtualHubBGPConnectionResource) Exists(ctx context.Context, clients *clients.Client, state *terraform.InstanceState) (*bool, error) { + id, err := parse.BgpConnectionID(state.ID) + if err != nil { + return nil, err } -} - -func testCheckAzureRMVirtualHubBgpConnectionDestroy(s *terraform.State) error { - client := acceptance.AzureProvider.Meta().(*clients.Client).Network.VirtualHubBgpConnectionClient - ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext - - for _, rs := range s.RootModule().Resources { - if rs.Type != "azurerm_virtual_hub_bgp_connection" { - continue - } - - id, err := parse.BgpConnectionID(rs.Primary.ID) - if err != nil { - return err - } - - if resp, err := client.Get(ctx, id.ResourceGroup, id.VirtualHubName, id.Name); err != nil { - if !utils.ResponseWasNotFound(resp.Response) { - return fmt.Errorf("bad: Get on Network.VirtualHubBgpConnectionClient: %+v", err) - } - } - return nil + resp, err := clients.Network.VirtualHubBgpConnectionClient.Get(ctx, id.ResourceGroup, id.VirtualHubName, id.Name) + if err != nil { + return nil, fmt.Errorf("reading Virtual Hub BGP Connectionn (%s): %+v", id, err) } - return nil + return utils.Bool(resp.ID != nil), nil } -func testAccAzureRMVirtualHubBgpConnection_template(data acceptance.TestData) string { +func (VirtualHubBGPConnectionResource) template(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} @@ -159,8 +117,7 @@ resource "azurerm_virtual_hub_ip" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.RandomInteger, data.RandomInteger, data.RandomInteger, data.RandomInteger) } -func testAccAzureRMVirtualHubBgpConnection_basic(data acceptance.TestData) string { - template := testAccAzureRMVirtualHubBgpConnection_template(data) +func (r VirtualHubBGPConnectionResource) basic(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -172,11 +129,10 @@ resource "azurerm_virtual_hub_bgp_connection" "test" { depends_on = [azurerm_virtual_hub_ip.test] } -`, template, data.RandomInteger) +`, r.template(data), data.RandomInteger) } -func testAccAzureRMVirtualHubBgpConnection_requiresImport(data acceptance.TestData) string { - config := testAccAzureRMVirtualHubBgpConnection_basic(data) +func (r VirtualHubBGPConnectionResource) requiresImport(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -186,5 +142,5 @@ resource "azurerm_virtual_hub_bgp_connection" "import" { peer_asn = azurerm_virtual_hub_bgp_connection.test.peer_asn peer_ip = azurerm_virtual_hub_bgp_connection.test.peer_ip } -`, config) +`, r.basic(data)) } diff --git a/azurerm/internal/services/network/tests/virtual_hub_connection_resource_test.go b/azurerm/internal/services/network/tests/virtual_hub_connection_resource_test.go index 27bb0ef7c2cd..f7d6e620a2ba 100644 --- a/azurerm/internal/services/network/tests/virtual_hub_connection_resource_test.go +++ b/azurerm/internal/services/network/tests/virtual_hub_connection_resource_test.go @@ -8,132 +8,117 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/helper/resource" "github.com/hashicorp/terraform-plugin-sdk/terraform" "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/network/parse" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils" ) -func TestAccAzureRMVirtualHubConnection_basic(t *testing.T) { - data := acceptance.BuildTestData(t, "azurerm_virtual_hub_connection", "test") +type VirtualHubConnectionResource struct { +} - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualHubConnectionDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualHubConnection_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualHubConnectionExists(data.ResourceName), - ), - }, - data.ImportStep(), +func TestAccVirtualHubConnection_basic(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_virtual_hub_connection", "test") + r := VirtualHubConnectionResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMVirtualHubConnection_requiresImport(t *testing.T) { +func TestAccVirtualHubConnection_requiresImport(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_hub_connection", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualHubConnectionDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualHubConnection_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualHubConnectionExists(data.ResourceName), - ), - }, - { - Config: testAccAzureRMVirtualHubConnection_requiresImport(data), - ExpectError: acceptance.RequiresImportError("azurerm_virtual_hub_connection"), - }, + r := VirtualHubConnectionResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + { + Config: r.requiresImport(data), + ExpectError: acceptance.RequiresImportError("azurerm_virtual_hub_connection"), }, }) } -func TestAccAzureRMVirtualHubConnection_complete(t *testing.T) { +func TestAccVirtualHubConnection_complete(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_hub_connection", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualHubConnectionDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualHubConnection_complete(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualHubConnectionExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := VirtualHubConnectionResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.complete(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMVirtualHubConnection_update(t *testing.T) { +func TestAccVirtualHubConnection_update(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_hub_connection", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualHubConnectionDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualHubConnection_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualHubConnectionExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMVirtualHubConnection_complete(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualHubConnectionExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMVirtualHubConnection_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualHubConnectionExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := VirtualHubConnectionResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.complete(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMVirtualHubConnection_enableInternetSecurity(t *testing.T) { +func TestAccVirtualHubConnection_enableInternetSecurity(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_hub_connection", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualHubConnectionDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualHubConnection_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualHubConnectionExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMVirtualHubConnection_enableInternetSecurity(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualHubConnectionExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := VirtualHubConnectionResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.enableInternetSecurity(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMVirtualHubConnection_recreateWithSameConnectionName(t *testing.T) { +func TestAccVirtualHubConnection_recreateWithSameConnectionName(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_hub_connection", "test") + r := VirtualHubConnectionResource{} vhubData := data vhubData.ResourceName = "azurerm_virtual_hub.test" @@ -141,159 +126,126 @@ func TestAccAzureRMVirtualHubConnection_recreateWithSameConnectionName(t *testin vhubName := fmt.Sprintf("acctest-VHUB-%d", data.RandomInteger) vhubConnectionName := fmt.Sprintf("acctestbasicvhubconn-%d", data.RandomInteger) - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualHubConnectionDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualHubConnection_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualHubConnectionExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMVirtualHubConnection_template(data), - Check: resource.ComposeTestCheckFunc( - vhubData.CheckWithClient(checkVirtualHubConnectionDoesNotExist(resourceGroupName, vhubName, vhubConnectionName)), - ), - }, - { - Config: testAccAzureRMVirtualHubConnection_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualHubConnectionExists(data.ResourceName), - ), - }, - data.ImportStep(), + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), + { + Config: r.template(data), + Check: resource.ComposeTestCheckFunc( + vhubData.CheckWithClient(checkVirtualHubConnectionDoesNotExist(resourceGroupName, vhubName, vhubConnectionName)), + ), + }, + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), }) } -func TestAccAzureRMVirtualHubConnection_removeRoutingConfiguration(t *testing.T) { +func TestAccVirtualHubConnection_removeRoutingConfiguration(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_hub_connection", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualHubConnectionDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualHubConnection_withRoutingConfiguration(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualHubConnectionExists(data.ResourceName), - ), - }, - { - Config: testAccAzureRMVirtualHubConnection_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualHubConnectionExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := VirtualHubConnectionResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.withRoutingConfiguration(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), }) } -func TestAccAzureRMVirtualHubConnection_removePropagatedRouteTable(t *testing.T) { +func TestAccVirtualHubConnection_removePropagatedRouteTable(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_hub_connection", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualHubConnectionDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualHubConnection_withRoutingConfiguration(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualHubConnectionExists(data.ResourceName), - ), - }, - { - Config: testAccAzureRMVirtualHubConnection_withoutPropagatedRouteTable(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualHubConnectionExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := VirtualHubConnectionResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.withRoutingConfiguration(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + { + Config: r.withoutPropagatedRouteTable(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMVirtualHubConnection_removeVnetStaticRoute(t *testing.T) { +func TestAccVirtualHubConnection_removeVnetStaticRoute(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_hub_connection", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualHubConnectionDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualHubConnection_withRoutingConfiguration(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualHubConnectionExists(data.ResourceName), - ), - }, - { - Config: testAccAzureRMVirtualHubConnection_withoutVnetStaticRoute(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualHubConnectionExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := VirtualHubConnectionResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.withRoutingConfiguration(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + { + Config: r.withoutVnetStaticRoute(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMVirtualHubConnection_updateRoutingConfiguration(t *testing.T) { +func TestAccVirtualHubConnection_updateRoutingConfiguration(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_hub_connection", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualHubConnectionDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualHubConnection_withRoutingConfiguration(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualHubConnectionExists(data.ResourceName), - ), - }, - { - Config: testAccAzureRMVirtualHubConnection_updateRoutingConfiguration(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualHubConnectionExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := VirtualHubConnectionResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.withRoutingConfiguration(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + { + Config: r.updateRoutingConfiguration(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), }) } -func testCheckAzureRMVirtualHubConnectionExists(resourceName string) resource.TestCheckFunc { - return func(s *terraform.State) error { - client := acceptance.AzureProvider.Meta().(*clients.Client).Network.HubVirtualNetworkConnectionClient - ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext - - rs, ok := s.RootModule().Resources[resourceName] - if !ok { - return fmt.Errorf("Virtual Hub Connection not found: %s", resourceName) - } - - id, err := parse.HubVirtualNetworkConnectionID(rs.Primary.ID) - if err != nil { - return err - } - - if resp, err := client.Get(ctx, id.ResourceGroup, id.VirtualHubName, id.Name); err != nil { - if utils.ResponseWasNotFound(resp.Response) { - return fmt.Errorf("Bad: Virtual Hub Connection %q (Resource Group %q) does not exist", id.Name, id.ResourceGroup) - } - return fmt.Errorf("Bad: Get on network.HubVirtualNetworkConnectionClient: %+v", err) - } +func (t VirtualHubConnectionResource) Exists(ctx context.Context, clients *clients.Client, state *terraform.InstanceState) (*bool, error) { + id, err := parse.HubVirtualNetworkConnectionID(state.ID) + if err != nil { + return nil, err + } - return nil + resp, err := clients.Network.HubVirtualNetworkConnectionClient.Get(ctx, id.ResourceGroup, id.VirtualHubName, id.Name) + if err != nil { + return nil, fmt.Errorf("reading Virtual Hub Network Connection (%s): %+v", id, err) } + + return utils.Bool(resp.ID != nil), nil } func checkVirtualHubConnectionDoesNotExist(resourceGroupName, vhubName, vhubConnectionName string) acceptance.ClientCheckFunc { @@ -309,34 +261,7 @@ func checkVirtualHubConnectionDoesNotExist(resourceGroupName, vhubName, vhubConn } } -func testCheckAzureRMVirtualHubConnectionDestroy(s *terraform.State) error { - client := acceptance.AzureProvider.Meta().(*clients.Client).Network.HubVirtualNetworkConnectionClient - ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext - - for _, rs := range s.RootModule().Resources { - if rs.Type != "azurerm_virtual_hub_connection" { - continue - } - - id, err := parse.HubVirtualNetworkConnectionID(rs.Primary.ID) - if err != nil { - return err - } - - if resp, err := client.Get(ctx, id.ResourceGroup, id.VirtualHubName, id.Name); err != nil { - if !utils.ResponseWasNotFound(resp.Response) { - return fmt.Errorf("Bad: Get on network.HubVirtualNetworkConnectionClient: %+v", err) - } - } - - return nil - } - - return nil -} - -func testAccAzureRMVirtualHubConnection_basic(data acceptance.TestData) string { - template := testAccAzureRMVirtualHubConnection_template(data) +func (r VirtualHubConnectionResource) basic(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -345,11 +270,10 @@ resource "azurerm_virtual_hub_connection" "test" { virtual_hub_id = azurerm_virtual_hub.test.id remote_virtual_network_id = azurerm_virtual_network.test.id } -`, template, data.RandomInteger) +`, r.template(data), data.RandomInteger) } -func testAccAzureRMVirtualHubConnection_requiresImport(data acceptance.TestData) string { - template := testAccAzureRMVirtualHubConnection_basic(data) +func (r VirtualHubConnectionResource) requiresImport(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -358,11 +282,10 @@ resource "azurerm_virtual_hub_connection" "import" { virtual_hub_id = azurerm_virtual_hub_connection.test.virtual_hub_id remote_virtual_network_id = azurerm_virtual_hub_connection.test.remote_virtual_network_id } -`, template) +`, r.basic(data)) } -func testAccAzureRMVirtualHubConnection_complete(data acceptance.TestData) string { - template := testAccAzureRMVirtualHubConnection_template(data) +func (r VirtualHubConnectionResource) complete(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -404,11 +327,10 @@ resource "azurerm_virtual_hub_connection" "test2" { remote_virtual_network_id = azurerm_virtual_network.test2.id internet_security_enabled = true } -`, template, data.RandomInteger, data.RandomInteger, data.RandomInteger, data.RandomInteger, data.RandomInteger) +`, r.template(data), data.RandomInteger, data.RandomInteger, data.RandomInteger, data.RandomInteger, data.RandomInteger) } -func testAccAzureRMVirtualHubConnection_enableInternetSecurity(data acceptance.TestData) string { - template := testAccAzureRMVirtualHubConnection_template(data) +func (r VirtualHubConnectionResource) enableInternetSecurity(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -418,10 +340,10 @@ resource "azurerm_virtual_hub_connection" "test" { remote_virtual_network_id = azurerm_virtual_network.test.id internet_security_enabled = true } -`, template, data.RandomInteger) +`, r.template(data), data.RandomInteger) } -func testAccAzureRMVirtualHubConnection_template(data acceptance.TestData) string { +func (VirtualHubConnectionResource) template(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} @@ -473,8 +395,7 @@ resource "azurerm_virtual_hub" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.RandomInteger, data.RandomInteger, data.RandomInteger, data.RandomInteger) } -func testAccAzureRMVirtualHubConnection_withRoutingConfiguration(data acceptance.TestData) string { - template := testAccAzureRMVirtualHubConnection_template(data) +func (r VirtualHubConnectionResource) withRoutingConfiguration(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -501,11 +422,10 @@ resource "azurerm_virtual_hub_connection" "test" { } } } -`, template, data.RandomInteger) +`, r.template(data), data.RandomInteger) } -func testAccAzureRMVirtualHubConnection_withoutPropagatedRouteTable(data acceptance.TestData) string { - template := testAccAzureRMVirtualHubConnection_template(data) +func (r VirtualHubConnectionResource) withoutPropagatedRouteTable(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -522,11 +442,10 @@ resource "azurerm_virtual_hub_connection" "test" { } } } -`, template, data.RandomInteger) +`, r.template(data), data.RandomInteger) } -func testAccAzureRMVirtualHubConnection_withoutVnetStaticRoute(data acceptance.TestData) string { - template := testAccAzureRMVirtualHubConnection_template(data) +func (r VirtualHubConnectionResource) withoutVnetStaticRoute(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -541,11 +460,10 @@ resource "azurerm_virtual_hub_connection" "test" { } } } -`, template, data.RandomInteger) +`, r.template(data), data.RandomInteger) } -func testAccAzureRMVirtualHubConnection_updateRoutingConfiguration(data acceptance.TestData) string { - template := testAccAzureRMVirtualHubConnection_template(data) +func (r VirtualHubConnectionResource) updateRoutingConfiguration(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -566,5 +484,5 @@ resource "azurerm_virtual_hub_connection" "test" { } } } -`, template, data.RandomInteger) +`, r.template(data), data.RandomInteger) } diff --git a/azurerm/internal/services/network/tests/virtual_hub_data_source_test.go b/azurerm/internal/services/network/tests/virtual_hub_data_source_test.go index 571412082d60..6468a5c5cf04 100644 --- a/azurerm/internal/services/network/tests/virtual_hub_data_source_test.go +++ b/azurerm/internal/services/network/tests/virtual_hub_data_source_test.go @@ -6,28 +6,28 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/helper/resource" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/acceptance" + "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/acceptance/check" ) +type VirtualHubDataSource struct { +} + func TestAccDataSourceAzureRMVirtualHub_basic(t *testing.T) { data := acceptance.BuildTestData(t, "data.azurerm_virtual_hub", "test") + r := VirtualHubDataSource{} - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - Steps: []resource.TestStep{ - { - Config: testAccDataSourceVirtualHub_basic(data), - Check: resource.ComposeTestCheckFunc( - resource.TestCheckResourceAttrSet(data.ResourceName, "address_prefix"), - resource.TestCheckResourceAttrSet(data.ResourceName, "virtual_wan_id"), - ), - }, + data.DataSourceTest(t, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).Key("address_prefix").Exists(), + check.That(data.ResourceName).Key("virtual_wan_id").Exists(), + ), }, }) } -func testAccDataSourceVirtualHub_basic(data acceptance.TestData) string { - config := testAccAzureRMVirtualHub_basic(data) +func (VirtualHubDataSource) basic(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -35,5 +35,5 @@ data "azurerm_virtual_hub" "test" { name = azurerm_virtual_hub.test.name resource_group_name = azurerm_virtual_hub.test.resource_group_name } -`, config) +`, VirtualHubResource{}.basic(data)) } diff --git a/azurerm/internal/services/network/tests/virtual_hub_ip_resource_test.go b/azurerm/internal/services/network/tests/virtual_hub_ip_resource_test.go index 6ebf5fb63115..a3efaff49bb6 100644 --- a/azurerm/internal/services/network/tests/virtual_hub_ip_resource_test.go +++ b/azurerm/internal/services/network/tests/virtual_hub_ip_resource_test.go @@ -1,173 +1,123 @@ package tests import ( + "context" "fmt" "testing" "github.com/hashicorp/terraform-plugin-sdk/helper/resource" "github.com/hashicorp/terraform-plugin-sdk/terraform" "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/network/parse" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils" ) -func TestAccAzureRMVirtualHubIP_basic(t *testing.T) { +type VirtualHubIPResource struct { +} + +func TestAccVirtualHubIP_basic(t *testing.T) { if true { t.Skip("Skipping due to API issue preventing deletion") return } data := acceptance.BuildTestData(t, "azurerm_virtual_hub_ip", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualHubIPDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualHubIP_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualHubIPExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := VirtualHubIPResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMVirtualHubIP_requiresImport(t *testing.T) { +func TestAccVirtualHubIP_requiresImport(t *testing.T) { if true { t.Skip("Skipping due to API issue preventing deletion") return } data := acceptance.BuildTestData(t, "azurerm_virtual_hub_ip", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualHubIPDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualHubIP_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualHubIPExists(data.ResourceName), - ), - }, - { - Config: testAccAzureRMVirtualHubIP_requiresImport(data), - ExpectError: acceptance.RequiresImportError("azurerm_virtual_hub_ip"), - }, + r := VirtualHubIPResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + { + Config: r.requiresImport(data), + ExpectError: acceptance.RequiresImportError("azurerm_virtual_hub_ip"), }, }) } -func TestAccAzureRMVirtualHubIP_complete(t *testing.T) { +func TestAccVirtualHubIP_complete(t *testing.T) { if true { t.Skip("Skipping due to API issue preventing deletion") return } data := acceptance.BuildTestData(t, "azurerm_virtual_hub_ip", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualHubIPDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualHubIP_complete(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualHubIPExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := VirtualHubIPResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.complete(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMVirtualHubIP_update(t *testing.T) { +func TestAccVirtualHubIP_update(t *testing.T) { if true { t.Skip("Skipping due to API issue preventing deletion") return } data := acceptance.BuildTestData(t, "azurerm_virtual_hub_ip", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualHubIPDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualHubIP_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualHubIPExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMVirtualHubIP_complete(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualHubIPExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := VirtualHubIPResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), + { + Config: r.complete(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), }) } -func testCheckAzureRMVirtualHubIPExists(resourceName string) resource.TestCheckFunc { - return func(s *terraform.State) error { - client := acceptance.AzureProvider.Meta().(*clients.Client).Network.VirtualHubIPClient - ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext - - rs, ok := s.RootModule().Resources[resourceName] - if !ok { - return fmt.Errorf("Virtual Hub IP not found: %s", resourceName) - } - - id, err := parse.VirtualHubIpConfigurationID(rs.Primary.ID) - if err != nil { - return err - } - - if resp, err := client.Get(ctx, id.ResourceGroup, id.VirtualHubName, id.IpConfigurationName); err != nil { - if utils.ResponseWasNotFound(resp.Response) { - return fmt.Errorf("Bad: Virtual Hub IP %q (Resource Group %q) does not exist", id.IpConfigurationName, id.ResourceGroup) - } - return fmt.Errorf("Bad: Get on network.VirtualHubIPClient: %+v", err) - } - - return nil +func (t VirtualHubIPResource) Exists(ctx context.Context, clients *clients.Client, state *terraform.InstanceState) (*bool, error) { + id, err := parse.VirtualHubIpConfigurationID(state.ID) + if err != nil { + return nil, err } -} - -func testCheckAzureRMVirtualHubIPDestroy(s *terraform.State) error { - client := acceptance.AzureProvider.Meta().(*clients.Client).Network.VirtualHubIPClient - ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext - - for _, rs := range s.RootModule().Resources { - if rs.Type != "azurerm_virtual_hub_ip" { - continue - } - - id, err := parse.VirtualHubIpConfigurationID(rs.Primary.ID) - if err != nil { - return err - } - - if resp, err := client.Get(ctx, id.ResourceGroup, id.VirtualHubName, id.IpConfigurationName); err != nil { - if !utils.ResponseWasNotFound(resp.Response) { - return fmt.Errorf("Bad: Get on network.VirtualHubIPClient: %+v", err) - } - } - return nil + resp, err := clients.Network.VirtualHubIPClient.Get(ctx, id.ResourceGroup, id.VirtualHubName, id.IpConfigurationName) + if err != nil { + return nil, fmt.Errorf("reading Virtual Hub IP (%s): %+v", id, err) } - return nil + return utils.Bool(resp.ID != nil), nil } -func testAccAzureRMVirtualHubIP_basic(data acceptance.TestData) string { - template := testAccAzureRMVirtualHubIP_template(data) +func (r VirtualHubIPResource) basic(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -176,11 +126,10 @@ resource "azurerm_virtual_hub_ip" "test" { virtual_hub_id = azurerm_virtual_hub.test.id subnet_id = azurerm_subnet.test.id } -`, template, data.RandomInteger) +`, r.template(data), data.RandomInteger) } -func testAccAzureRMVirtualHubIP_requiresImport(data acceptance.TestData) string { - template := testAccAzureRMVirtualHubIP_basic(data) +func (r VirtualHubIPResource) requiresImport(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -189,11 +138,10 @@ resource "azurerm_virtual_hub_ip" "import" { virtual_hub_id = azurerm_virtual_hub_ip.test.virtual_hub_id subnet_id = azurerm_virtual_hub_ip.test.subnet_id } -`, template) +`, r.basic(data)) } -func testAccAzureRMVirtualHubIP_complete(data acceptance.TestData) string { - template := testAccAzureRMVirtualHubIP_template(data) +func (r VirtualHubIPResource) complete(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -205,10 +153,10 @@ resource "azurerm_virtual_hub_ip" "test" { public_ip_address_id = azurerm_public_ip.test.id subnet_id = azurerm_subnet.test.id } -`, template, data.RandomInteger) +`, r.template(data), data.RandomInteger) } -func testAccAzureRMVirtualHubIP_template(data acceptance.TestData) string { +func (VirtualHubIPResource) template(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} diff --git a/azurerm/internal/services/network/tests/virtual_hub_resource_test.go b/azurerm/internal/services/network/tests/virtual_hub_resource_test.go index 5177609dbd44..f23f9842a1e4 100644 --- a/azurerm/internal/services/network/tests/virtual_hub_resource_test.go +++ b/azurerm/internal/services/network/tests/virtual_hub_resource_test.go @@ -1,152 +1,108 @@ package tests import ( + "context" "fmt" "testing" + "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/services/network/parse" + "github.com/hashicorp/terraform-plugin-sdk/helper/resource" "github.com/hashicorp/terraform-plugin-sdk/terraform" "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/utils" ) -func TestAccAzureRMVirtualHub_basic(t *testing.T) { - data := acceptance.BuildTestData(t, "azurerm_virtual_hub", "test") +type VirtualHubResource struct { +} - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualHubDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualHub_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualHubExists(data.ResourceName), - ), - }, - data.ImportStep(), +func TestAccVirtualHub_basic(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_virtual_hub", "test") + r := VirtualHubResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMVirtualHub_requiresImport(t *testing.T) { +func TestAccVirtualHub_requiresImport(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_hub", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualHubDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualHub_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualHubExists(data.ResourceName), - ), - }, - { - Config: testAccAzureRMVirtualHub_requiresImport(data), - ExpectError: acceptance.RequiresImportError("azurerm_virtual_hub"), - }, + r := VirtualHubResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + { + Config: r.requiresImport(data), + ExpectError: acceptance.RequiresImportError("azurerm_virtual_hub"), }, }) } -func TestAccAzureRMVirtualHub_routes(t *testing.T) { +func TestAccVirtualHub_routes(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_hub", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualHubDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualHub_route(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualHubExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMVirtualHub_routeUpdated(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualHubExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := VirtualHubResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.route(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), + { + Config: r.routeUpdated(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), }) } -func TestAccAzureRMVirtualHub_tags(t *testing.T) { +func TestAccVirtualHub_tags(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_hub", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualHubDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualHub_tags(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualHubExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := VirtualHubResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.tags(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func testCheckAzureRMVirtualHubExists(resourceName string) resource.TestCheckFunc { - return func(s *terraform.State) error { - client := acceptance.AzureProvider.Meta().(*clients.Client).Network.VirtualHubClient - ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext - - rs, ok := s.RootModule().Resources[resourceName] - if !ok { - return fmt.Errorf("Virtual Hub not found: %s", resourceName) - } - - name := rs.Primary.Attributes["name"] - resourceGroup := rs.Primary.Attributes["resource_group_name"] - - if resp, err := client.Get(ctx, resourceGroup, name); err != nil { - if utils.ResponseWasNotFound(resp.Response) { - return fmt.Errorf("Bad: Virtual Hub %q (Resource Group %q) does not exist", name, resourceGroup) - } - return fmt.Errorf("Bad: Get on network.VirtualHubClient: %+v", err) - } - - return nil +func (t VirtualHubResource) Exists(ctx context.Context, clients *clients.Client, state *terraform.InstanceState) (*bool, error) { + id, err := parse.VirtualHubID(state.ID) + if err != nil { + return nil, err } -} - -func testCheckAzureRMVirtualHubDestroy(s *terraform.State) error { - client := acceptance.AzureProvider.Meta().(*clients.Client).Network.VirtualHubClient - ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext - - for _, rs := range s.RootModule().Resources { - if rs.Type != "azurerm_virtual_hub" { - continue - } - - name := rs.Primary.Attributes["name"] - resourceGroup := rs.Primary.Attributes["resource_group_name"] - - if resp, err := client.Get(ctx, resourceGroup, name); err != nil { - if !utils.ResponseWasNotFound(resp.Response) { - return fmt.Errorf("Bad: Get on network.VirtualHubClient: %+v", err) - } - } - return nil + resp, err := clients.Network.VirtualHubClient.Get(ctx, id.ResourceGroup, id.Name) + if err != nil { + return nil, fmt.Errorf("reading Virtual Hub (%s): %+v", id, err) } - return nil + return utils.Bool(resp.ID != nil), nil } -func testAccAzureRMVirtualHub_basic(data acceptance.TestData) string { - template := testAccAzureRMVirtualHub_template(data) +func (r VirtualHubResource) basic(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -157,11 +113,10 @@ resource "azurerm_virtual_hub" "test" { virtual_wan_id = azurerm_virtual_wan.test.id address_prefix = "10.0.1.0/24" } -`, template, data.RandomInteger) +`, r.template(data), data.RandomInteger) } -func testAccAzureRMVirtualHub_requiresImport(data acceptance.TestData) string { - template := testAccAzureRMVirtualHub_basic(data) +func (r VirtualHubResource) requiresImport(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -172,11 +127,10 @@ resource "azurerm_virtual_hub" "import" { virtual_wan_id = azurerm_virtual_hub.test.virtual_wan_id address_prefix = azurerm_virtual_hub.test.address_prefix } -`, template) +`, r.basic(data)) } -func testAccAzureRMVirtualHub_route(data acceptance.TestData) string { - template := testAccAzureRMVirtualHub_template(data) +func (r VirtualHubResource) route(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -192,11 +146,10 @@ resource "azurerm_virtual_hub" "test" { next_hop_ip_address = "12.34.56.78" } } -`, template, data.RandomInteger) +`, r.template(data), data.RandomInteger) } -func testAccAzureRMVirtualHub_routeUpdated(data acceptance.TestData) string { - template := testAccAzureRMVirtualHub_template(data) +func (r VirtualHubResource) routeUpdated(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -212,11 +165,10 @@ resource "azurerm_virtual_hub" "test" { next_hop_ip_address = "87.65.43.21" } } -`, template, data.RandomInteger) +`, r.template(data), data.RandomInteger) } -func testAccAzureRMVirtualHub_tags(data acceptance.TestData) string { - template := testAccAzureRMVirtualHub_template(data) +func (r VirtualHubResource) tags(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -231,10 +183,10 @@ resource "azurerm_virtual_hub" "test" { Hello = "World" } } -`, template, data.RandomInteger) +`, r.template(data), data.RandomInteger) } -func testAccAzureRMVirtualHub_template(data acceptance.TestData) string { +func (VirtualHubResource) template(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} diff --git a/azurerm/internal/services/network/tests/virtual_hub_route_table_test.go b/azurerm/internal/services/network/tests/virtual_hub_route_table_test.go index d605e630b1a6..51c384039618 100644 --- a/azurerm/internal/services/network/tests/virtual_hub_route_table_test.go +++ b/azurerm/internal/services/network/tests/virtual_hub_route_table_test.go @@ -1,157 +1,107 @@ package tests import ( + "context" "fmt" "testing" "github.com/hashicorp/terraform-plugin-sdk/helper/resource" "github.com/hashicorp/terraform-plugin-sdk/terraform" "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/network/parse" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils" ) -func TestAccAzureRMVirtualHubRouteTable_basic(t *testing.T) { +type VirtualHubRouteTableResource struct { +} + +func TestAccVirtualHubRouteTable_basic(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_hub_route_table", "test") - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualHubRouteTableDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualHubRouteTable_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualHubRouteTableExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := VirtualHubRouteTableResource{} + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMVirtualHubRouteTable_requiresImport(t *testing.T) { +func TestAccVirtualHubRouteTable_requiresImport(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_hub_route_table", "test") - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualHubRouteTableDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualHubRouteTable_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualHubRouteTableExists(data.ResourceName), - ), - }, - data.RequiresImportErrorStep(testAccAzureRMVirtualHubRouteTable_requiresImport), + r := VirtualHubRouteTableResource{} + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.RequiresImportErrorStep(r.requiresImport), }) } -func TestAccAzureRMVirtualHubRouteTable_complete(t *testing.T) { +func TestAccVirtualHubRouteTable_complete(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_hub_route_table", "test") - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualHubRouteTableDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualHubRouteTable_complete(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualHubRouteTableExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := VirtualHubRouteTableResource{} + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.complete(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMVirtualHubRouteTable_update(t *testing.T) { +func TestAccVirtualHubRouteTable_update(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_hub_route_table", "test") - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualHubRouteTableDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualHubRouteTable_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualHubRouteTableExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMVirtualHubRouteTable_complete(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualHubRouteTableExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMVirtualHubRouteTable_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualHubRouteTableExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := VirtualHubRouteTableResource{} + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.complete(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func testCheckAzureRMVirtualHubRouteTableExists(resourceName string) resource.TestCheckFunc { - return func(s *terraform.State) error { - client := acceptance.AzureProvider.Meta().(*clients.Client).Network.HubRouteTableClient - ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext - - rs, ok := s.RootModule().Resources[resourceName] - if !ok { - return fmt.Errorf("network HubRouteTable not found: %s", resourceName) - } - - id, err := parse.HubRouteTableID(rs.Primary.ID) - if err != nil { - return err - } - - if resp, err := client.Get(ctx, id.ResourceGroup, id.VirtualHubName, id.Name); err != nil { - if !utils.ResponseWasNotFound(resp.Response) { - return fmt.Errorf("bad: Network HubRouteTable %q does not exist", id.Name) - } - - return fmt.Errorf("bad: Get on Network.HubRouteTableClient: %+v", err) - } - - return nil +func (t VirtualHubRouteTableResource) Exists(ctx context.Context, clients *clients.Client, state *terraform.InstanceState) (*bool, error) { + id, err := parse.HubRouteTableID(state.ID) + if err != nil { + return nil, err } -} - -func testCheckAzureRMVirtualHubRouteTableDestroy(s *terraform.State) error { - client := acceptance.AzureProvider.Meta().(*clients.Client).Network.HubRouteTableClient - ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext - - for _, rs := range s.RootModule().Resources { - if rs.Type != "azurerm_network_hub_route_table" { - continue - } - - id, err := parse.HubRouteTableID(rs.Primary.ID) - if err != nil { - return err - } - - if resp, err := client.Get(ctx, id.ResourceGroup, id.VirtualHubName, id.Name); err != nil { - if !utils.ResponseWasNotFound(resp.Response) { - return fmt.Errorf("bad: Get on Network.HubRouteTableClient: %+v", err) - } - } - return nil + resp, err := clients.Network.HubRouteTableClient.Get(ctx, id.ResourceGroup, id.VirtualHubName, id.Name) + if err != nil { + return nil, fmt.Errorf("reading Virtual Hub Route Table (%s): %+v", id, err) } - return nil + return utils.Bool(resp.ID != nil), nil } -func testAccAzureRMVirtualHubRouteTable_template(data acceptance.TestData) string { +func (VirtualHubRouteTableResource) template(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} @@ -209,8 +159,7 @@ resource "azurerm_virtual_hub_connection" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.RandomInteger, data.RandomInteger, data.RandomInteger, data.RandomInteger, data.RandomInteger) } -func testAccAzureRMVirtualHubRouteTable_basic(data acceptance.TestData) string { - template := testAccAzureRMVirtualHubRouteTable_template(data) +func (r VirtualHubRouteTableResource) basic(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -219,11 +168,10 @@ resource "azurerm_virtual_hub_route_table" "test" { virtual_hub_id = azurerm_virtual_hub.test.id labels = ["Label1"] } -`, template, data.RandomInteger) +`, r.template(data), data.RandomInteger) } -func testAccAzureRMVirtualHubRouteTable_requiresImport(data acceptance.TestData) string { - config := testAccAzureRMVirtualHubRouteTable_basic(data) +func (r VirtualHubRouteTableResource) requiresImport(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -232,11 +180,10 @@ resource "azurerm_virtual_hub_route_table" "import" { virtual_hub_id = azurerm_virtual_hub_route_table.test.virtual_hub_id labels = azurerm_virtual_hub_route_table.test.labels } -`, config) +`, r.basic(data)) } -func testAccAzureRMVirtualHubRouteTable_complete(data acceptance.TestData) string { - template := testAccAzureRMVirtualHubRouteTable_template(data) +func (r VirtualHubRouteTableResource) complete(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -253,5 +200,5 @@ resource "azurerm_virtual_hub_route_table" "test" { next_hop = azurerm_virtual_hub_connection.test.id } } -`, template, data.RandomInteger) +`, r.template(data), data.RandomInteger) } diff --git a/azurerm/internal/services/network/tests/virtual_hub_security_partner_provider_resource_test.go b/azurerm/internal/services/network/tests/virtual_hub_security_partner_provider_resource_test.go index 6ce9b7f9089a..9f5ed0b2bc69 100644 --- a/azurerm/internal/services/network/tests/virtual_hub_security_partner_provider_resource_test.go +++ b/azurerm/internal/services/network/tests/virtual_hub_security_partner_provider_resource_test.go @@ -1,149 +1,100 @@ package tests import ( + "context" "fmt" "testing" "github.com/hashicorp/terraform-plugin-sdk/helper/resource" "github.com/hashicorp/terraform-plugin-sdk/terraform" "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/network/parse" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils" ) -func TestAccAzureRMVirtualHubSecurityPartnerProvider_basic(t *testing.T) { +type VirtualHubSecurityPartnerProviderResource struct { +} + +func TestAccVirtualHubSecurityPartnerProvider_basic(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_hub_security_partner_provider", "test") - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualHubSecurityPartnerProviderDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualHubSecurityPartnerProvider_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualHubSecurityPartnerProviderExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := VirtualHubSecurityPartnerProviderResource{} + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMVirtualHubSecurityPartnerProvider_requiresImport(t *testing.T) { +func TestAccVirtualHubSecurityPartnerProvider_requiresImport(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_hub_security_partner_provider", "test") - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualHubSecurityPartnerProviderDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualHubSecurityPartnerProvider_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualHubSecurityPartnerProviderExists(data.ResourceName), - ), - }, - data.RequiresImportErrorStep(testAccAzureRMVirtualHubSecurityPartnerProvider_requiresImport), + r := VirtualHubSecurityPartnerProviderResource{} + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.RequiresImportErrorStep(r.requiresImport), }) } -func TestAccAzureRMVirtualHubSecurityPartnerProvider_complete(t *testing.T) { +func TestAccVirtualHubSecurityPartnerProvider_complete(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_hub_security_partner_provider", "test") - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualHubSecurityPartnerProviderDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualHubSecurityPartnerProvider_complete(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualHubSecurityPartnerProviderExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := VirtualHubSecurityPartnerProviderResource{} + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.complete(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMVirtualHubSecurityPartnerProvider_update(t *testing.T) { +func TestAccVirtualHubSecurityPartnerProvider_update(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_hub_security_partner_provider", "test") - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualHubSecurityPartnerProviderDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualHubSecurityPartnerProvider_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualHubSecurityPartnerProviderExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMVirtualHubSecurityPartnerProvider_complete(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualHubSecurityPartnerProviderExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := VirtualHubSecurityPartnerProviderResource{} + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.complete(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func testCheckAzureRMVirtualHubSecurityPartnerProviderExists(resourceName string) resource.TestCheckFunc { - return func(s *terraform.State) error { - client := acceptance.AzureProvider.Meta().(*clients.Client).Network.SecurityPartnerProviderClient - ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext - - rs, ok := s.RootModule().Resources[resourceName] - if !ok { - return fmt.Errorf("Security Partner Provider not found: %s", resourceName) - } - - id, err := parse.SecurityPartnerProviderID(rs.Primary.ID) - if err != nil { - return err - } - - if resp, err := client.Get(ctx, id.ResourceGroup, id.Name); err != nil { - if !utils.ResponseWasNotFound(resp.Response) { - return fmt.Errorf("bad: Security Partner Provider %q does not exist", id.Name) - } - return fmt.Errorf("bad: Get on Network.VirtualHubSecurityPartnerProviderClient: %+v", err) - } - - return nil +func (t VirtualHubSecurityPartnerProviderResource) Exists(ctx context.Context, clients *clients.Client, state *terraform.InstanceState) (*bool, error) { + id, err := parse.SecurityPartnerProviderID(state.ID) + if err != nil { + return nil, err } -} - -func testCheckAzureRMVirtualHubSecurityPartnerProviderDestroy(s *terraform.State) error { - client := acceptance.AzureProvider.Meta().(*clients.Client).Network.SecurityPartnerProviderClient - ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext - - for _, rs := range s.RootModule().Resources { - if rs.Type != "azurerm_virtual_hub_security_partner_provider" { - continue - } - - id, err := parse.SecurityPartnerProviderID(rs.Primary.ID) - if err != nil { - return err - } - - if resp, err := client.Get(ctx, id.ResourceGroup, id.Name); err != nil { - if !utils.ResponseWasNotFound(resp.Response) { - return fmt.Errorf("bad: Get on Network.SecurityPartnerProviderClient: %+v", err) - } - } - return nil + resp, err := clients.Network.SecurityPartnerProviderClient.Get(ctx, id.ResourceGroup, id.Name) + if err != nil { + return nil, fmt.Errorf("reading Security Partner Provider (%s): %+v", id, err) } - return nil + return utils.Bool(resp.ID != nil), nil } -func testAccAzureRMVirtualHubSecurityPartnerProvider_template(data acceptance.TestData) string { +func (VirtualHubSecurityPartnerProviderResource) template(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} @@ -177,8 +128,7 @@ resource "azurerm_vpn_gateway" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.RandomInteger, data.RandomInteger) } -func testAccAzureRMVirtualHubSecurityPartnerProvider_basic(data acceptance.TestData) string { - template := testAccAzureRMVirtualHubSecurityPartnerProvider_template(data) +func (r VirtualHubSecurityPartnerProviderResource) basic(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -190,11 +140,10 @@ resource "azurerm_virtual_hub_security_partner_provider" "test" { depends_on = [azurerm_vpn_gateway.test] } -`, template, data.RandomInteger) +`, r.template(data), data.RandomInteger) } -func testAccAzureRMVirtualHubSecurityPartnerProvider_requiresImport(data acceptance.TestData) string { - config := testAccAzureRMVirtualHubSecurityPartnerProvider_basic(data) +func (r VirtualHubSecurityPartnerProviderResource) requiresImport(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -204,11 +153,10 @@ resource "azurerm_virtual_hub_security_partner_provider" "import" { location = azurerm_virtual_hub_security_partner_provider.test.location security_provider_name = azurerm_virtual_hub_security_partner_provider.test.security_provider_name } -`, config) +`, r.basic(data)) } -func testAccAzureRMVirtualHubSecurityPartnerProvider_complete(data acceptance.TestData) string { - template := testAccAzureRMVirtualHubSecurityPartnerProvider_template(data) +func (r VirtualHubSecurityPartnerProviderResource) complete(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -225,5 +173,5 @@ resource "azurerm_virtual_hub_security_partner_provider" "test" { depends_on = [azurerm_vpn_gateway.test] } -`, template, data.RandomInteger) +`, r.template(data), data.RandomInteger) } diff --git a/azurerm/internal/services/network/tests/virtual_network_data_source_test.go b/azurerm/internal/services/network/tests/virtual_network_data_source_test.go index 7315e9e3e6fd..c6978275bd81 100644 --- a/azurerm/internal/services/network/tests/virtual_network_data_source_test.go +++ b/azurerm/internal/services/network/tests/virtual_network_data_source_test.go @@ -7,56 +7,54 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/helper/resource" "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" ) -func TestAccDataSourceArmVirtualNetwork_basic(t *testing.T) { +type VirtualNetworkDataSource struct { +} + +func TestAccDataSourceVirtualNetwork_basic(t *testing.T) { data := acceptance.BuildTestData(t, "data.azurerm_virtual_network", "test") + r := VirtualNetworkDataSource{} name := fmt.Sprintf("acctestvnet-%d", data.RandomInteger) - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - Steps: []resource.TestStep{ - { - Config: testAccDataSourceArmVirtualNetwork_basic(data), - Check: resource.ComposeTestCheckFunc( - resource.TestCheckResourceAttr(data.ResourceName, "name", name), - resource.TestCheckResourceAttr(data.ResourceName, "location", azure.NormalizeLocation(data.Locations.Primary)), - resource.TestCheckResourceAttr(data.ResourceName, "dns_servers.0", "10.0.0.4"), - resource.TestCheckResourceAttr(data.ResourceName, "address_space.0", "10.0.0.0/16"), - resource.TestCheckResourceAttr(data.ResourceName, "subnets.0", "subnet1"), - ), - }, + data.DataSourceTest(t, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).Key("name").HasValue(name), + check.That(data.ResourceName).Key("location").HasValue(azure.NormalizeLocation(data.Locations.Primary)), + check.That(data.ResourceName).Key("dns_servers.0").HasValue("10.0.0.4"), + check.That(data.ResourceName).Key("address_space.0").HasValue("10.0.0.0/16"), + check.That(data.ResourceName).Key("subnets.0").HasValue("subnet1"), + ), }, }) } -func TestAccDataSourceArmVirtualNetwork_peering(t *testing.T) { +func TestAccDataSourceVirtualNetwork_peering(t *testing.T) { data := acceptance.BuildTestData(t, "data.azurerm_virtual_network", "test") + r := VirtualNetworkDataSource{} virtualNetworkName := fmt.Sprintf("acctestvnet-1-%d", data.RandomInteger) - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - Steps: []resource.TestStep{ - { - Config: testAccDataSourceArmVirtualNetwork_peering(data), - }, - { - Config: testAccDataSourceArmVirtualNetwork_peeringWithDataSource(data), - Check: resource.ComposeTestCheckFunc( - resource.TestCheckResourceAttr(data.ResourceName, "name", virtualNetworkName), - resource.TestCheckResourceAttr(data.ResourceName, "address_space.0", "10.0.1.0/24"), - resource.TestCheckResourceAttr(data.ResourceName, "vnet_peerings.%", "1"), - ), - }, + data.DataSourceTest(t, []resource.TestStep{ + { + Config: r.peering(data), + }, + { + Config: r.peeringWithDataSource(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).Key("name").HasValue(virtualNetworkName), + check.That(data.ResourceName).Key("address_space.0").HasValue("10.0.1.0/24"), + check.That(data.ResourceName).Key("vnet_peerings.%").HasValue("1"), + ), }, }) } -func testAccDataSourceArmVirtualNetwork_basic(data acceptance.TestData) string { +func (VirtualNetworkDataSource) basic(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} @@ -87,7 +85,7 @@ data "azurerm_virtual_network" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomInteger) } -func testAccDataSourceArmVirtualNetwork_peering(data acceptance.TestData) string { +func (VirtualNetworkDataSource) peering(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} @@ -121,7 +119,7 @@ resource "azurerm_virtual_network_peering" "test1" { `, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.RandomInteger) } -func testAccDataSourceArmVirtualNetwork_peeringWithDataSource(data acceptance.TestData) string { +func (VirtualNetworkDataSource) peeringWithDataSource(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} diff --git a/azurerm/internal/services/network/tests/virtual_network_gateway_connection_data_source_test.go b/azurerm/internal/services/network/tests/virtual_network_gateway_connection_data_source_test.go index d9163379a9c4..3dc667c1d014 100644 --- a/azurerm/internal/services/network/tests/virtual_network_gateway_connection_data_source_test.go +++ b/azurerm/internal/services/network/tests/virtual_network_gateway_connection_data_source_test.go @@ -5,89 +5,76 @@ import ( "testing" "github.com/Azure/azure-sdk-for-go/services/network/mgmt/2020-05-01/network" - "github.com/hashicorp/terraform-plugin-sdk/helper/resource" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/acceptance" + "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/acceptance/check" ) -func TestAccAzureRMDataSourceVirtualNetworkGatewayConnection_sitetosite(t *testing.T) { +type VirtualNetworkGatewayConnectionDataSource struct { +} + +func TestAccDataSourceVirtualNetworkGatewayConnection_sitetosite(t *testing.T) { data := acceptance.BuildTestData(t, "data.azurerm_virtual_network_gateway_connection", "test") + r := VirtualNetworkGatewayConnectionDataSource{} sharedKey := "4-v3ry-53cr37-1p53c-5h4r3d-k3y" - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkGatewayConnectionDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMDataSourceVirtualNetworkGatewayConnection_sitetosite(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkGatewayConnectionExists(data.ResourceName), - resource.TestCheckResourceAttr(data.ResourceName, "shared_key", sharedKey), - resource.TestCheckResourceAttr(data.ResourceName, "type", string(network.IPsec)), - ), - }, + data.DataSourceTest(t, []resource.TestStep{ + { + Config: r.sitetosite(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).Key("shared_key").HasValue(sharedKey), + check.That(data.ResourceName).Key("type").HasValue(string(network.IPsec)), + ), }, }) } -func TestAccAzureRMDataSourceVirtualNetworkGatewayConnection_vnettovnet(t *testing.T) { +func TestAccDataSourceVirtualNetworkGatewayConnection_vnettovnet(t *testing.T) { data1 := acceptance.BuildTestData(t, "data.azurerm_virtual_network_gateway_connection", "test_1") data2 := acceptance.BuildTestData(t, "data.azurerm_virtual_network_gateway_connection", "test_2") + r := VirtualNetworkGatewayConnectionDataSource{} sharedKey := "4-v3ry-53cr37-1p53c-5h4r3d-k3y" - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkGatewayConnectionDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMDataSourceVirtualNetworkGatewayConnection_vnettovnet(data1, data2.RandomInteger, sharedKey), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkGatewayConnectionExists(data1.ResourceName), - testCheckAzureRMVirtualNetworkGatewayConnectionExists(data2.ResourceName), - resource.TestCheckResourceAttr(data1.ResourceName, "shared_key", sharedKey), - resource.TestCheckResourceAttr(data2.ResourceName, "shared_key", sharedKey), - resource.TestCheckResourceAttr(data1.ResourceName, "type", string(network.Vnet2Vnet)), - resource.TestCheckResourceAttr(data2.ResourceName, "type", string(network.Vnet2Vnet)), - ), - }, + data1.DataSourceTest(t, []resource.TestStep{ + { + Config: r.vnettovnet(data1, data2.RandomInteger, sharedKey), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttr(data1.ResourceName, "shared_key", sharedKey), + resource.TestCheckResourceAttr(data2.ResourceName, "shared_key", sharedKey), + resource.TestCheckResourceAttr(data1.ResourceName, "type", string(network.Vnet2Vnet)), + resource.TestCheckResourceAttr(data2.ResourceName, "type", string(network.Vnet2Vnet)), + ), }, }) } -func TestAccAzureRMDataSourceVirtualNetworkGatewayConnection_ipsecpolicy(t *testing.T) { +func TestAccDataSourceVirtualNetworkGatewayConnection_ipsecpolicy(t *testing.T) { data := acceptance.BuildTestData(t, "data.azurerm_virtual_network_gateway_connection", "test") + r := VirtualNetworkGatewayConnectionDataSource{} sharedKey := "4-v3ry-53cr37-1p53c-5h4r3d-k3y" - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkGatewayConnectionDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMDataSourceVirtualNetworkGatewayConnection_ipsecpolicy(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkGatewayConnectionExists(data.ResourceName), - resource.TestCheckResourceAttr(data.ResourceName, "shared_key", sharedKey), - resource.TestCheckResourceAttr(data.ResourceName, "type", string(network.IPsec)), - resource.TestCheckResourceAttr(data.ResourceName, "routing_weight", "20"), - resource.TestCheckResourceAttr(data.ResourceName, "ipsec_policy.0.dh_group", string(network.DHGroup14)), - resource.TestCheckResourceAttr(data.ResourceName, "ipsec_policy.0.ike_encryption", string(network.AES256)), - resource.TestCheckResourceAttr(data.ResourceName, "ipsec_policy.0.ike_integrity", string(network.IkeIntegritySHA256)), - resource.TestCheckResourceAttr(data.ResourceName, "ipsec_policy.0.ipsec_encryption", string(network.IpsecEncryptionAES256)), - resource.TestCheckResourceAttr(data.ResourceName, "ipsec_policy.0.ipsec_integrity", string(network.IpsecIntegritySHA256)), - resource.TestCheckResourceAttr(data.ResourceName, "ipsec_policy.0.pfs_group", string(network.PfsGroupPFS2048)), - resource.TestCheckResourceAttr(data.ResourceName, "ipsec_policy.0.sa_datasize", "102400000"), - resource.TestCheckResourceAttr(data.ResourceName, "ipsec_policy.0.sa_lifetime", "27000"), - ), - }, + data.DataSourceTest(t, []resource.TestStep{ + { + Config: r.ipsecpolicy(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).Key("shared_key").HasValue(sharedKey), + check.That(data.ResourceName).Key("type").HasValue(string(network.IPsec)), + check.That(data.ResourceName).Key("routing_weight").HasValue("20"), + check.That(data.ResourceName).Key("ipsec_policy.0.dh_group").HasValue(string(network.DHGroup14)), + check.That(data.ResourceName).Key("ipsec_policy.0.ike_encryption").HasValue(string(network.AES256)), + check.That(data.ResourceName).Key("ipsec_policy.0.ike_integrity").HasValue(string(network.IkeIntegritySHA256)), + check.That(data.ResourceName).Key("ipsec_policy.0.ipsec_encryption").HasValue(string(network.IpsecEncryptionAES256)), + check.That(data.ResourceName).Key("ipsec_policy.0.ipsec_integrity").HasValue(string(network.IpsecIntegritySHA256)), + check.That(data.ResourceName).Key("ipsec_policy.0.pfs_group").HasValue(string(network.PfsGroupPFS2048)), + check.That(data.ResourceName).Key("ipsec_policy.0.sa_datasize").HasValue("102400000"), + check.That(data.ResourceName).Key("ipsec_policy.0.sa_lifetime").HasValue("27000"), + ), }, }) } -func testAccAzureRMDataSourceVirtualNetworkGatewayConnection_sitetosite(data acceptance.TestData) string { +func (VirtualNetworkGatewayConnectionDataSource) sitetosite(data acceptance.TestData) string { return fmt.Sprintf(` variable "random" { default = "%d" @@ -160,7 +147,7 @@ data "azurerm_virtual_network_gateway_connection" "test" { `, data.RandomInteger, data.Locations.Primary) } -func testAccAzureRMDataSourceVirtualNetworkGatewayConnection_vnettovnet(data acceptance.TestData, rInt2 int, sharedKey string) string { +func (VirtualNetworkGatewayConnectionDataSource) vnettovnet(data acceptance.TestData, rInt2 int, sharedKey string) string { return fmt.Sprintf(` variable "random1" { default = "%d" @@ -296,7 +283,7 @@ data "azurerm_virtual_network_gateway_connection" "test_2" { `, data.RandomInteger, rInt2, sharedKey, data.Locations.Primary, data.Locations.Secondary) } -func testAccAzureRMDataSourceVirtualNetworkGatewayConnection_ipsecpolicy(data acceptance.TestData) string { +func (VirtualNetworkGatewayConnectionDataSource) ipsecpolicy(data acceptance.TestData) string { return fmt.Sprintf(` variable "random" { default = "%d" diff --git a/azurerm/internal/services/network/tests/virtual_network_gateway_connection_resource_test.go b/azurerm/internal/services/network/tests/virtual_network_gateway_connection_resource_test.go index f0194f4f29b1..b10994404bed 100644 --- a/azurerm/internal/services/network/tests/virtual_network_gateway_connection_resource_test.go +++ b/azurerm/internal/services/network/tests/virtual_network_gateway_connection_resource_test.go @@ -1,271 +1,200 @@ package tests import ( + "context" "fmt" "testing" "github.com/hashicorp/terraform-plugin-sdk/helper/resource" "github.com/hashicorp/terraform-plugin-sdk/terraform" "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/utils" ) -func TestAccAzureRMVirtualNetworkGatewayConnection_sitetosite(t *testing.T) { - data := acceptance.BuildTestData(t, "azurerm_virtual_network_gateway_connection", "test") +type VirtualNetworkGatewayConnectionResource struct { +} - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkGatewayConnectionDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualNetworkGatewayConnection_sitetosite(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkGatewayConnectionExists(data.ResourceName), - ), - }, - data.ImportStep(), +func TestAccVirtualNetworkGatewayConnection_sitetosite(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_virtual_network_gateway_connection", "test") + r := VirtualNetworkGatewayConnectionResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.sitetosite(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMVirtualNetworkGatewayConnection_requiresImport(t *testing.T) { +func TestAccVirtualNetworkGatewayConnection_requiresImport(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_network_gateway_connection", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkGatewayConnectionDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualNetworkGatewayConnection_sitetosite(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkGatewayConnectionExists(data.ResourceName), - ), - }, - { - Config: testAccAzureRMVirtualNetworkGatewayConnection_requiresImport(data), - ExpectError: acceptance.RequiresImportError("azurerm_virtual_network_gateway_connection"), - }, + r := VirtualNetworkGatewayConnectionResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.sitetosite(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + { + Config: r.requiresImport(data), + ExpectError: acceptance.RequiresImportError("azurerm_virtual_network_gateway_connection"), }, }) } -func TestAccAzureRMVirtualNetworkGatewayConnection_sitetositeWithoutSharedKey(t *testing.T) { +func TestAccVirtualNetworkGatewayConnection_sitetositeWithoutSharedKey(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_network_gateway_connection", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkGatewayConnectionDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualNetworkGatewayConnection_sitetositeWithoutSharedKey(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkGatewayConnectionExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := VirtualNetworkGatewayConnectionResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.sitetositeWithoutSharedKey(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMVirtualNetworkGatewayConnection_vnettonet(t *testing.T) { +func TestAccVirtualNetworkGatewayConnection_vnettonet(t *testing.T) { data1 := acceptance.BuildTestData(t, "azurerm_virtual_network_gateway_connection", "test_1") data2 := acceptance.BuildTestData(t, "azurerm_virtual_network_gateway_connection", "test_2") + r := VirtualNetworkGatewayConnectionResource{} sharedKey := "4-v3ry-53cr37-1p53c-5h4r3d-k3y" - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkGatewayConnectionDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualNetworkGatewayConnection_vnettovnet(data1, data2.RandomInteger, sharedKey), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkGatewayConnectionExists(data1.ResourceName), - testCheckAzureRMVirtualNetworkGatewayConnectionExists(data2.ResourceName), - resource.TestCheckResourceAttr(data1.ResourceName, "shared_key", sharedKey), - resource.TestCheckResourceAttr(data2.ResourceName, "shared_key", sharedKey), - ), - }, + data1.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.vnettovnet(data1, data2.RandomInteger, sharedKey), + Check: resource.ComposeTestCheckFunc( + check.That(data1.ResourceName).ExistsInAzure(r), + resource.TestCheckResourceAttr(data1.ResourceName, "shared_key", sharedKey), + resource.TestCheckResourceAttr(data2.ResourceName, "shared_key", sharedKey), + ), }, }) } -func TestAccAzureRMVirtualNetworkGatewayConnection_ipsecpolicy(t *testing.T) { +func TestAccVirtualNetworkGatewayConnection_ipsecpolicy(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_network_gateway_connection", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkGatewayConnectionDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualNetworkGatewayConnection_ipsecpolicy(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkGatewayConnectionExists(data.ResourceName), - ), - }, + r := VirtualNetworkGatewayConnectionResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.ipsecpolicy(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, }) } -func TestAccAzureRMVirtualNetworkGatewayConnection_trafficSelectorPolicy(t *testing.T) { +func TestAccVirtualNetworkGatewayConnection_trafficSelectorPolicy(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_network_gateway_connection", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkGatewayConnectionDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualNetworkGatewayConnection_trafficselectorpolicy(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkGatewayConnectionExists(data.ResourceName), - resource.TestCheckResourceAttr(data.ResourceName, "traffic_selector_policy.0.local_address_cidrs.0", "10.66.18.0/24"), - resource.TestCheckResourceAttr(data.ResourceName, "traffic_selector_policy.0.local_address_cidrs.1", "10.66.17.0/24"), - resource.TestCheckResourceAttr(data.ResourceName, "traffic_selector_policy.0.remote_address_cidrs.0", "10.1.1.0/24"), - ), - }, + r := VirtualNetworkGatewayConnectionResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.trafficselectorpolicy(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("traffic_selector_policy.0.local_address_cidrs.0").HasValue("10.66.18.0/24"), + check.That(data.ResourceName).Key("traffic_selector_policy.0.local_address_cidrs.1").HasValue("10.66.17.0/24"), + check.That(data.ResourceName).Key("traffic_selector_policy.0.remote_address_cidrs.0").HasValue("10.1.1.0/24"), + ), }, }) } -func TestAccAzureRMVirtualNetworkGatewayConnection_connectionprotocol(t *testing.T) { +func TestAccVirtualNetworkGatewayConnection_connectionprotocol(t *testing.T) { expectedConnectionProtocol := "IKEv1" data := acceptance.BuildTestData(t, "azurerm_virtual_network_gateway_connection", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkGatewayConnectionDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualNetworkGatewayConnection_connectionprotocol(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkGatewayConnectionExists(data.ResourceName), - resource.TestCheckResourceAttr(data.ResourceName, "connection_protocol", expectedConnectionProtocol), - ), - }, + r := VirtualNetworkGatewayConnectionResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.connectionprotocol(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("connection_protocol").HasValue(expectedConnectionProtocol), + ), }, }) } -func TestAccAzureRMVirtualNetworkGatewayConnection_updatingSharedKey(t *testing.T) { +func TestAccVirtualNetworkGatewayConnection_updatingSharedKey(t *testing.T) { data1 := acceptance.BuildTestData(t, "azurerm_virtual_network_gateway_connection", "test_1") data2 := acceptance.BuildTestData(t, "azurerm_virtual_network_gateway_connection", "test_2") + r := VirtualNetworkGatewayConnectionResource{} firstSharedKey := "4-v3ry-53cr37-1p53c-5h4r3d-k3y" secondSharedKey := "4-r33ly-53cr37-1p53c-5h4r3d-k3y" - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkGatewayConnectionDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualNetworkGatewayConnection_vnettovnet(data1, data2.RandomInteger, firstSharedKey), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkGatewayConnectionExists(data1.ResourceName), - testCheckAzureRMVirtualNetworkGatewayConnectionExists(data2.ResourceName), - resource.TestCheckResourceAttr(data1.ResourceName, "shared_key", firstSharedKey), - resource.TestCheckResourceAttr(data2.ResourceName, "shared_key", firstSharedKey), - ), - }, - { - Config: testAccAzureRMVirtualNetworkGatewayConnection_vnettovnet(data1, data2.RandomInteger, secondSharedKey), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkGatewayConnectionExists(data1.ResourceName), - testCheckAzureRMVirtualNetworkGatewayConnectionExists(data2.ResourceName), - resource.TestCheckResourceAttr(data1.ResourceName, "shared_key", secondSharedKey), - resource.TestCheckResourceAttr(data2.ResourceName, "shared_key", secondSharedKey), - ), - }, + data1.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.vnettovnet(data1, data2.RandomInteger, firstSharedKey), + Check: resource.ComposeTestCheckFunc( + check.That(data1.ResourceName).ExistsInAzure(r), + check.That(data2.ResourceName).ExistsInAzure(r), + resource.TestCheckResourceAttr(data1.ResourceName, "shared_key", firstSharedKey), + resource.TestCheckResourceAttr(data2.ResourceName, "shared_key", firstSharedKey), + ), + }, + { + Config: r.vnettovnet(data1, data2.RandomInteger, secondSharedKey), + Check: resource.ComposeTestCheckFunc( + check.That(data1.ResourceName).ExistsInAzure(r), + check.That(data2.ResourceName).ExistsInAzure(r), + resource.TestCheckResourceAttr(data1.ResourceName, "shared_key", secondSharedKey), + resource.TestCheckResourceAttr(data2.ResourceName, "shared_key", secondSharedKey), + ), }, }) } -func TestAccAzureRMVirtualNetworkGatewayConnection_useLocalAzureIpAddressEnabled(t *testing.T) { +func TestAccVirtualNetworkGatewayConnection_useLocalAzureIpAddressEnabled(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_network_gateway_connection", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkGatewayConnectionDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualNetworkGatewayConnection_useLocalAzureIpAddressEnabled(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkGatewayConnectionExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMVirtualNetworkGatewayConnection_useLocalAzureIpAddressEnabledUpdate(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkGatewayConnectionExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := VirtualNetworkGatewayConnectionResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.useLocalAzureIpAddressEnabled(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.useLocalAzureIpAddressEnabledUpdate(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func testCheckAzureRMVirtualNetworkGatewayConnectionExists(resourceName string) resource.TestCheckFunc { - return func(s *terraform.State) error { - client := acceptance.AzureProvider.Meta().(*clients.Client).Network.VnetGatewayConnectionsClient - ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext - - rs, ok := s.RootModule().Resources[resourceName] - if !ok { - return fmt.Errorf("Not found: %s", resourceName) - } - - connectionName := rs.Primary.Attributes["name"] - resourceGroup := rs.Primary.Attributes["resource_group_name"] - - resp, err := client.Get(ctx, resourceGroup, connectionName) - if err != nil { - return fmt.Errorf("Bad: Get on vnetGatewayConnectionsClient: %+v", err) - } - - if utils.ResponseWasNotFound(resp.Response) { - return fmt.Errorf("Bad: Virtual Network Gateway Connection %q (resource group: %q) does not exist", connectionName, resourceGroup) - } - - return nil - } -} - -func testCheckAzureRMVirtualNetworkGatewayConnectionDestroy(s *terraform.State) error { - client := acceptance.AzureProvider.Meta().(*clients.Client).Network.VnetGatewayConnectionsClient - ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext - - for _, rs := range s.RootModule().Resources { - if rs.Type != "azurerm_virtual_network_gateway_connection" { - continue - } - - name := rs.Primary.Attributes["name"] - resourceGroup := rs.Primary.Attributes["resource_group_name"] - - resp, err := client.Get(ctx, resourceGroup, name) - if err != nil { - return nil - } +func (t VirtualNetworkGatewayConnectionResource) Exists(ctx context.Context, clients *clients.Client, state *terraform.InstanceState) (*bool, error) { + gatewayName := state.Attributes["name"] + resourceGroup := state.Attributes["resource_group_name"] - if utils.ResponseWasNotFound(resp.Response) { - return fmt.Errorf("Virtual Network Gateway Connection still exists: %#v", resp.VirtualNetworkGatewayConnectionPropertiesFormat) - } + resp, err := clients.Network.VnetGatewayConnectionsClient.Get(ctx, resourceGroup, gatewayName) + if err != nil { + return nil, fmt.Errorf("reading Virtual Network Gateway Connection (%s): %+v", state.ID, err) } - return nil + return utils.Bool(resp.ID != nil), nil } -func testAccAzureRMVirtualNetworkGatewayConnection_sitetosite(data acceptance.TestData) string { +func (VirtualNetworkGatewayConnectionResource) sitetosite(data acceptance.TestData) string { return fmt.Sprintf(` variable "random" { default = "%d" @@ -337,7 +266,7 @@ resource "azurerm_virtual_network_gateway_connection" "test" { `, data.RandomInteger, data.Locations.Primary) } -func testAccAzureRMVirtualNetworkGatewayConnection_sitetositeWithoutSharedKey(data acceptance.TestData) string { +func (VirtualNetworkGatewayConnectionResource) sitetositeWithoutSharedKey(data acceptance.TestData) string { return fmt.Sprintf(` variable "random" { default = "%d" @@ -407,8 +336,7 @@ resource "azurerm_virtual_network_gateway_connection" "test" { `, data.RandomInteger, data.Locations.Primary) } -func testAccAzureRMVirtualNetworkGatewayConnection_requiresImport(data acceptance.TestData) string { - template := testAccAzureRMVirtualNetworkGatewayConnection_sitetosite(data) +func (r VirtualNetworkGatewayConnectionResource) requiresImport(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -421,10 +349,10 @@ resource "azurerm_virtual_network_gateway_connection" "import" { local_network_gateway_id = azurerm_virtual_network_gateway_connection.test.local_network_gateway_id shared_key = azurerm_virtual_network_gateway_connection.test.shared_key } -`, template) +`, r.sitetosite(data)) } -func testAccAzureRMVirtualNetworkGatewayConnection_vnettovnet(data acceptance.TestData, rInt2 int, sharedKey string) string { +func (VirtualNetworkGatewayConnectionResource) vnettovnet(data acceptance.TestData, rInt2 int, sharedKey string) string { return fmt.Sprintf(` variable "random1" { default = "%d" @@ -550,7 +478,7 @@ resource "azurerm_virtual_network_gateway_connection" "test_2" { `, data.RandomInteger, rInt2, sharedKey, data.Locations.Primary, data.Locations.Secondary) } -func testAccAzureRMVirtualNetworkGatewayConnection_ipsecpolicy(data acceptance.TestData) string { +func (VirtualNetworkGatewayConnectionResource) ipsecpolicy(data acceptance.TestData) string { return fmt.Sprintf(` variable "random" { default = "%d" @@ -636,7 +564,7 @@ resource "azurerm_virtual_network_gateway_connection" "test" { `, data.RandomInteger, data.Locations.Primary) } -func testAccAzureRMVirtualNetworkGatewayConnection_connectionprotocol(data acceptance.TestData) string { +func (VirtualNetworkGatewayConnectionResource) connectionprotocol(data acceptance.TestData) string { return fmt.Sprintf(` variable "random" { default = "%d" @@ -721,7 +649,7 @@ resource "azurerm_virtual_network_gateway_connection" "test" { `, data.RandomInteger, data.Locations.Primary) } -func testAccAzureRMVirtualNetworkGatewayConnection_trafficselectorpolicy(data acceptance.TestData) string { +func (VirtualNetworkGatewayConnectionResource) trafficselectorpolicy(data acceptance.TestData) string { return fmt.Sprintf(` variable "random" { default = "%d" @@ -813,7 +741,7 @@ resource "azurerm_virtual_network_gateway_connection" "test" { `, data.RandomInteger, data.Locations.Primary) } -func testAccAzureRMVirtualNetworkGatewayConnection_useLocalAzureIpAddressEnabled(data acceptance.TestData) string { +func (VirtualNetworkGatewayConnectionResource) useLocalAzureIpAddressEnabled(data acceptance.TestData) string { return fmt.Sprintf(` resource "azurerm_resource_group" "test" { name = "acctestRG-%d" @@ -883,7 +811,7 @@ resource "azurerm_virtual_network_gateway_connection" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.RandomInteger, data.RandomInteger, data.RandomInteger, data.RandomInteger) } -func testAccAzureRMVirtualNetworkGatewayConnection_useLocalAzureIpAddressEnabledUpdate(data acceptance.TestData) string { +func (VirtualNetworkGatewayConnectionResource) useLocalAzureIpAddressEnabledUpdate(data acceptance.TestData) string { return fmt.Sprintf(` resource "azurerm_resource_group" "test" { name = "acctestRG-%d" diff --git a/azurerm/internal/services/network/tests/virtual_network_gateway_data_source_test.go b/azurerm/internal/services/network/tests/virtual_network_gateway_data_source_test.go index 13a2763c319a..b9b1eb113cf3 100644 --- a/azurerm/internal/services/network/tests/virtual_network_gateway_data_source_test.go +++ b/azurerm/internal/services/network/tests/virtual_network_gateway_data_source_test.go @@ -8,25 +8,22 @@ import ( "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/acceptance" ) +type VirtualNetworkGatewayDataSource struct { +} + func TestAccAzureRMDataSourceVirtualNetworkGateway_basic(t *testing.T) { data := acceptance.BuildTestData(t, "data.azurerm_virtual_network_gateway", "test") + r := VirtualNetworkGatewayDataSource{} - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkGatewayDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMDataSourceVirtualNetworkGateway_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkGatewayExists("data.azurerm_virtual_network_gateway.test"), - ), - }, + data.DataSourceTest(t, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc(), }, }) } -func testAccAzureRMDataSourceVirtualNetworkGateway_basic(data acceptance.TestData) string { +func (VirtualNetworkGatewayDataSource) basic(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} diff --git a/azurerm/internal/services/network/tests/virtual_network_gateway_resource_test.go b/azurerm/internal/services/network/tests/virtual_network_gateway_resource_test.go index 910d9ba5b92e..f59dbbb12c00 100644 --- a/azurerm/internal/services/network/tests/virtual_network_gateway_resource_test.go +++ b/azurerm/internal/services/network/tests/virtual_network_gateway_resource_test.go @@ -1,369 +1,275 @@ package tests import ( + "context" "fmt" "testing" "github.com/hashicorp/terraform-plugin-sdk/helper/resource" "github.com/hashicorp/terraform-plugin-sdk/terraform" "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/utils" ) -func TestAccAzureRMVirtualNetworkGateway_basic(t *testing.T) { - data := acceptance.BuildTestData(t, "azurerm_virtual_network_gateway", "test") +type VirtualNetworkGatewayResource struct { +} - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkGatewayDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualNetworkGateway_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkGatewayExists(data.ResourceName), - resource.TestCheckResourceAttr(data.ResourceName, "sku", "Basic"), - ), - }, - data.ImportStep(), +func TestAccVirtualNetworkGateway_basic(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_virtual_network_gateway", "test") + r := VirtualNetworkGatewayResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("sku").HasValue("Basic"), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMVirtualNetworkGateway_requiresImport(t *testing.T) { +func TestAccVirtualNetworkGateway_requiresImport(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_network_gateway", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkGatewayDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualNetworkGateway_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkGatewayExists(data.ResourceName), - ), - }, - { - Config: testAccAzureRMVirtualNetworkGateway_requiresImport(data), - ExpectError: acceptance.RequiresImportError("azurerm_virtual_network_gateway"), - }, + r := VirtualNetworkGatewayResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + { + Config: r.requiresImport(data), + ExpectError: acceptance.RequiresImportError("azurerm_virtual_network_gateway"), }, }) } -func TestAccAzureRMVirtualNetworkGateway_lowerCaseSubnetName(t *testing.T) { +func TestAccVirtualNetworkGateway_lowerCaseSubnetName(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_network_gateway", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkGatewayDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualNetworkGateway_lowerCaseSubnetName(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkGatewayExists(data.ResourceName), - resource.TestCheckResourceAttr(data.ResourceName, "sku", "Basic"), - ), - }, - data.ImportStep(), + r := VirtualNetworkGatewayResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.lowerCaseSubnetName(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("sku").HasValue("Basic"), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMVirtualNetworkGateway_vpnGw1(t *testing.T) { +func TestAccVirtualNetworkGateway_vpnGw1(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_network_gateway", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkGatewayDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualNetworkGateway_vpnGw1(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkGatewayExists("azurerm_virtual_network_gateway.test"), - ), - }, + r := VirtualNetworkGatewayResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.vpnGw1(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, }) } -func TestAccAzureRMVirtualNetworkGateway_activeActive(t *testing.T) { +func TestAccVirtualNetworkGateway_activeActive(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_network_gateway", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkGatewayDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualNetworkGateway_activeActive(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkGatewayExists("azurerm_virtual_network_gateway.test"), - ), - }, + r := VirtualNetworkGatewayResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.activeActive(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, }) } -func TestAccAzureRMVirtualNetworkGateway_standard(t *testing.T) { +func TestAccVirtualNetworkGateway_standard(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_network_gateway", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkGatewayDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualNetworkGateway_sku(data, "Standard"), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkGatewayExists(data.ResourceName), - resource.TestCheckResourceAttr(data.ResourceName, "sku", "Standard"), - ), - }, + r := VirtualNetworkGatewayResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.sku(data, "Standard"), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("sku").HasValue("Standard"), + ), }, }) } -func TestAccAzureRMVirtualNetworkGateway_vpnGw2(t *testing.T) { +func TestAccVirtualNetworkGateway_vpnGw2(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_network_gateway", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkGatewayDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualNetworkGateway_sku(data, "VpnGw2"), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkGatewayExists(data.ResourceName), - resource.TestCheckResourceAttr(data.ResourceName, "sku", "VpnGw2"), - ), - }, + r := VirtualNetworkGatewayResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.sku(data, "VpnGw2"), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("sku").HasValue("VpnGw2"), + ), }, }) } -func TestAccAzureRMVirtualNetworkGateway_vpnGw3(t *testing.T) { +func TestAccVirtualNetworkGateway_vpnGw3(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_network_gateway", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkGatewayDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualNetworkGateway_sku(data, "VpnGw3"), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkGatewayExists(data.ResourceName), - resource.TestCheckResourceAttr(data.ResourceName, "sku", "VpnGw3"), - ), - }, + r := VirtualNetworkGatewayResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.sku(data, "VpnGw3"), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("sku").HasValue("VpnGw3"), + ), }, }) } -func TestAccAzureRMVirtualNetworkGateway_generation(t *testing.T) { +func TestAccVirtualNetworkGateway_generation(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_network_gateway", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkGatewayDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualNetworkGateway_generation(data, "Generation2"), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkGatewayExists(data.ResourceName), - resource.TestCheckResourceAttr(data.ResourceName, "generation", "Generation2"), - ), - }, + r := VirtualNetworkGatewayResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.generation(data, "Generation2"), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("generation").HasValue("Generation2"), + ), }, }) } -func TestAccAzureRMVirtualNetworkGateway_vpnClientConfig(t *testing.T) { +func TestAccVirtualNetworkGateway_vpnClientConfig(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_network_gateway", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkGatewayDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualNetworkGateway_vpnClientConfig(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkGatewayExists(data.ResourceName), - resource.TestCheckResourceAttr(data.ResourceName, "vpn_client_configuration.0.radius_server_address", "1.2.3.4"), - resource.TestCheckResourceAttr(data.ResourceName, "vpn_client_configuration.0.vpn_client_protocols.#", "2"), - ), - }, + r := VirtualNetworkGatewayResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.vpnClientConfig(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("vpn_client_configuration.0.radius_server_address").HasValue("1.2.3.4"), + check.That(data.ResourceName).Key("vpn_client_configuration.0.vpn_client_protocols.#").HasValue("2"), + ), }, }) } -func TestAccAzureRMVirtualNetworkGateway_vpnClientConfigAzureAdAuth(t *testing.T) { +func TestAccVirtualNetworkGateway_vpnClientConfigAzureAdAuth(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_network_gateway", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkGatewayDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualNetworkGateway_vpnClientConfigAzureAdAuth(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkGatewayExists(data.ResourceName), - resource.TestCheckResourceAttr(data.ResourceName, "vpn_client_configuration.0.aad_tenant", fmt.Sprintf("https://login.microsoftonline.com/%s/", data.Client().TenantID)), - resource.TestCheckResourceAttr(data.ResourceName, "vpn_client_configuration.0.aad_audience", "41b23e61-6c1e-4545-b367-cd054e0ed4b4"), - resource.TestCheckResourceAttr(data.ResourceName, "vpn_client_configuration.0.aad_issuer", fmt.Sprintf("https://sts.windows.net/%s/", data.Client().TenantID)), - resource.TestCheckResourceAttr(data.ResourceName, "vpn_client_configuration.0.vpn_client_protocols.#", "1"), - ), - }, + r := VirtualNetworkGatewayResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.vpnClientConfigAzureAdAuth(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("vpn_client_configuration.0.aad_tenant").HasValue(fmt.Sprintf("https://login.microsoftonline.com/%s/", data.RandomString)), + check.That(data.ResourceName).Key("vpn_client_configuration.0.aad_audience").HasValue("41b23e61-6c1e-4545-b367-cd054e0ed4b4"), + check.That(data.ResourceName).Key("vpn_client_configuration.0.aad_issuer").HasValue(fmt.Sprintf("https://sts.windows.net/%s/", data.RandomString)), + check.That(data.ResourceName).Key("vpn_client_configuration.0.vpn_client_protocols.#").HasValue("1"), + ), }, }) } -func TestAccAzureRMVirtualNetworkGateway_vpnClientConfigOpenVPN(t *testing.T) { +func TestAccVirtualNetworkGateway_vpnClientConfigOpenVPN(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_network_gateway", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkGatewayDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualNetworkGateway_vpnClientConfigOpenVPN(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkGatewayExists(data.ResourceName), - resource.TestCheckResourceAttr(data.ResourceName, "vpn_client_configuration.0.vpn_client_protocols.#", "1"), - ), - }, + r := VirtualNetworkGatewayResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.vpnClientConfigOpenVPN(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("vpn_client_configuration.0.vpn_client_protocols.#").HasValue("1"), + ), }, }) } -func TestAccAzureRMVirtualNetworkGateway_enableBgp(t *testing.T) { +func TestAccVirtualNetworkGateway_enableBgp(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_network_gateway", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkGatewayDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualNetworkGateway_enableBgp(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkGatewayExists(data.ResourceName), - resource.TestCheckResourceAttr(data.ResourceName, "enable_bgp", "true"), - resource.TestCheckResourceAttr(data.ResourceName, "bgp_settings.#", "1"), - ), - }, + r := VirtualNetworkGatewayResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.enableBgp(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("enable_bgp").HasValue("true"), + check.That(data.ResourceName).Key("bgp_settings.#").HasValue("1"), + ), }, }) } -func TestAccAzureRMVirtualNetworkGateway_expressRoute(t *testing.T) { +func TestAccVirtualNetworkGateway_expressRoute(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_network_gateway", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkGatewayDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualNetworkGateway_expressRoute(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkGatewayExists(data.ResourceName), - resource.TestCheckResourceAttr(data.ResourceName, "type", "ExpressRoute"), - resource.TestCheckResourceAttr(data.ResourceName, "bgp_settings.#", "0"), - ), - }, + r := VirtualNetworkGatewayResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.expressRoute(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("type").HasValue("ExpressRoute"), + check.That(data.ResourceName).Key("bgp_settings.#").HasValue("0"), + ), }, }) } -func TestAccAzureRMVirtualNetworkGateway_privateIpAddressEnabled(t *testing.T) { +func TestAccVirtualNetworkGateway_privateIpAddressEnabled(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_network_gateway", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkGatewayDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualNetworkGateway_privateIpAddressEnabled(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkGatewayExists("azurerm_virtual_network_gateway.test"), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMVirtualNetworkGateway_privateIpAddressEnabledUpdate(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkGatewayExists("azurerm_virtual_network_gateway.test"), - ), - }, - data.ImportStep(), + r := VirtualNetworkGatewayResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.privateIpAddressEnabled(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.privateIpAddressEnabledUpdate(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func testCheckAzureRMVirtualNetworkGatewayExists(resourceName string) resource.TestCheckFunc { - return func(s *terraform.State) error { - client := acceptance.AzureProvider.Meta().(*clients.Client).Network.VnetGatewayClient - ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext - - rs, ok := s.RootModule().Resources[resourceName] - if !ok { - return fmt.Errorf("Not found: %s", resourceName) - } - - gatewayName := rs.Primary.Attributes["name"] - resourceGroup := rs.Primary.Attributes["resource_group_name"] - - resp, err := client.Get(ctx, resourceGroup, gatewayName) - if err != nil { - return fmt.Errorf("Bad: Get on vnetGatewayClient: %+v", err) - } - - if utils.ResponseWasNotFound(resp.Response) { - return fmt.Errorf("Bad: Virtual Network Gateway %q (resource group: %q) does not exist", gatewayName, resourceGroup) - } - - return nil - } -} - -func testCheckAzureRMVirtualNetworkGatewayDestroy(s *terraform.State) error { - client := acceptance.AzureProvider.Meta().(*clients.Client).Network.VnetGatewayClient - ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext - - for _, rs := range s.RootModule().Resources { - if rs.Type != "azurerm_virtual_network_gateway" { - continue - } - - name := rs.Primary.Attributes["name"] - resourceGroup := rs.Primary.Attributes["resource_group_name"] - - resp, err := client.Get(ctx, resourceGroup, name) - if err != nil { - return nil - } +func (t VirtualNetworkGatewayResource) Exists(ctx context.Context, clients *clients.Client, state *terraform.InstanceState) (*bool, error) { + gatewayName := state.Attributes["name"] + resourceGroup := state.Attributes["resource_group_name"] - if utils.ResponseWasNotFound(resp.Response) { - return fmt.Errorf("Virtual Network Gateway still exists:\n%#v", resp.VirtualNetworkGatewayPropertiesFormat) - } + resp, err := clients.Network.VnetGatewayClient.Get(ctx, resourceGroup, gatewayName) + if err != nil { + return nil, fmt.Errorf("reading Virtual Network Gateway (%s): %+v", state.ID, err) } - return nil + return utils.Bool(resp.ID != nil), nil } -func testAccAzureRMVirtualNetworkGateway_basic(data acceptance.TestData) string { +func (VirtualNetworkGatewayResource) basic(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} @@ -413,8 +319,7 @@ resource "azurerm_virtual_network_gateway" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.RandomInteger, data.RandomInteger) } -func testAccAzureRMVirtualNetworkGateway_requiresImport(data acceptance.TestData) string { - template := testAccAzureRMVirtualNetworkGateway_basic(data) +func (r VirtualNetworkGatewayResource) requiresImport(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -432,10 +337,10 @@ resource "azurerm_virtual_network_gateway" "import" { subnet_id = azurerm_subnet.test.id } } -`, template) +`, r.basic(data)) } -func testAccAzureRMVirtualNetworkGateway_lowerCaseSubnetName(data acceptance.TestData) string { +func (VirtualNetworkGatewayResource) lowerCaseSubnetName(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} @@ -485,7 +390,7 @@ resource "azurerm_virtual_network_gateway" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.RandomInteger, data.RandomInteger) } -func testAccAzureRMVirtualNetworkGateway_vpnGw1(data acceptance.TestData) string { +func (VirtualNetworkGatewayResource) vpnGw1(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} @@ -535,7 +440,7 @@ resource "azurerm_virtual_network_gateway" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.RandomInteger, data.RandomInteger) } -func testAccAzureRMVirtualNetworkGateway_activeActive(data acceptance.TestData) string { +func (VirtualNetworkGatewayResource) activeActive(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} @@ -613,7 +518,7 @@ resource "azurerm_virtual_network_gateway" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.RandomInteger, data.RandomInteger, data.RandomInteger) } -func testAccAzureRMVirtualNetworkGateway_vpnClientConfig(data acceptance.TestData) string { +func (VirtualNetworkGatewayResource) vpnClientConfig(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} @@ -672,7 +577,7 @@ resource "azurerm_virtual_network_gateway" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.RandomInteger, data.RandomInteger) } -func testAccAzureRMVirtualNetworkGateway_vpnClientConfigAzureAdAuth(data acceptance.TestData) string { +func (VirtualNetworkGatewayResource) vpnClientConfigAzureAdAuth(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} @@ -731,7 +636,7 @@ resource "azurerm_virtual_network_gateway" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.RandomInteger, data.RandomInteger, data.Client().TenantID, data.Client().TenantID) } -func testAccAzureRMVirtualNetworkGateway_vpnClientConfigOpenVPN(data acceptance.TestData) string { +func (VirtualNetworkGatewayResource) vpnClientConfigOpenVPN(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} @@ -787,7 +692,7 @@ resource "azurerm_virtual_network_gateway" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.RandomInteger, data.RandomInteger) } -func testAccAzureRMVirtualNetworkGateway_sku(data acceptance.TestData, sku string) string { +func (VirtualNetworkGatewayResource) sku(data acceptance.TestData, sku string) string { return fmt.Sprintf(` provider "azurerm" { features {} @@ -837,7 +742,7 @@ resource "azurerm_virtual_network_gateway" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.RandomInteger, data.RandomInteger, sku) } -func testAccAzureRMVirtualNetworkGateway_enableBgp(data acceptance.TestData) string { +func (VirtualNetworkGatewayResource) enableBgp(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} @@ -888,7 +793,7 @@ resource "azurerm_virtual_network_gateway" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.RandomInteger, data.RandomInteger) } -func testAccAzureRMVirtualNetworkGateway_expressRoute(data acceptance.TestData) string { +func (VirtualNetworkGatewayResource) expressRoute(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} @@ -938,7 +843,7 @@ resource "azurerm_virtual_network_gateway" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.RandomInteger, data.RandomInteger) } -func testAccAzureRMVirtualNetworkGateway_generation(data acceptance.TestData, generation string) string { +func (VirtualNetworkGatewayResource) generation(data acceptance.TestData, generation string) string { return fmt.Sprintf(` provider "azurerm" { features {} @@ -989,7 +894,7 @@ resource "azurerm_virtual_network_gateway" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.RandomInteger, data.RandomInteger, generation) } -func testAccAzureRMVirtualNetworkGateway_privateIpAddressEnabled(data acceptance.TestData) string { +func (VirtualNetworkGatewayResource) privateIpAddressEnabled(data acceptance.TestData) string { return fmt.Sprintf(` resource "azurerm_resource_group" "test" { name = "acctestRG-%d" @@ -1044,7 +949,7 @@ resource "azurerm_virtual_network_gateway" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.RandomInteger, data.RandomInteger) } -func testAccAzureRMVirtualNetworkGateway_privateIpAddressEnabledUpdate(data acceptance.TestData) string { +func (VirtualNetworkGatewayResource) privateIpAddressEnabledUpdate(data acceptance.TestData) string { return fmt.Sprintf(` resource "azurerm_resource_group" "test" { name = "acctestRG-%d" diff --git a/azurerm/internal/services/network/tests/virtual_network_peering_resource_test.go b/azurerm/internal/services/network/tests/virtual_network_peering_resource_test.go index 937d057bf32a..36701bb875fe 100644 --- a/azurerm/internal/services/network/tests/virtual_network_peering_resource_test.go +++ b/azurerm/internal/services/network/tests/virtual_network_peering_resource_test.go @@ -1,153 +1,129 @@ package tests import ( + "context" "fmt" - "net/http" "testing" + "github.com/terraform-providers/terraform-provider-azurerm/azurerm/helpers/azure" + "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils" + "github.com/hashicorp/terraform-plugin-sdk/helper/resource" "github.com/hashicorp/terraform-plugin-sdk/terraform" "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" ) -func TestAccAzureRMVirtualNetworkPeering_basic(t *testing.T) { +type VirtualNetworkPeeringResource struct { +} + +func TestAccVirtualNetworkPeering_basic(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_network_peering", "test1") + r := VirtualNetworkPeeringResource{} secondResourceName := "azurerm_virtual_network_peering.test2" - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkPeeringDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualNetworkPeering_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkPeeringExists(data.ResourceName), - testCheckAzureRMVirtualNetworkPeeringExists(secondResourceName), - resource.TestCheckResourceAttr(data.ResourceName, "allow_virtual_network_access", "true"), - resource.TestCheckResourceAttr(secondResourceName, "allow_virtual_network_access", "true"), - ), - }, - data.ImportStep(), + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(secondResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("allow_virtual_network_access").HasValue("true"), + resource.TestCheckResourceAttr(secondResourceName, "allow_virtual_network_access", "true"), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMVirtualNetworkPeering_requiresImport(t *testing.T) { +func TestAccVirtualNetworkPeering_requiresImport(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_network_peering", "test1") + r := VirtualNetworkPeeringResource{} secondResourceName := "azurerm_virtual_network_peering.test2" - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkPeeringDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualNetworkPeering_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkPeeringExists(data.ResourceName), - testCheckAzureRMVirtualNetworkPeeringExists(secondResourceName), - ), - }, - data.RequiresImportErrorStep(testAccAzureRMVirtualNetworkPeering_requiresImport), + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(secondResourceName).ExistsInAzure(r), + ), }, + data.RequiresImportErrorStep(r.requiresImport), }) } -func TestAccAzureRMVirtualNetworkPeering_disappears(t *testing.T) { +func TestAccVirtualNetworkPeering_disappears(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_network_peering", "test1") + r := VirtualNetworkPeeringResource{} secondResourceName := "azurerm_virtual_network_peering.test2" - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkPeeringDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualNetworkPeering_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkPeeringExists(data.ResourceName), - testCheckAzureRMVirtualNetworkPeeringExists(secondResourceName), - resource.TestCheckResourceAttr(data.ResourceName, "allow_virtual_network_access", "true"), - resource.TestCheckResourceAttr(secondResourceName, "allow_virtual_network_access", "true"), - testCheckAzureRMVirtualNetworkPeeringDisappears(data.ResourceName), - ), - ExpectNonEmptyPlan: true, - }, + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(secondResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("allow_virtual_network_access").HasValue("true"), + resource.TestCheckResourceAttr(secondResourceName, "allow_virtual_network_access", "true"), + testCheckVirtualNetworkPeeringDisappears(data.ResourceName), + ), + ExpectNonEmptyPlan: true, }, }) } -func TestAccAzureRMVirtualNetworkPeering_update(t *testing.T) { +func TestAccVirtualNetworkPeering_update(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_network_peering", "test1") + r := VirtualNetworkPeeringResource{} secondResourceName := "azurerm_virtual_network_peering.test2" - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkPeeringDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualNetworkPeering_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkPeeringExists(data.ResourceName), - testCheckAzureRMVirtualNetworkPeeringExists(secondResourceName), - resource.TestCheckResourceAttr(data.ResourceName, "allow_virtual_network_access", "true"), - resource.TestCheckResourceAttr(secondResourceName, "allow_virtual_network_access", "true"), - resource.TestCheckResourceAttr(data.ResourceName, "allow_forwarded_traffic", "false"), - resource.TestCheckResourceAttr(secondResourceName, "allow_forwarded_traffic", "false"), - ), - }, - - { - Config: testAccAzureRMVirtualNetworkPeering_basicUpdate(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkPeeringExists(data.ResourceName), - testCheckAzureRMVirtualNetworkPeeringExists(secondResourceName), - resource.TestCheckResourceAttr(data.ResourceName, "allow_virtual_network_access", "true"), - resource.TestCheckResourceAttr(secondResourceName, "allow_virtual_network_access", "true"), - resource.TestCheckResourceAttr(data.ResourceName, "allow_forwarded_traffic", "true"), - resource.TestCheckResourceAttr(secondResourceName, "allow_forwarded_traffic", "true"), - ), - }, + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(secondResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("allow_virtual_network_access").HasValue("true"), + resource.TestCheckResourceAttr(secondResourceName, "allow_virtual_network_access", "true"), + check.That(data.ResourceName).Key("allow_forwarded_traffic").HasValue("false"), + resource.TestCheckResourceAttr(secondResourceName, "allow_forwarded_traffic", "false"), + ), + }, + + { + Config: r.basicUpdate(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(secondResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("allow_virtual_network_access").HasValue("true"), + resource.TestCheckResourceAttr(secondResourceName, "allow_virtual_network_access", "true"), + check.That(data.ResourceName).Key("allow_forwarded_traffic").HasValue("true"), + resource.TestCheckResourceAttr(secondResourceName, "allow_forwarded_traffic", "true"), + ), }, }) } -func testCheckAzureRMVirtualNetworkPeeringExists(resourceName string) resource.TestCheckFunc { - return func(s *terraform.State) error { - client := acceptance.AzureProvider.Meta().(*clients.Client).Network.VnetPeeringsClient - ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext - - // Ensure we have enough information in state to look up in API - rs, ok := s.RootModule().Resources[resourceName] - if !ok { - return fmt.Errorf("Not found: %s", resourceName) - } - - name := rs.Primary.Attributes["name"] - vnetName := rs.Primary.Attributes["virtual_network_name"] - resourceGroup, hasResourceGroup := rs.Primary.Attributes["resource_group_name"] - if !hasResourceGroup { - return fmt.Errorf("Bad: no resource group found in state for virtual network peering: %s", name) - } - - // Ensure resource group/virtual network peering combination exists in API - resp, err := client.Get(ctx, resourceGroup, vnetName, name) - if err != nil { - return fmt.Errorf("Bad: Get on vnetPeeringsClient: %s", err) - } - - if resp.StatusCode == http.StatusNotFound { - return fmt.Errorf("Bad: Virtual Network Peering %q (resource group: %q) does not exist", name, resourceGroup) - } +func (t VirtualNetworkPeeringResource) Exists(ctx context.Context, clients *clients.Client, state *terraform.InstanceState) (*bool, error) { + id, err := azure.ParseAzureResourceID(state.ID) + if err != nil { + return nil, err + } + resGroup := id.ResourceGroup + vnetName := id.Path["virtualNetworks"] + name := id.Path["virtualNetworkPeerings"] - return nil + resp, err := clients.Network.VnetPeeringsClient.Get(ctx, resGroup, vnetName, name) + if err != nil { + return nil, fmt.Errorf("reading Virtual Network Peering (%s): %+v", id, err) } + + return utils.Bool(resp.ID != nil), nil } -func testCheckAzureRMVirtualNetworkPeeringDisappears(resourceName string) resource.TestCheckFunc { +func testCheckVirtualNetworkPeeringDisappears(resourceName string) resource.TestCheckFunc { return func(s *terraform.State) error { client := acceptance.AzureProvider.Meta().(*clients.Client).Network.VnetPeeringsClient ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext @@ -179,33 +155,7 @@ func testCheckAzureRMVirtualNetworkPeeringDisappears(resourceName string) resour } } -func testCheckAzureRMVirtualNetworkPeeringDestroy(s *terraform.State) error { - client := acceptance.AzureProvider.Meta().(*clients.Client).Network.VnetPeeringsClient - ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext - - for _, rs := range s.RootModule().Resources { - if rs.Type != "azurerm_virtual_network_peering" { - continue - } - - name := rs.Primary.Attributes["name"] - vnetName := rs.Primary.Attributes["virtual_network_name"] - resourceGroup := rs.Primary.Attributes["resource_group_name"] - - resp, err := client.Get(ctx, resourceGroup, vnetName, name) - if err != nil { - return nil - } - - if resp.StatusCode != http.StatusNotFound { - return fmt.Errorf("Virtual Network Peering sitll exists:\n%#v", resp.VirtualNetworkPeeringPropertiesFormat) - } - } - - return nil -} - -func testAccAzureRMVirtualNetworkPeering_basic(data acceptance.TestData) string { +func (VirtualNetworkPeeringResource) basic(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} @@ -248,8 +198,7 @@ resource "azurerm_virtual_network_peering" "test2" { `, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.RandomInteger, data.RandomInteger, data.RandomInteger) } -func testAccAzureRMVirtualNetworkPeering_requiresImport(data acceptance.TestData) string { - template := testAccAzureRMVirtualNetworkPeering_basic(data) +func (r VirtualNetworkPeeringResource) requiresImport(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -260,10 +209,10 @@ resource "azurerm_virtual_network_peering" "import" { remote_virtual_network_id = azurerm_virtual_network_peering.test1.remote_virtual_network_id allow_virtual_network_access = azurerm_virtual_network_peering.test1.allow_virtual_network_access } -`, template) +`, r.basic(data)) } -func testAccAzureRMVirtualNetworkPeering_basicUpdate(data acceptance.TestData) string { +func (VirtualNetworkPeeringResource) basicUpdate(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} diff --git a/azurerm/internal/services/network/tests/virtual_network_resource_test.go b/azurerm/internal/services/network/tests/virtual_network_resource_test.go index 9b5666a0f1ec..7ebfd14874ec 100644 --- a/azurerm/internal/services/network/tests/virtual_network_resource_test.go +++ b/azurerm/internal/services/network/tests/virtual_network_resource_test.go @@ -1,312 +1,264 @@ package tests import ( + "context" "fmt" - "net/http" "testing" "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/utils" ) -func TestAccAzureRMVirtualNetwork_basic(t *testing.T) { - data := acceptance.BuildTestData(t, "azurerm_virtual_network", "test") +type VirtualNetworkResource struct { +} - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualNetwork_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkExists(data.ResourceName), - resource.TestCheckResourceAttr(data.ResourceName, "subnet.#", "1"), - resource.TestCheckResourceAttrSet(data.ResourceName, "subnet.1472110187.id"), - ), - }, - data.ImportStep(), +func TestAccVirtualNetwork_basic(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_virtual_network", "test") + r := VirtualNetworkResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("subnet.#").HasValue("1"), + check.That(data.ResourceName).Key("subnet.1472110187.id").Exists(), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMVirtualNetwork_complete(t *testing.T) { +func TestAccVirtualNetwork_complete(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_network", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualNetwork_complete(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := VirtualNetworkResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.complete(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMVirtualNetwork_basicUpdated(t *testing.T) { +func TestAccVirtualNetwork_basicUpdated(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_network", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualNetwork_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkExists(data.ResourceName), - resource.TestCheckResourceAttr(data.ResourceName, "subnet.#", "1"), - resource.TestCheckResourceAttrSet(data.ResourceName, "subnet.1472110187.id"), - ), - }, - { - Config: testAccAzureRMVirtualNetwork_complete(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkExists(data.ResourceName), - resource.TestCheckResourceAttr(data.ResourceName, "subnet.#", "2"), - resource.TestCheckResourceAttrSet(data.ResourceName, "subnet.1472110187.id"), - ), - }, - data.ImportStep(), + r := VirtualNetworkResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("subnet.#").HasValue("1"), + check.That(data.ResourceName).Key("subnet.1472110187.id").Exists(), + ), + }, + { + Config: r.complete(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("subnet.#").HasValue("2"), + check.That(data.ResourceName).Key("subnet.1472110187.id").Exists(), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMVirtualNetwork_requiresImport(t *testing.T) { +func TestAccVirtualNetwork_requiresImport(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_network", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualNetwork_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkExists(data.ResourceName), - ), - }, - { - Config: testAccAzureRMVirtualNetwork_requiresImport(data), - ExpectError: acceptance.RequiresImportError("azurerm_virtual_network"), - }, + r := VirtualNetworkResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + { + Config: r.requiresImport(data), + ExpectError: acceptance.RequiresImportError("azurerm_virtual_network"), }, }) } -func TestAccAzureRMVirtualNetwork_ddosProtectionPlan(t *testing.T) { +func TestAccVirtualNetwork_ddosProtectionPlan(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_network", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualNetwork_ddosProtectionPlan(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkExists(data.ResourceName), - resource.TestCheckResourceAttr(data.ResourceName, "ddos_protection_plan.0.enable", "true"), - resource.TestCheckResourceAttrSet(data.ResourceName, "ddos_protection_plan.0.id"), - ), - }, - data.ImportStep(), + r := VirtualNetworkResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.ddosProtectionPlan(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("ddos_protection_plan.0.enable").HasValue("true"), + check.That(data.ResourceName).Key("ddos_protection_plan.0.id").Exists(), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMVirtualNetwork_disappears(t *testing.T) { +func TestAccVirtualNetwork_disappears(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_network", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualNetwork_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkExists(data.ResourceName), - testCheckAzureRMVirtualNetworkDisappears(data.ResourceName), - ), - ExpectNonEmptyPlan: true, - }, + r := VirtualNetworkResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + testCheckVirtualNetworkDisappears(data.ResourceName), + ), + ExpectNonEmptyPlan: true, }, }) } -func TestAccAzureRMVirtualNetwork_withTags(t *testing.T) { +func TestAccVirtualNetwork_withTags(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_network", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualNetwork_withTags(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkExists(data.ResourceName), - resource.TestCheckResourceAttr(data.ResourceName, "subnet.#", "1"), - resource.TestCheckResourceAttrSet(data.ResourceName, "subnet.1472110187.id"), - resource.TestCheckResourceAttr(data.ResourceName, "tags.%", "2"), - resource.TestCheckResourceAttr(data.ResourceName, "tags.environment", "Production"), - resource.TestCheckResourceAttr(data.ResourceName, "tags.cost_center", "MSFT"), - ), - }, - { - Config: testAccAzureRMVirtualNetwork_withTagsUpdated(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkExists(data.ResourceName), - resource.TestCheckResourceAttr(data.ResourceName, "subnet.#", "1"), - resource.TestCheckResourceAttrSet(data.ResourceName, "subnet.1472110187.id"), - resource.TestCheckResourceAttr(data.ResourceName, "tags.%", "1"), - resource.TestCheckResourceAttr(data.ResourceName, "tags.environment", "staging"), - ), - }, + r := VirtualNetworkResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.withTags(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("subnet.#").HasValue("1"), + check.That(data.ResourceName).Key("subnet.1472110187.id").Exists(), + check.That(data.ResourceName).Key("tags.%").HasValue("2"), + check.That(data.ResourceName).Key("tags.environment").HasValue("Production"), + check.That(data.ResourceName).Key("tags.cost_center").HasValue("MSFT"), + ), + }, + { + Config: r.withTagsUpdated(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("subnet.#").HasValue("1"), + check.That(data.ResourceName).Key("subnet.1472110187.id").Exists(), + check.That(data.ResourceName).Key("tags.%").HasValue("1"), + check.That(data.ResourceName).Key("tags.environment").HasValue("staging"), + ), }, }) } -func TestAccAzureRMVirtualNetwork_deleteSubnet(t *testing.T) { +func TestAccVirtualNetwork_deleteSubnet(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_network", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualNetwork_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMVirtualNetwork_noSubnet(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkExists(data.ResourceName), - resource.TestCheckResourceAttr(data.ResourceName, "subnet.#", "0"), - ), - }, - data.ImportStep(), + r := VirtualNetworkResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.noSubnet(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("subnet.#").HasValue("0"), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMVirtualNetwork_bgpCommunity(t *testing.T) { +func TestAccVirtualNetwork_bgpCommunity(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_network", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualNetwork_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMVirtualNetwork_bgpCommunity(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMVirtualNetwork_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := VirtualNetworkResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.bgpCommunity(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), }) } -func TestAccAzureRMVirtualNetwork_vmProtection(t *testing.T) { +func TestAccVirtualNetwork_vmProtection(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_network", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualNetworkDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualNetwork_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMVirtualNetwork_vmProtection(data, true), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMVirtualNetwork_vmProtection(data, false), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMVirtualNetwork_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualNetworkExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := VirtualNetworkResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.vmProtection(data, true), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.vmProtection(data, false), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func testCheckAzureRMVirtualNetworkExists(resourceName string) resource.TestCheckFunc { - return func(s *terraform.State) error { - client := acceptance.AzureProvider.Meta().(*clients.Client).Network.VnetClient - ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext - // Ensure we have enough information in state to look up in API - rs, ok := s.RootModule().Resources[resourceName] - if !ok { - return fmt.Errorf("Not found: %s", resourceName) - } - - virtualNetworkName := rs.Primary.Attributes["name"] - resourceGroup, hasResourceGroup := rs.Primary.Attributes["resource_group_name"] - if !hasResourceGroup { - return fmt.Errorf("Bad: no resource group found in state for virtual network: %s", virtualNetworkName) - } - - // Ensure resource group/virtual network combination exists in API - resp, err := client.Get(ctx, resourceGroup, virtualNetworkName, "") - if err != nil { - return fmt.Errorf("Bad: Get on vnetClient: %s", err) - } - - if resp.StatusCode == http.StatusNotFound { - return fmt.Errorf("Bad: Virtual Network %q (resource group: %q) does not exist", virtualNetworkName, resourceGroup) - } +func (t VirtualNetworkResource) Exists(ctx context.Context, clients *clients.Client, state *terraform.InstanceState) (*bool, error) { + id, err := azure.ParseAzureResourceID(state.ID) + if err != nil { + return nil, err + } + resGroup := id.ResourceGroup + name := id.Path["virtualNetworks"] - return nil + resp, err := clients.Network.VnetClient.Get(ctx, resGroup, name, "") + if err != nil { + return nil, fmt.Errorf("reading Virtual Network (%s): %+v", id, err) } + + return utils.Bool(resp.ID != nil), nil } -func testCheckAzureRMVirtualNetworkDisappears(resourceName string) resource.TestCheckFunc { +func testCheckVirtualNetworkDisappears(resourceName string) resource.TestCheckFunc { return func(s *terraform.State) error { client := acceptance.AzureProvider.Meta().(*clients.Client).Network.VnetClient ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext @@ -337,32 +289,7 @@ func testCheckAzureRMVirtualNetworkDisappears(resourceName string) resource.Test } } -func testCheckAzureRMVirtualNetworkDestroy(s *terraform.State) error { - client := acceptance.AzureProvider.Meta().(*clients.Client).Network.VnetClient - ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext - - for _, rs := range s.RootModule().Resources { - if rs.Type != "azurerm_virtual_network" { - continue - } - - name := rs.Primary.Attributes["name"] - resourceGroup := rs.Primary.Attributes["resource_group_name"] - - resp, err := client.Get(ctx, resourceGroup, name, "") - if err != nil { - return nil - } - - if resp.StatusCode != http.StatusNotFound { - return fmt.Errorf("Virtual Network still exists:\n%#v", resp.VirtualNetworkPropertiesFormat) - } - } - - return nil -} - -func testAccAzureRMVirtualNetwork_basic(data acceptance.TestData) string { +func (VirtualNetworkResource) basic(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} @@ -387,7 +314,7 @@ resource "azurerm_virtual_network" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomInteger) } -func testAccAzureRMVirtualNetwork_complete(data acceptance.TestData) string { +func (VirtualNetworkResource) complete(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} @@ -418,8 +345,7 @@ resource "azurerm_virtual_network" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomInteger) } -func testAccAzureRMVirtualNetwork_requiresImport(data acceptance.TestData) string { - template := testAccAzureRMVirtualNetwork_basic(data) +func (r VirtualNetworkResource) requiresImport(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -434,10 +360,10 @@ resource "azurerm_virtual_network" "import" { address_prefix = "10.0.1.0/24" } } -`, template) +`, r.basic(data)) } -func testAccAzureRMVirtualNetwork_ddosProtectionPlan(data acceptance.TestData) string { +func (VirtualNetworkResource) ddosProtectionPlan(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} @@ -473,7 +399,7 @@ resource "azurerm_virtual_network" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.RandomInteger) } -func testAccAzureRMVirtualNetwork_withTags(data acceptance.TestData) string { +func (VirtualNetworkResource) withTags(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} @@ -503,7 +429,7 @@ resource "azurerm_virtual_network" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomInteger) } -func testAccAzureRMVirtualNetwork_withTagsUpdated(data acceptance.TestData) string { +func (VirtualNetworkResource) withTagsUpdated(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} @@ -532,7 +458,7 @@ resource "azurerm_virtual_network" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomInteger) } -func testAccAzureRMVirtualNetwork_noSubnet(data acceptance.TestData) string { +func (VirtualNetworkResource) noSubnet(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} @@ -553,7 +479,7 @@ resource "azurerm_virtual_network" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomInteger) } -func testAccAzureRMVirtualNetwork_bgpCommunity(data acceptance.TestData) string { +func (VirtualNetworkResource) bgpCommunity(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} @@ -580,7 +506,7 @@ resource "azurerm_virtual_network" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomInteger) } -func testAccAzureRMVirtualNetwork_vmProtection(data acceptance.TestData, enabled bool) string { +func (VirtualNetworkResource) vmProtection(data acceptance.TestData, enabled bool) string { return fmt.Sprintf(` provider "azurerm" { features {} diff --git a/azurerm/internal/services/network/tests/virtual_wan_data_source_test.go b/azurerm/internal/services/network/tests/virtual_wan_data_source_test.go index 950d9b567f73..f3585c3efbad 100644 --- a/azurerm/internal/services/network/tests/virtual_wan_data_source_test.go +++ b/azurerm/internal/services/network/tests/virtual_wan_data_source_test.go @@ -6,28 +6,28 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/helper/resource" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/acceptance" + "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/acceptance/check" ) +type VirtualWanDataSource struct { +} + func TestAccDataSourceVirtualWan_basic(t *testing.T) { data := acceptance.BuildTestData(t, "data.azurerm_virtual_wan", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - Steps: []resource.TestStep{ - { - Config: testAccDataSourceVirtualWan_basic(data), - Check: resource.ComposeTestCheckFunc( - resource.TestCheckResourceAttrSet(data.ResourceName, "name"), - resource.TestCheckResourceAttrSet(data.ResourceName, "resource_group_name"), - ), - }, + r := VirtualWanDataSource{} + + data.DataSourceTest(t, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).Key("name").Exists(), + check.That(data.ResourceName).Key("resource_group_name").Exists(), + ), }, }) } -func testAccDataSourceVirtualWan_basic(data acceptance.TestData) string { - template := testAccDataSourceVirtualWan_template(data) +func (r VirtualWanDataSource) basic(data acceptance.TestData) string { return fmt.Sprintf(` %s resource "azurerm_virtual_wan" "test" { @@ -40,10 +40,10 @@ data "azurerm_virtual_wan" "test" { name = azurerm_virtual_wan.test.name resource_group_name = azurerm_virtual_wan.test.resource_group_name } -`, template) +`, r.template(data)) } -func testAccDataSourceVirtualWan_template(data acceptance.TestData) string { +func (VirtualWanDataSource) template(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} diff --git a/azurerm/internal/services/network/tests/virtual_wan_resource_test.go b/azurerm/internal/services/network/tests/virtual_wan_resource_test.go index f2ba972cced6..a9ff3f485d6f 100644 --- a/azurerm/internal/services/network/tests/virtual_wan_resource_test.go +++ b/azurerm/internal/services/network/tests/virtual_wan_resource_test.go @@ -1,136 +1,85 @@ package tests import ( + "context" "fmt" - "net/http" "testing" "github.com/hashicorp/terraform-plugin-sdk/helper/resource" "github.com/hashicorp/terraform-plugin-sdk/terraform" "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/network" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils" ) +type VirtualWanResource struct { +} + func TestAccAzureRMVirtualWan_basic(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_wan", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualWanDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualWan_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualWanExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := VirtualWanResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } func TestAccAzureRMVirtualWan_requiresImport(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_wan", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualWanDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualWan_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualWanExists(data.ResourceName), - ), - }, - { - Config: testAccAzureRMVirtualWan_requiresImport(data), - ExpectError: acceptance.RequiresImportError("azurerm_virtual_wan"), - }, + r := VirtualWanResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + { + Config: r.requiresImport(data), + ExpectError: acceptance.RequiresImportError("azurerm_virtual_wan"), }, }) } func TestAccAzureRMVirtualWan_complete(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_virtual_wan", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVirtualWanDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVirtualWan_complete(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVirtualWanExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := VirtualWanResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.complete(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func testCheckAzureRMVirtualWanDestroy(s *terraform.State) error { - client := acceptance.AzureProvider.Meta().(*clients.Client).Network.VirtualWanClient - ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext - - for _, rs := range s.RootModule().Resources { - if rs.Type != "azurerm_virtual_wan" { - continue - } - - name := rs.Primary.Attributes["name"] - resourceGroup := rs.Primary.Attributes["resource_group_name"] - - resp, err := client.Get(ctx, resourceGroup, name) - if err != nil { - if utils.ResponseWasNotFound(resp.Response) { - return nil - } - return err - } - - if resp.StatusCode != http.StatusNotFound { - return fmt.Errorf("Virtual WAN still exists:\n%+v", resp) - } +func (t VirtualWanResource) Exists(ctx context.Context, clients *clients.Client, state *terraform.InstanceState) (*bool, error) { + id, err := network.ParseVirtualWanID(state.ID) + if err != nil { + return nil, err } - return nil -} - -func testCheckAzureRMVirtualWanExists(resourceName string) resource.TestCheckFunc { - return func(s *terraform.State) error { - client := acceptance.AzureProvider.Meta().(*clients.Client).Network.VirtualWanClient - ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext - - // Ensure we have enough information in state to look up in API - rs, ok := s.RootModule().Resources[resourceName] - if !ok { - return fmt.Errorf("Not found: %s", resourceName) - } - - virtualWanName := rs.Primary.Attributes["name"] - resourceGroup, hasResourceGroup := rs.Primary.Attributes["resource_group_name"] - if !hasResourceGroup { - return fmt.Errorf("Bad: no resource group found in state for Virtual WAN: %s", virtualWanName) - } - - resp, err := client.Get(ctx, resourceGroup, virtualWanName) - if err != nil { - return fmt.Errorf("Bad: Get on virtualWanClient: %+v", err) - } - - if resp.StatusCode == http.StatusNotFound { - return fmt.Errorf("Bad: Virtual WAN %q (resource group: %q) does not exist", virtualWanName, resourceGroup) - } - - return nil + resp, err := clients.Network.VirtualWanClient.Get(ctx, id.ResourceGroup, id.Name) + if err != nil { + return nil, fmt.Errorf("reading Virtual WAN (%s): %+v", id, err) } + + return utils.Bool(resp.ID != nil), nil } -func testAccAzureRMVirtualWan_basic(data acceptance.TestData) string { +func (VirtualWanResource) basic(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} @@ -149,8 +98,7 @@ resource "azurerm_virtual_wan" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomInteger) } -func testAccAzureRMVirtualWan_requiresImport(data acceptance.TestData) string { - template := testAccAzureRMVirtualWan_basic(data) +func (r VirtualWanResource) requiresImport(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -159,10 +107,10 @@ resource "azurerm_virtual_wan" "import" { resource_group_name = azurerm_virtual_wan.test.resource_group_name location = azurerm_virtual_wan.test.location } -`, template) +`, r.basic(data)) } -func testAccAzureRMVirtualWan_complete(data acceptance.TestData) string { +func (VirtualWanResource) complete(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} diff --git a/azurerm/internal/services/network/tests/vpn_gateway_connection_resource_test.go b/azurerm/internal/services/network/tests/vpn_gateway_connection_resource_test.go index 261d8a0fada3..e4a5b70e575d 100644 --- a/azurerm/internal/services/network/tests/vpn_gateway_connection_resource_test.go +++ b/azurerm/internal/services/network/tests/vpn_gateway_connection_resource_test.go @@ -1,189 +1,133 @@ package tests import ( + "context" "fmt" "testing" - "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/services/network/parse" - "github.com/hashicorp/terraform-plugin-sdk/helper/resource" "github.com/hashicorp/terraform-plugin-sdk/terraform" "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/network/parse" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils" ) -func TestAccAzureRMVpnGatewayConnection_basic(t *testing.T) { - data := acceptance.BuildTestData(t, "azurerm_vpn_gateway_connection", "test") +type VPNGatewayConnectionResource struct { +} - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVpnGatewayConnectionDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVpnGatewayConnection_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVpnGatewayConnectionExists(data.ResourceName), - ), - }, - data.ImportStep(), +func TestAccVpnGatewayConnection_basic(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_vpn_gateway_connection", "test") + r := VPNGatewayConnectionResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMVpnGatewayConnection_complete(t *testing.T) { +func TestAccVpnGatewayConnection_complete(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_vpn_gateway_connection", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVpnGatewayConnectionDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVpnGatewayConnection_complete(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVpnGatewayConnectionExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := VPNGatewayConnectionResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.complete(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMVpnGatewayConnection_update(t *testing.T) { +func TestAccVpnGatewayConnection_update(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_vpn_gateway_connection", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVpnGatewayConnectionDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVpnGatewayConnection_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVpnGatewayConnectionExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMVpnGatewayConnection_complete(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVpnGatewayConnectionExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMVpnGatewayConnection_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVpnGatewayConnectionExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := VPNGatewayConnectionResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.complete(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), }) } -func TestAccAzureRMVpnGatewayConnection_customRouteTable(t *testing.T) { +func TestAccVpnGatewayConnection_customRouteTable(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_vpn_gateway_connection", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVpnGatewayConnectionDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVpnGatewayConnection_customRouteTable(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVpnGatewayConnectionExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMVpnGatewayConnection_customRouteTableUpdate(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVpnGatewayConnectionExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := VPNGatewayConnectionResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.customRouteTable(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), + { + Config: r.customRouteTableUpdate(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), }) } -func TestAccAzureRMVpnGatewayConnection_requiresImport(t *testing.T) { +func TestAccVpnGatewayConnection_requiresImport(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_vpn_gateway_connection", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVpnGatewayConnectionDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVpnGatewayConnection_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVpnGatewayConnectionExists(data.ResourceName), - ), - }, - data.RequiresImportErrorStep(testAccAzureRMVpnGatewayConnection_requiresImport), + r := VPNGatewayConnectionResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.RequiresImportErrorStep(r.requiresImport), }) } -func testCheckAzureRMVpnGatewayConnectionExists(resourceName string) resource.TestCheckFunc { - return func(s *terraform.State) error { - client := acceptance.AzureProvider.Meta().(*clients.Client).Network.VpnConnectionsClient - ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext - - rs, ok := s.RootModule().Resources[resourceName] - if !ok { - return fmt.Errorf("Vpn Gateway Connection not found: %s", resourceName) - } - - id, err := parse.VpnConnectionID(rs.Primary.ID) - if err != nil { - return err - } - - if resp, err := client.Get(ctx, id.ResourceGroup, id.VpnGatewayName, id.Name); err != nil { - if utils.ResponseWasNotFound(resp.Response) { - return fmt.Errorf("Vpn Gateway Connection %q (Resource Group %q / VPN Gateway %q) does not exist", id.Name, id.ResourceGroup, id.VpnGatewayName) - } - return fmt.Errorf("Getting on Network.VpnConnetions: %+v", err) - } - - return nil +func (t VPNGatewayConnectionResource) Exists(ctx context.Context, clients *clients.Client, state *terraform.InstanceState) (*bool, error) { + id, err := parse.VpnConnectionID(state.ID) + if err != nil { + return nil, err } -} -func testCheckAzureRMVpnGatewayConnectionDestroy(s *terraform.State) error { - client := acceptance.AzureProvider.Meta().(*clients.Client).Network.VpnConnectionsClient - ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext - - for _, rs := range s.RootModule().Resources { - if rs.Type != "azurerm_vpn_gateway_connection" { - continue - } - - id, err := parse.VpnConnectionID(rs.Primary.ID) - if err != nil { - return err - } - - resp, err := client.Get(ctx, id.ResourceGroup, id.VpnGatewayName, id.Name) - if err == nil { - return fmt.Errorf("Network.VpnConnetions still exists") - } - if !utils.ResponseWasNotFound(resp.Response) { - return fmt.Errorf("Getting on Network.VpnConnetions: %+v", err) - } - return nil + resp, err := clients.Network.VpnConnectionsClient.Get(ctx, id.ResourceGroup, id.VpnGatewayName, id.Name) + if err != nil { + return nil, fmt.Errorf("reading VPN Gateway Connnection (%s): %+v", id, err) } - return nil + return utils.Bool(resp.ID != nil), nil } -func testAccAzureRMVpnGatewayConnection_basic(data acceptance.TestData) string { - template := testAccAzureRMVpnGatewayConnection_template(data) +func (r VPNGatewayConnectionResource) basic(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -200,11 +144,10 @@ resource "azurerm_vpn_gateway_connection" "test" { vpn_site_link_id = azurerm_vpn_site.test.link[1].id } } -`, template, data.RandomInteger) +`, r.template(data), data.RandomInteger) } -func testAccAzureRMVpnGatewayConnection_complete(data acceptance.TestData) string { - template := testAccAzureRMVpnGatewayConnection_template(data) +func (r VPNGatewayConnectionResource) complete(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -221,11 +164,10 @@ resource "azurerm_vpn_gateway_connection" "test" { vpn_site_link_id = azurerm_vpn_site.test.link[1].id } } -`, template, data.RandomInteger) +`, r.template(data), data.RandomInteger) } -func testAccAzureRMVpnGatewayConnection_customRouteTable(data acceptance.TestData) string { - template := testAccAzureRMVpnGatewayConnection_template(data) +func (r VPNGatewayConnectionResource) customRouteTable(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -269,11 +211,10 @@ resource "azurerm_vpn_gateway_connection" "test" { vpn_site_link_id = azurerm_vpn_site.test.link[1].id } } -`, template, data.RandomInteger) +`, r.template(data), data.RandomInteger) } -func testAccAzureRMVpnGatewayConnection_customRouteTableUpdate(data acceptance.TestData) string { - template := testAccAzureRMVpnGatewayConnection_template(data) +func (r VPNGatewayConnectionResource) customRouteTableUpdate(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -322,11 +263,10 @@ resource "azurerm_vpn_gateway_connection" "test" { vpn_site_link_id = azurerm_vpn_site.test.link[1].id } } -`, template, data.RandomInteger) +`, r.template(data), data.RandomInteger) } -func testAccAzureRMVpnGatewayConnection_requiresImport(data acceptance.TestData) string { - template := testAccAzureRMVpnGatewayConnection_basic(data) +func (r VPNGatewayConnectionResource) requiresImport(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -343,10 +283,10 @@ resource "azurerm_vpn_gateway_connection" "import" { } } } -`, template) +`, r.basic(data)) } -func testAccAzureRMVpnGatewayConnection_template(data acceptance.TestData) string { +func (VPNGatewayConnectionResource) template(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} diff --git a/azurerm/internal/services/network/tests/vpn_gateway_resource_test.go b/azurerm/internal/services/network/tests/vpn_gateway_resource_test.go index 4fec6452bd24..3b1d9d8f57a7 100644 --- a/azurerm/internal/services/network/tests/vpn_gateway_resource_test.go +++ b/azurerm/internal/services/network/tests/vpn_gateway_resource_test.go @@ -1,189 +1,136 @@ package tests import ( + "context" "fmt" - "net/http" "testing" "github.com/hashicorp/terraform-plugin-sdk/helper/resource" "github.com/hashicorp/terraform-plugin-sdk/terraform" "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/network/parse" + "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils" ) -func TestAccAzureRMVPNGateway_basic(t *testing.T) { - data := acceptance.BuildTestData(t, "azurerm_vpn_gateway", "test") +type VPNGatewayResource struct { +} - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVPNGatewayDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVPNGateway_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVPNGatewayExists(data.ResourceName), - ), - }, - data.ImportStep(), +func TestAccVPNGateway_basic(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_vpn_gateway", "test") + r := VPNGatewayResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMVPNGateway_requiresImport(t *testing.T) { +func TestAccVPNGateway_requiresImport(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_vpn_gateway", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVPNGatewayDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVPNGateway_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVPNGatewayExists(data.ResourceName), - ), - }, - { - Config: testAccAzureRMVPNGateway_requiresImport(data), - ExpectError: acceptance.RequiresImportError("azurerm_vpn_gateway"), - }, + r := VPNGatewayResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + { + Config: r.requiresImport(data), + ExpectError: acceptance.RequiresImportError("azurerm_vpn_gateway"), }, }) } -func TestAccAzureRMVPNGateway_bgpSettings(t *testing.T) { +func TestAccVPNGateway_bgpSettings(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_vpn_gateway", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVPNGatewayDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVPNGateway_bgpSettings(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVPNGatewayExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := VPNGatewayResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.bgpSettings(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMVPNGateway_scaleUnit(t *testing.T) { +func TestAccVPNGateway_scaleUnit(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_vpn_gateway", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVPNGatewayDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVPNGateway_scaleUnit(data, 2), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVPNGatewayExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMVPNGateway_scaleUnit(data, 3), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVPNGatewayExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := VPNGatewayResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.scaleUnit(data, 2), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.scaleUnit(data, 3), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMVPNGateway_tags(t *testing.T) { +func TestAccVPNGateway_tags(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_vpn_gateway", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVPNGatewayDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVPNGateway_tags(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVPNGatewayExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMVPNGateway_tagsUpdated(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVPNGatewayExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMVPNGateway_tags(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVPNGatewayExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := VPNGatewayResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.tags(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.tagsUpdated(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.tags(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func testCheckAzureRMVPNGatewayExists(resourceName string) resource.TestCheckFunc { - return func(s *terraform.State) error { - client := acceptance.AzureProvider.Meta().(*clients.Client).Network.VpnGatewaysClient - ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext - - // Ensure we have enough information in state to look up in API - rs, ok := s.RootModule().Resources[resourceName] - if !ok { - return fmt.Errorf("Not found: %s", resourceName) - } - - resourceGroup := rs.Primary.Attributes["resource_group_name"] - name := rs.Primary.Attributes["name"] - - resp, err := client.Get(ctx, resourceGroup, name) - if err != nil { - return fmt.Errorf("Bad: Get on VpnGatewaysClient: %+v", err) - } - - if resp.StatusCode == http.StatusNotFound { - return fmt.Errorf("Bad: VPN Gateway %q does not exist in Resource Group %q", name, resourceGroup) - } - - return nil +func (t VPNGatewayResource) Exists(ctx context.Context, clients *clients.Client, state *terraform.InstanceState) (*bool, error) { + id, err := parse.VpnGatewayID(state.ID) + if err != nil { + return nil, err } -} - -func testCheckAzureRMVPNGatewayDestroy(s *terraform.State) error { - client := acceptance.AzureProvider.Meta().(*clients.Client).Network.VpnGatewaysClient - ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext - - for _, rs := range s.RootModule().Resources { - if rs.Type != "azurerm_vpn_gateway" { - continue - } - - resourceGroup := rs.Primary.Attributes["resource_group_name"] - name := rs.Primary.Attributes["name"] - - resp, err := client.Get(ctx, resourceGroup, name) - if err != nil { - return nil - } - if resp.StatusCode != http.StatusNotFound { - return fmt.Errorf("VPN Gateway still exists:\n%#v", resp.VpnGatewayProperties) - } + resp, err := clients.Network.VpnGatewaysClient.Get(ctx, id.ResourceGroup, id.Name) + if err != nil { + return nil, fmt.Errorf("reading VPN Gateway (%s): %+v", id, err) } - return nil + return utils.Bool(resp.ID != nil), nil } -func testAccAzureRMVPNGateway_basic(data acceptance.TestData) string { - template := testAccAzureRMVPNGateway_template(data) +func (r VPNGatewayResource) basic(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -193,11 +140,10 @@ resource "azurerm_vpn_gateway" "test" { resource_group_name = azurerm_resource_group.test.name virtual_hub_id = azurerm_virtual_hub.test.id } -`, template, data.RandomInteger) +`, r.template(data), data.RandomInteger) } -func testAccAzureRMVPNGateway_requiresImport(data acceptance.TestData) string { - template := testAccAzureRMVPNGateway_basic(data) +func (r VPNGatewayResource) requiresImport(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -207,11 +153,10 @@ resource "azurerm_vpn_gateway" "import" { resource_group_name = azurerm_vpn_gateway.test.resource_group_name virtual_hub_id = azurerm_vpn_gateway.test.virtual_hub_id } -`, template) +`, r.basic(data)) } -func testAccAzureRMVPNGateway_bgpSettings(data acceptance.TestData) string { - template := testAccAzureRMVPNGateway_template(data) +func (r VPNGatewayResource) bgpSettings(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -234,11 +179,10 @@ resource "azurerm_vpn_gateway" "test" { } } } -`, template, data.RandomInteger) +`, r.template(data), data.RandomInteger) } -func testAccAzureRMVPNGateway_scaleUnit(data acceptance.TestData, scaleUnit int) string { - template := testAccAzureRMVPNGateway_template(data) +func (r VPNGatewayResource) scaleUnit(data acceptance.TestData, scaleUnit int) string { return fmt.Sprintf(` %s @@ -249,11 +193,10 @@ resource "azurerm_vpn_gateway" "test" { virtual_hub_id = azurerm_virtual_hub.test.id scale_unit = %d } -`, template, data.RandomInteger, scaleUnit) +`, r.template(data), data.RandomInteger, scaleUnit) } -func testAccAzureRMVPNGateway_tags(data acceptance.TestData) string { - template := testAccAzureRMVPNGateway_template(data) +func (r VPNGatewayResource) tags(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -267,11 +210,10 @@ resource "azurerm_vpn_gateway" "test" { Hello = "World" } } -`, template, data.RandomInteger) +`, r.template(data), data.RandomInteger) } -func testAccAzureRMVPNGateway_tagsUpdated(data acceptance.TestData) string { - template := testAccAzureRMVPNGateway_template(data) +func (r VPNGatewayResource) tagsUpdated(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -286,10 +228,10 @@ resource "azurerm_vpn_gateway" "test" { Rick = "C-137" } } -`, template, data.RandomInteger) +`, r.template(data), data.RandomInteger) } -func testAccAzureRMVPNGateway_template(data acceptance.TestData) string { +func (VPNGatewayResource) template(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} diff --git a/azurerm/internal/services/network/tests/vpn_server_configuration_resource_test.go b/azurerm/internal/services/network/tests/vpn_server_configuration_resource_test.go index 4053e93ef0b4..11e2253a6998 100644 --- a/azurerm/internal/services/network/tests/vpn_server_configuration_resource_test.go +++ b/azurerm/internal/services/network/tests/vpn_server_configuration_resource_test.go @@ -1,253 +1,195 @@ package tests import ( + "context" "fmt" "testing" "github.com/hashicorp/terraform-plugin-sdk/helper/resource" "github.com/hashicorp/terraform-plugin-sdk/terraform" "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/network" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils" ) -func TestAccAzureRMVPNServerConfiguration_azureAD(t *testing.T) { - data := acceptance.BuildTestData(t, "azurerm_vpn_server_configuration", "test") +type VPNServerConfigurationResource struct { +} - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVPNServerConfigurationDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMAzureRMVPNServerConfiguration_azureAD(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVPNServerConfigurationExists(data.ResourceName), - ), - }, - data.ImportStep(), +func TestAccVPNServerConfiguration_azureAD(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_vpn_server_configuration", "test") + r := VPNServerConfigurationResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.azureAD(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMVPNServerConfiguration_certificate(t *testing.T) { +func TestAccVPNServerConfiguration_certificate(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_vpn_server_configuration", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVPNServerConfigurationDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMAzureRMVPNServerConfiguration_certificate(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVPNServerConfigurationExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMAzureRMVPNServerConfiguration_certificateUpdated(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVPNServerConfigurationExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := VPNServerConfigurationResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.certificate(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), + { + Config: r.certificateUpdated(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), }) } -func TestAccAzureRMVPNServerConfiguration_requiresImport(t *testing.T) { +func TestAccVPNServerConfiguration_requiresImport(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_vpn_server_configuration", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVPNServerConfigurationDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMAzureRMVPNServerConfiguration_certificate(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVPNServerConfigurationExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMAzureRMVPNServerConfiguration_requiresImport(data), - ExpectError: acceptance.RequiresImportError("azurerm_vpn_server_configuration"), - }, + r := VPNServerConfigurationResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.certificate(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.requiresImport(data), + ExpectError: acceptance.RequiresImportError("azurerm_vpn_server_configuration"), }, }) } -func TestAccAzureRMVPNServerConfiguration_radius(t *testing.T) { +func TestAccVPNServerConfiguration_radius(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_vpn_server_configuration", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVPNServerConfigurationDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMAzureRMVPNServerConfiguration_singleRadiusDeprecated(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVPNServerConfigurationExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := VPNServerConfigurationResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.singleRadiusDeprecated(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMVPNServerConfiguration_multipleRadius(t *testing.T) { +func TestAccVPNServerConfiguration_multipleRadius(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_vpn_server_configuration", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVPNServerConfigurationDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMAzureRMVPNServerConfiguration_singleRadiusDeprecated(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVPNServerConfigurationExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMAzureRMVPNServerConfiguration_singleRadius(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVPNServerConfigurationExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMAzureRMVPNServerConfiguration_multipleRadius(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVPNServerConfigurationExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMAzureRMVPNServerConfiguration_singleRadius(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVPNServerConfigurationExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMAzureRMVPNServerConfiguration_azureAD(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVPNServerConfigurationExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := VPNServerConfigurationResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.singleRadiusDeprecated(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.singleRadius(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.multipleRadius(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), + { + Config: r.singleRadius(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.azureAD(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), }) } -func TestAccAzureRMVPNServerConfiguration_multipleAuth(t *testing.T) { +func TestAccVPNServerConfiguration_multipleAuth(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_vpn_server_configuration", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVPNServerConfigurationDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMAzureRMVPNServerConfiguration_azureAD(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVPNServerConfigurationExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMAzureRMVPNServerConfiguration_certificate(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVPNServerConfigurationExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMAzureRMVPNServerConfiguration_singleRadius(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVPNServerConfigurationExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := VPNServerConfigurationResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.azureAD(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), + { + Config: r.certificate(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.singleRadius(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), }) } -func TestAccAzureRMVPNServerConfiguration_tags(t *testing.T) { +func TestAccVPNServerConfiguration_tags(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_vpn_server_configuration", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVPNServerConfigurationDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMAzureRMVPNServerConfiguration_tags(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVPNServerConfigurationExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := VPNServerConfigurationResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.tags(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func testCheckAzureRMVPNServerConfigurationExists(resourceName string) resource.TestCheckFunc { - return func(s *terraform.State) error { - client := acceptance.AzureProvider.Meta().(*clients.Client).Network.VpnServerConfigurationsClient - ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext - - rs, ok := s.RootModule().Resources[resourceName] - if !ok { - return fmt.Errorf("VPN Gateway Server Configuration not found: %s", resourceName) - } - - name := rs.Primary.Attributes["name"] - resourceGroup := rs.Primary.Attributes["resource_group_name"] - - if resp, err := client.Get(ctx, resourceGroup, name); err != nil { - if utils.ResponseWasNotFound(resp.Response) { - return fmt.Errorf("Bad: VPN Gateway Server Configurations %q (Resource Group %q) does not exist", name, resourceGroup) - } - - return fmt.Errorf("Bad: Get on network.VpnServerConfigurationsClient: %+v", err) - } - - return nil +func (t VPNServerConfigurationResource) Exists(ctx context.Context, clients *clients.Client, state *terraform.InstanceState) (*bool, error) { + id, err := network.ParseVpnServerConfigurationID(state.ID) + if err != nil { + return nil, err } -} - -func testCheckAzureRMVPNServerConfigurationDestroy(s *terraform.State) error { - client := acceptance.AzureProvider.Meta().(*clients.Client).Network.VpnServerConfigurationsClient - ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext - - for _, rs := range s.RootModule().Resources { - if rs.Type != "azurerm_vpn_server_configuration" { - continue - } - - name := rs.Primary.Attributes["name"] - resourceGroup := rs.Primary.Attributes["resource_group_name"] - - if resp, err := client.Get(ctx, resourceGroup, name); err != nil { - if !utils.ResponseWasNotFound(resp.Response) { - return fmt.Errorf("Bad: Get on network.VpnServerConfigurationsClient: %+v", err) - } - } - return nil + resp, err := clients.Network.VpnServerConfigurationsClient.Get(ctx, id.ResourceGroup, id.Name) + if err != nil { + return nil, fmt.Errorf("reading Vpn Server Configuration (%s): %+v", id, err) } - return nil + return utils.Bool(resp.ID != nil), nil } -func testAccAzureRMAzureRMVPNServerConfiguration_azureAD(data acceptance.TestData) string { - template := testAccAzureRMAzureRMVPNServerConfiguration_template(data) +func (r VPNServerConfigurationResource) azureAD(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -265,11 +207,10 @@ resource "azurerm_vpn_server_configuration" "test" { tenant = "https://login.microsoftonline.com/${data.azurerm_subscription.current.tenant_id}" } } -`, template, data.RandomInteger) +`, r.template(data), data.RandomInteger) } -func testAccAzureRMAzureRMVPNServerConfiguration_certificate(data acceptance.TestData) string { - template := testAccAzureRMAzureRMVPNServerConfiguration_template(data) +func (r VPNServerConfigurationResource) certificate(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -305,11 +246,10 @@ M/s/1JRtO3bDSzD9TazRVzn2oBqzSa8VgIo5C1nOnoAKJTlsClJKvIhnRlaLQqk= EOF } } -`, template, data.RandomInteger) +`, r.template(data), data.RandomInteger) } -func testAccAzureRMAzureRMVPNServerConfiguration_certificateUpdated(data acceptance.TestData) string { - template := testAccAzureRMAzureRMVPNServerConfiguration_template(data) +func (r VPNServerConfigurationResource) certificateUpdated(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -350,11 +290,10 @@ EOF thumbprint = "83FFBFC8848B5A5836C94D0112367E16148A286F" } } -`, template, data.RandomInteger) +`, r.template(data), data.RandomInteger) } -func testAccAzureRMAzureRMVPNServerConfiguration_singleRadiusDeprecated(data acceptance.TestData) string { - template := testAccAzureRMAzureRMVPNServerConfiguration_template(data) +func (r VPNServerConfigurationResource) singleRadiusDeprecated(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -395,11 +334,10 @@ EOF } } } -`, template, data.RandomInteger) +`, r.template(data), data.RandomInteger) } -func testAccAzureRMAzureRMVPNServerConfiguration_singleRadius(data acceptance.TestData) string { - template := testAccAzureRMAzureRMVPNServerConfiguration_template(data) +func (r VPNServerConfigurationResource) singleRadius(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -444,11 +382,10 @@ EOF } } } -`, template, data.RandomInteger) +`, r.template(data), data.RandomInteger) } -func testAccAzureRMAzureRMVPNServerConfiguration_multipleRadius(data acceptance.TestData) string { - template := testAccAzureRMAzureRMVPNServerConfiguration_template(data) +func (r VPNServerConfigurationResource) multipleRadius(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -499,11 +436,10 @@ EOF } } } -`, template, data.RandomInteger) +`, r.template(data), data.RandomInteger) } -func testAccAzureRMAzureRMVPNServerConfiguration_requiresImport(data acceptance.TestData) string { - template := testAccAzureRMAzureRMVPNServerConfiguration_certificate(data) +func (r VPNServerConfigurationResource) requiresImport(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -539,11 +475,10 @@ M/s/1JRtO3bDSzD9TazRVzn2oBqzSa8VgIo5C1nOnoAKJTlsClJKvIhnRlaLQqk= EOF } } -`, template) +`, r.certificate(data)) } -func testAccAzureRMAzureRMVPNServerConfiguration_tags(data acceptance.TestData) string { - template := testAccAzureRMAzureRMVPNServerConfiguration_template(data) +func (r VPNServerConfigurationResource) tags(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -583,10 +518,10 @@ EOF Hello = "World" } } -`, template, data.RandomInteger) +`, r.template(data), data.RandomInteger) } -func testAccAzureRMAzureRMVPNServerConfiguration_template(data acceptance.TestData) string { +func (VPNServerConfigurationResource) template(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} diff --git a/azurerm/internal/services/network/tests/vpn_site_resource_test.go b/azurerm/internal/services/network/tests/vpn_site_resource_test.go index 44656ec12c1f..875d5a6264ab 100644 --- a/azurerm/internal/services/network/tests/vpn_site_resource_test.go +++ b/azurerm/internal/services/network/tests/vpn_site_resource_test.go @@ -1,162 +1,111 @@ package tests import ( + "context" "fmt" "testing" "github.com/hashicorp/terraform-plugin-sdk/helper/resource" "github.com/hashicorp/terraform-plugin-sdk/terraform" "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/network/parse" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils" ) -func TestAccAzureRMVpnSite_basic(t *testing.T) { - data := acceptance.BuildTestData(t, "azurerm_vpn_site", "test") +type VPNSiteResource struct { +} - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVpnSiteDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVpnSite_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVpnSiteExists(data.ResourceName), - ), - }, - data.ImportStep(), +func TestAccVpnSite_basic(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_vpn_site", "test") + r := VPNSiteResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMVpnSite_complete(t *testing.T) { +func TestAccVpnSite_complete(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_vpn_site", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVpnSiteDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVpnSite_complete(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVpnSiteExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := VPNSiteResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.complete(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMVpnSite_update(t *testing.T) { +func TestAccVpnSite_update(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_vpn_site", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVpnSiteDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVpnSite_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVpnSiteExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMVpnSite_complete(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVpnSiteExists(data.ResourceName), - ), - }, - data.ImportStep(), - { - Config: testAccAzureRMVpnSite_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVpnSiteExists(data.ResourceName), - ), - }, - data.ImportStep(), + r := VPNSiteResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.complete(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMVpnSite_requiresImport(t *testing.T) { +func TestAccVpnSite_requiresImport(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_vpn_site", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMVpnSiteDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMVpnSite_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMVpnSiteExists(data.ResourceName), - ), - }, - data.RequiresImportErrorStep(testAccAzureRMVpnSite_requiresImport), + r := VPNSiteResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.RequiresImportErrorStep(r.requiresImport), }) } -func testCheckAzureRMVpnSiteExists(resourceName string) resource.TestCheckFunc { - return func(s *terraform.State) error { - client := acceptance.AzureProvider.Meta().(*clients.Client).Network.VpnSitesClient - ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext - - rs, ok := s.RootModule().Resources[resourceName] - if !ok { - return fmt.Errorf("Vpn Site not found: %s", resourceName) - } - - id, err := parse.VpnSiteID(rs.Primary.ID) - if err != nil { - return err - } - - if resp, err := client.Get(ctx, id.ResourceGroup, id.Name); err != nil { - if utils.ResponseWasNotFound(resp.Response) { - return fmt.Errorf("Vpn Site %q (Resource Group %q) does not exist", id.Name, id.ResourceGroup) - } - return fmt.Errorf("Getting on Network.VpnSites: %+v", err) - } - - return nil +func (t VPNSiteResource) Exists(ctx context.Context, clients *clients.Client, state *terraform.InstanceState) (*bool, error) { + id, err := parse.VpnSiteID(state.ID) + if err != nil { + return nil, err } -} -func testCheckAzureRMVpnSiteDestroy(s *terraform.State) error { - client := acceptance.AzureProvider.Meta().(*clients.Client).Network.VpnSitesClient - ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext - - for _, rs := range s.RootModule().Resources { - if rs.Type != "azurerm_vpn_site" { - continue - } - - id, err := parse.VpnSiteID(rs.Primary.ID) - if err != nil { - return err - } - - resp, err := client.Get(ctx, id.ResourceGroup, id.Name) - if err == nil { - return fmt.Errorf("Network.VpnSites still exists") - } - if !utils.ResponseWasNotFound(resp.Response) { - return fmt.Errorf("Getting on Network.VpnSites: %+v", err) - } - return nil + resp, err := clients.Network.VpnSitesClient.Get(ctx, id.ResourceGroup, id.Name) + if err != nil { + return nil, fmt.Errorf("reading VPN Site (%s): %+v", id, err) } - return nil + return utils.Bool(resp.ID != nil), nil } -func testAccAzureRMVpnSite_basic(data acceptance.TestData) string { - template := testAccAzureRMVpnSite_template(data) +func (r VPNSiteResource) basic(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -170,11 +119,10 @@ resource "azurerm_vpn_site" "test" { ip_address = "10.0.0.1" } } -`, template, data.RandomInteger) +`, r.template(data), data.RandomInteger) } -func testAccAzureRMVpnSite_complete(data acceptance.TestData) string { - template := testAccAzureRMVpnSite_template(data) +func (r VPNSiteResource) complete(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -204,11 +152,10 @@ resource "azurerm_vpn_site" "test" { fqdn = "foo.com" } } -`, template, data.RandomInteger) +`, r.template(data), data.RandomInteger) } -func testAccAzureRMVpnSite_requiresImport(data acceptance.TestData) string { - template := testAccAzureRMVpnSite_basic(data) +func (r VPNSiteResource) requiresImport(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -222,10 +169,10 @@ resource "azurerm_vpn_site" "import" { ip_address = "10.0.0.1" } } -`, template, data.RandomInteger) +`, r.basic(data), data.RandomInteger) } -func testAccAzureRMVpnSite_template(data acceptance.TestData) string { +func (VPNSiteResource) template(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} diff --git a/azurerm/internal/services/network/tests/web_application_firewall_policy_data_source_test.go b/azurerm/internal/services/network/tests/web_application_firewall_policy_data_source_test.go index 42f690a43a65..ac709df7da5f 100644 --- a/azurerm/internal/services/network/tests/web_application_firewall_policy_data_source_test.go +++ b/azurerm/internal/services/network/tests/web_application_firewall_policy_data_source_test.go @@ -6,30 +6,31 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/helper/resource" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/acceptance" + "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/acceptance/check" ) +type WebApplicationFirewallDataSource struct { +} + func TestAccDataSourceAzureRMWebApplicationFirewallPolicy_basic(t *testing.T) { data := acceptance.BuildTestData(t, "data.azurerm_web_application_firewall_policy", "test") + r := WebApplicationFirewallDataSource{} resourceGroupName := fmt.Sprintf("acctestRG-%d", data.RandomInteger) - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - Steps: []resource.TestStep{ - { - Config: testAccDataSourceAzureRMWebApplicationFirewallPolicyBasic(data), - Check: resource.ComposeTestCheckFunc( - resource.TestCheckResourceAttr(data.ResourceName, "name", fmt.Sprintf("acctestwafpolicy-%d", data.RandomInteger)), - resource.TestCheckResourceAttr(data.ResourceName, "resource_group_name", resourceGroupName), - resource.TestCheckResourceAttr(data.ResourceName, "tags.%", "1"), - resource.TestCheckResourceAttr(data.ResourceName, "tags.env", "test"), - ), - }, + data.DataSourceTest(t, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).Key("name").HasValue(fmt.Sprintf("acctestwafpolicy-%d", data.RandomInteger)), + check.That(data.ResourceName).Key("resource_group_name").HasValue(resourceGroupName), + check.That(data.ResourceName).Key("tags.%").HasValue("1"), + check.That(data.ResourceName).Key("tags.env").HasValue("test"), + ), }, }) } -func testAccDataSourceAzureRMWebApplicationFirewallPolicyBasic(data acceptance.TestData) string { +func (WebApplicationFirewallDataSource) basic(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -38,5 +39,5 @@ data "azurerm_web_application_firewall_policy" "test" { name = azurerm_web_application_firewall_policy.test.name } -`, testAccAzureRMWebApplicationFirewallPolicy_complete(data)) +`, WebApplicationFirewallResource{}.complete(data)) } diff --git a/azurerm/internal/services/network/tests/web_application_firewall_policy_resource_test.go b/azurerm/internal/services/network/tests/web_application_firewall_policy_resource_test.go index 474dc12947e2..bbb0c302b130 100644 --- a/azurerm/internal/services/network/tests/web_application_firewall_policy_resource_test.go +++ b/azurerm/internal/services/network/tests/web_application_firewall_policy_resource_test.go @@ -1,234 +1,196 @@ package tests import ( + "context" "fmt" "testing" "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/utils" ) -func TestAccAzureRMWebApplicationFirewallPolicy_basic(t *testing.T) { - data := acceptance.BuildTestData(t, "azurerm_web_application_firewall_policy", "test") +type WebApplicationFirewallResource struct { +} - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMWebApplicationFirewallPolicyDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMWebApplicationFirewallPolicy_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMWebApplicationFirewallPolicyExists(data.ResourceName), - ), - }, - data.ImportStep(), +func TestAccWebApplicationFirewallPolicy_basic(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_web_application_firewall_policy", "test") + r := WebApplicationFirewallResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMWebApplicationFirewallPolicy_complete(t *testing.T) { +func TestAccWebApplicationFirewallPolicy_complete(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_web_application_firewall_policy", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMWebApplicationFirewallPolicyDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMWebApplicationFirewallPolicy_complete(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMWebApplicationFirewallPolicyExists(data.ResourceName), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.#", "2"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.0.name", "Rule1"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.0.priority", "1"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.0.rule_type", "MatchRule"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.0.match_conditions.#", "1"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.0.match_conditions.0.match_variables.#", "1"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.0.match_conditions.0.match_variables.0.variable_name", "RemoteAddr"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.0.match_conditions.0.operator", "IPMatch"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.0.match_conditions.0.negation_condition", "false"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.0.match_conditions.0.match_values.#", "2"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.0.match_conditions.0.match_values.0", "192.168.1.0/24"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.0.match_conditions.0.match_values.1", "10.0.0.0/24"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.0.action", "Block"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.1.name", "Rule2"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.1.priority", "2"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.1.rule_type", "MatchRule"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.1.match_conditions.#", "2"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.1.match_conditions.0.match_variables.#", "1"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.1.match_conditions.0.match_variables.0.variable_name", "RemoteAddr"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.1.match_conditions.0.operator", "IPMatch"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.1.match_conditions.0.negation_condition", "false"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.1.match_conditions.0.match_values.#", "1"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.1.match_conditions.0.match_values.0", "192.168.1.0/24"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.1.match_conditions.1.match_variables.#", "1"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.1.match_conditions.1.match_variables.0.variable_name", "RequestHeaders"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.1.match_conditions.1.match_variables.0.selector", "UserAgent"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.1.match_conditions.1.operator", "Contains"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.1.match_conditions.1.negation_condition", "false"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.1.match_conditions.1.match_values.#", "1"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.1.match_conditions.1.match_values.0", "windows"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.1.action", "Block"), - resource.TestCheckResourceAttr(data.ResourceName, "managed_rules.#", "1"), - resource.TestCheckResourceAttr(data.ResourceName, "managed_rules.0.exclusion.#", "2"), - resource.TestCheckResourceAttr(data.ResourceName, "managed_rules.0.exclusion.0.match_variable", "RequestHeaderNames"), - resource.TestCheckResourceAttr(data.ResourceName, "managed_rules.0.exclusion.0.selector", "x-shared-secret"), - resource.TestCheckResourceAttr(data.ResourceName, "managed_rules.0.exclusion.0.selector_match_operator", "Equals"), - resource.TestCheckResourceAttr(data.ResourceName, "managed_rules.0.exclusion.1.match_variable", "RequestCookieNames"), - resource.TestCheckResourceAttr(data.ResourceName, "managed_rules.0.exclusion.1.selector", "too-much-fun"), - resource.TestCheckResourceAttr(data.ResourceName, "managed_rules.0.exclusion.1.selector_match_operator", "EndsWith"), - resource.TestCheckResourceAttr(data.ResourceName, "managed_rules.0.managed_rule_set.#", "1"), - resource.TestCheckResourceAttr(data.ResourceName, "managed_rules.0.managed_rule_set.0.type", "OWASP"), - resource.TestCheckResourceAttr(data.ResourceName, "managed_rules.0.managed_rule_set.0.version", "3.1"), - resource.TestCheckResourceAttr(data.ResourceName, "managed_rules.0.managed_rule_set.0.rule_group_override.#", "1"), - resource.TestCheckResourceAttr(data.ResourceName, "managed_rules.0.managed_rule_set.0.rule_group_override.0.rule_group_name", "REQUEST-920-PROTOCOL-ENFORCEMENT"), - resource.TestCheckResourceAttr(data.ResourceName, "managed_rules.0.managed_rule_set.0.rule_group_override.0.disabled_rules.#", "2"), - resource.TestCheckResourceAttr(data.ResourceName, "managed_rules.0.managed_rule_set.0.rule_group_override.0.disabled_rules.0", "920300"), - resource.TestCheckResourceAttr(data.ResourceName, "managed_rules.0.managed_rule_set.0.rule_group_override.0.disabled_rules.1", "920440"), - resource.TestCheckResourceAttr(data.ResourceName, "policy_settings.#", "1"), - resource.TestCheckResourceAttr(data.ResourceName, "policy_settings.0.enabled", "true"), - resource.TestCheckResourceAttr(data.ResourceName, "policy_settings.0.mode", "Prevention"), - resource.TestCheckResourceAttr(data.ResourceName, "policy_settings.0.request_body_check", "true"), - resource.TestCheckResourceAttr(data.ResourceName, "policy_settings.0.file_upload_limit_in_mb", "100"), - resource.TestCheckResourceAttr(data.ResourceName, "policy_settings.0.max_request_body_size_in_kb", "128"), - ), - }, - data.ImportStep(), + r := WebApplicationFirewallResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.complete(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("custom_rules.#").HasValue("2"), + check.That(data.ResourceName).Key("custom_rules.0.name").HasValue("Rule1"), + check.That(data.ResourceName).Key("custom_rules.0.priority").HasValue("1"), + check.That(data.ResourceName).Key("custom_rules.0.rule_type").HasValue("MatchRule"), + check.That(data.ResourceName).Key("custom_rules.0.match_conditions.#").HasValue("1"), + check.That(data.ResourceName).Key("custom_rules.0.match_conditions.0.match_variables.#").HasValue("1"), + check.That(data.ResourceName).Key("custom_rules.0.match_conditions.0.match_variables.0.variable_name").HasValue("RemoteAddr"), + check.That(data.ResourceName).Key("custom_rules.0.match_conditions.0.operator").HasValue("IPMatch"), + check.That(data.ResourceName).Key("custom_rules.0.match_conditions.0.negation_condition").HasValue("false"), + check.That(data.ResourceName).Key("custom_rules.0.match_conditions.0.match_values.#").HasValue("2"), + check.That(data.ResourceName).Key("custom_rules.0.match_conditions.0.match_values.0").HasValue("192.168.1.0/24"), + check.That(data.ResourceName).Key("custom_rules.0.match_conditions.0.match_values.1").HasValue("10.0.0.0/24"), + check.That(data.ResourceName).Key("custom_rules.0.action").HasValue("Block"), + check.That(data.ResourceName).Key("custom_rules.1.name").HasValue("Rule2"), + check.That(data.ResourceName).Key("custom_rules.1.priority").HasValue("2"), + check.That(data.ResourceName).Key("custom_rules.1.rule_type").HasValue("MatchRule"), + check.That(data.ResourceName).Key("custom_rules.1.match_conditions.#").HasValue("2"), + check.That(data.ResourceName).Key("custom_rules.1.match_conditions.0.match_variables.#").HasValue("1"), + check.That(data.ResourceName).Key("custom_rules.1.match_conditions.0.match_variables.0.variable_name").HasValue("RemoteAddr"), + check.That(data.ResourceName).Key("custom_rules.1.match_conditions.0.operator").HasValue("IPMatch"), + check.That(data.ResourceName).Key("custom_rules.1.match_conditions.0.negation_condition").HasValue("false"), + check.That(data.ResourceName).Key("custom_rules.1.match_conditions.0.match_values.#").HasValue("1"), + check.That(data.ResourceName).Key("custom_rules.1.match_conditions.0.match_values.0").HasValue("192.168.1.0/24"), + check.That(data.ResourceName).Key("custom_rules.1.match_conditions.1.match_variables.#").HasValue("1"), + check.That(data.ResourceName).Key("custom_rules.1.match_conditions.1.match_variables.0.variable_name").HasValue("RequestHeaders"), + check.That(data.ResourceName).Key("custom_rules.1.match_conditions.1.match_variables.0.selector").HasValue("UserAgent"), + check.That(data.ResourceName).Key("custom_rules.1.match_conditions.1.operator").HasValue("Contains"), + check.That(data.ResourceName).Key("custom_rules.1.match_conditions.1.negation_condition").HasValue("false"), + check.That(data.ResourceName).Key("custom_rules.1.match_conditions.1.match_values.#").HasValue("1"), + check.That(data.ResourceName).Key("custom_rules.1.match_conditions.1.match_values.0").HasValue("windows"), + check.That(data.ResourceName).Key("custom_rules.1.action").HasValue("Block"), + check.That(data.ResourceName).Key("managed_rules.#").HasValue("1"), + check.That(data.ResourceName).Key("managed_rules.0.exclusion.#").HasValue("2"), + check.That(data.ResourceName).Key("managed_rules.0.exclusion.0.match_variable").HasValue("RequestHeaderNames"), + check.That(data.ResourceName).Key("managed_rules.0.exclusion.0.selector").HasValue("x-shared-secret"), + check.That(data.ResourceName).Key("managed_rules.0.exclusion.0.selector_match_operator").HasValue("Equals"), + check.That(data.ResourceName).Key("managed_rules.0.exclusion.1.match_variable").HasValue("RequestCookieNames"), + check.That(data.ResourceName).Key("managed_rules.0.exclusion.1.selector").HasValue("too-much-fun"), + check.That(data.ResourceName).Key("managed_rules.0.exclusion.1.selector_match_operator").HasValue("EndsWith"), + check.That(data.ResourceName).Key("managed_rules.0.managed_rule_set.#").HasValue("1"), + check.That(data.ResourceName).Key("managed_rules.0.managed_rule_set.0.type").HasValue("OWASP"), + check.That(data.ResourceName).Key("managed_rules.0.managed_rule_set.0.version").HasValue("3.1"), + check.That(data.ResourceName).Key("managed_rules.0.managed_rule_set.0.rule_group_override.#").HasValue("1"), + check.That(data.ResourceName).Key("managed_rules.0.managed_rule_set.0.rule_group_override.0.rule_group_name").HasValue("REQUEST-920-PROTOCOL-ENFORCEMENT"), + check.That(data.ResourceName).Key("managed_rules.0.managed_rule_set.0.rule_group_override.0.disabled_rules.#").HasValue("2"), + check.That(data.ResourceName).Key("managed_rules.0.managed_rule_set.0.rule_group_override.0.disabled_rules.0").HasValue("920300"), + check.That(data.ResourceName).Key("managed_rules.0.managed_rule_set.0.rule_group_override.0.disabled_rules.1").HasValue("920440"), + check.That(data.ResourceName).Key("policy_settings.#").HasValue("1"), + check.That(data.ResourceName).Key("policy_settings.0.enabled").HasValue("true"), + check.That(data.ResourceName).Key("policy_settings.0.mode").HasValue("Prevention"), + check.That(data.ResourceName).Key("policy_settings.0.request_body_check").HasValue("true"), + check.That(data.ResourceName).Key("policy_settings.0.file_upload_limit_in_mb").HasValue("100"), + check.That(data.ResourceName).Key("policy_settings.0.max_request_body_size_in_kb").HasValue("128"), + ), }, + data.ImportStep(), }) } -func TestAccAzureRMWebApplicationFirewallPolicy_update(t *testing.T) { +func TestAccWebApplicationFirewallPolicy_update(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_web_application_firewall_policy", "test") - - resource.ParallelTest(t, resource.TestCase{ - PreCheck: func() { acceptance.PreCheck(t) }, - Providers: acceptance.SupportedProviders, - CheckDestroy: testCheckAzureRMWebApplicationFirewallPolicyDestroy, - Steps: []resource.TestStep{ - { - Config: testAccAzureRMWebApplicationFirewallPolicy_basic(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMWebApplicationFirewallPolicyExists(data.ResourceName), - ), - }, - { - Config: testAccAzureRMWebApplicationFirewallPolicy_complete(data), - Check: resource.ComposeTestCheckFunc( - testCheckAzureRMWebApplicationFirewallPolicyExists(data.ResourceName), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.#", "2"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.0.name", "Rule1"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.0.priority", "1"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.0.rule_type", "MatchRule"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.0.match_conditions.#", "1"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.0.match_conditions.0.match_variables.#", "1"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.0.match_conditions.0.match_variables.0.variable_name", "RemoteAddr"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.0.match_conditions.0.operator", "IPMatch"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.0.match_conditions.0.negation_condition", "false"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.0.match_conditions.0.match_values.#", "2"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.0.match_conditions.0.match_values.0", "192.168.1.0/24"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.0.match_conditions.0.match_values.1", "10.0.0.0/24"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.0.action", "Block"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.1.name", "Rule2"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.1.priority", "2"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.1.rule_type", "MatchRule"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.1.match_conditions.#", "2"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.1.match_conditions.0.match_variables.#", "1"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.1.match_conditions.0.match_variables.0.variable_name", "RemoteAddr"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.1.match_conditions.0.operator", "IPMatch"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.1.match_conditions.0.negation_condition", "false"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.1.match_conditions.0.match_values.#", "1"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.1.match_conditions.0.match_values.0", "192.168.1.0/24"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.1.match_conditions.1.match_variables.#", "1"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.1.match_conditions.1.match_variables.0.variable_name", "RequestHeaders"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.1.match_conditions.1.match_variables.0.selector", "UserAgent"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.1.match_conditions.1.operator", "Contains"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.1.match_conditions.1.negation_condition", "false"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.1.match_conditions.1.match_values.#", "1"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.1.match_conditions.1.match_values.0", "windows"), - resource.TestCheckResourceAttr(data.ResourceName, "custom_rules.1.action", "Block"), - resource.TestCheckResourceAttr(data.ResourceName, "managed_rules.#", "1"), - resource.TestCheckResourceAttr(data.ResourceName, "managed_rules.0.exclusion.#", "2"), - resource.TestCheckResourceAttr(data.ResourceName, "managed_rules.0.exclusion.0.match_variable", "RequestHeaderNames"), - resource.TestCheckResourceAttr(data.ResourceName, "managed_rules.0.exclusion.0.selector", "x-shared-secret"), - resource.TestCheckResourceAttr(data.ResourceName, "managed_rules.0.exclusion.0.selector_match_operator", "Equals"), - resource.TestCheckResourceAttr(data.ResourceName, "managed_rules.0.exclusion.1.match_variable", "RequestCookieNames"), - resource.TestCheckResourceAttr(data.ResourceName, "managed_rules.0.exclusion.1.selector", "too-much-fun"), - resource.TestCheckResourceAttr(data.ResourceName, "managed_rules.0.exclusion.1.selector_match_operator", "EndsWith"), - resource.TestCheckResourceAttr(data.ResourceName, "managed_rules.0.managed_rule_set.#", "1"), - resource.TestCheckResourceAttr(data.ResourceName, "managed_rules.0.managed_rule_set.0.type", "OWASP"), - resource.TestCheckResourceAttr(data.ResourceName, "managed_rules.0.managed_rule_set.0.version", "3.1"), - resource.TestCheckResourceAttr(data.ResourceName, "managed_rules.0.managed_rule_set.0.rule_group_override.#", "1"), - resource.TestCheckResourceAttr(data.ResourceName, "managed_rules.0.managed_rule_set.0.rule_group_override.0.rule_group_name", "REQUEST-920-PROTOCOL-ENFORCEMENT"), - resource.TestCheckResourceAttr(data.ResourceName, "managed_rules.0.managed_rule_set.0.rule_group_override.0.disabled_rules.#", "2"), - resource.TestCheckResourceAttr(data.ResourceName, "managed_rules.0.managed_rule_set.0.rule_group_override.0.disabled_rules.0", "920300"), - resource.TestCheckResourceAttr(data.ResourceName, "managed_rules.0.managed_rule_set.0.rule_group_override.0.disabled_rules.1", "920440"), - resource.TestCheckResourceAttr(data.ResourceName, "policy_settings.#", "1"), - resource.TestCheckResourceAttr(data.ResourceName, "policy_settings.0.enabled", "true"), - resource.TestCheckResourceAttr(data.ResourceName, "policy_settings.0.mode", "Prevention"), - resource.TestCheckResourceAttr(data.ResourceName, "policy_settings.0.request_body_check", "true"), - resource.TestCheckResourceAttr(data.ResourceName, "policy_settings.0.file_upload_limit_in_mb", "100"), - resource.TestCheckResourceAttr(data.ResourceName, "policy_settings.0.max_request_body_size_in_kb", "128"), - ), - }, - data.ImportStep(), + r := WebApplicationFirewallResource{} + + data.ResourceTest(t, r, []resource.TestStep{ + { + Config: r.basic(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + { + Config: r.complete(data), + Check: resource.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + check.That(data.ResourceName).Key("custom_rules.#").HasValue("2"), + check.That(data.ResourceName).Key("custom_rules.0.name").HasValue("Rule1"), + check.That(data.ResourceName).Key("custom_rules.0.priority").HasValue("1"), + check.That(data.ResourceName).Key("custom_rules.0.rule_type").HasValue("MatchRule"), + check.That(data.ResourceName).Key("custom_rules.0.match_conditions.#").HasValue("1"), + check.That(data.ResourceName).Key("custom_rules.0.match_conditions.0.match_variables.#").HasValue("1"), + check.That(data.ResourceName).Key("custom_rules.0.match_conditions.0.match_variables.0.variable_name").HasValue("RemoteAddr"), + check.That(data.ResourceName).Key("custom_rules.0.match_conditions.0.operator").HasValue("IPMatch"), + check.That(data.ResourceName).Key("custom_rules.0.match_conditions.0.negation_condition").HasValue("false"), + check.That(data.ResourceName).Key("custom_rules.0.match_conditions.0.match_values.#").HasValue("2"), + check.That(data.ResourceName).Key("custom_rules.0.match_conditions.0.match_values.0").HasValue("192.168.1.0/24"), + check.That(data.ResourceName).Key("custom_rules.0.match_conditions.0.match_values.1").HasValue("10.0.0.0/24"), + check.That(data.ResourceName).Key("custom_rules.0.action").HasValue("Block"), + check.That(data.ResourceName).Key("custom_rules.1.name").HasValue("Rule2"), + check.That(data.ResourceName).Key("custom_rules.1.priority").HasValue("2"), + check.That(data.ResourceName).Key("custom_rules.1.rule_type").HasValue("MatchRule"), + check.That(data.ResourceName).Key("custom_rules.1.match_conditions.#").HasValue("2"), + check.That(data.ResourceName).Key("custom_rules.1.match_conditions.0.match_variables.#").HasValue("1"), + check.That(data.ResourceName).Key("custom_rules.1.match_conditions.0.match_variables.0.variable_name").HasValue("RemoteAddr"), + check.That(data.ResourceName).Key("custom_rules.1.match_conditions.0.operator").HasValue("IPMatch"), + check.That(data.ResourceName).Key("custom_rules.1.match_conditions.0.negation_condition").HasValue("false"), + check.That(data.ResourceName).Key("custom_rules.1.match_conditions.0.match_values.#").HasValue("1"), + check.That(data.ResourceName).Key("custom_rules.1.match_conditions.0.match_values.0").HasValue("192.168.1.0/24"), + check.That(data.ResourceName).Key("custom_rules.1.match_conditions.1.match_variables.#").HasValue("1"), + check.That(data.ResourceName).Key("custom_rules.1.match_conditions.1.match_variables.0.variable_name").HasValue("RequestHeaders"), + check.That(data.ResourceName).Key("custom_rules.1.match_conditions.1.match_variables.0.selector").HasValue("UserAgent"), + check.That(data.ResourceName).Key("custom_rules.1.match_conditions.1.operator").HasValue("Contains"), + check.That(data.ResourceName).Key("custom_rules.1.match_conditions.1.negation_condition").HasValue("false"), + check.That(data.ResourceName).Key("custom_rules.1.match_conditions.1.match_values.#").HasValue("1"), + check.That(data.ResourceName).Key("custom_rules.1.match_conditions.1.match_values.0").HasValue("windows"), + check.That(data.ResourceName).Key("custom_rules.1.action").HasValue("Block"), + check.That(data.ResourceName).Key("managed_rules.#").HasValue("1"), + check.That(data.ResourceName).Key("managed_rules.0.exclusion.#").HasValue("2"), + check.That(data.ResourceName).Key("managed_rules.0.exclusion.0.match_variable").HasValue("RequestHeaderNames"), + check.That(data.ResourceName).Key("managed_rules.0.exclusion.0.selector").HasValue("x-shared-secret"), + check.That(data.ResourceName).Key("managed_rules.0.exclusion.0.selector_match_operator").HasValue("Equals"), + check.That(data.ResourceName).Key("managed_rules.0.exclusion.1.match_variable").HasValue("RequestCookieNames"), + check.That(data.ResourceName).Key("managed_rules.0.exclusion.1.selector").HasValue("too-much-fun"), + check.That(data.ResourceName).Key("managed_rules.0.exclusion.1.selector_match_operator").HasValue("EndsWith"), + check.That(data.ResourceName).Key("managed_rules.0.managed_rule_set.#").HasValue("1"), + check.That(data.ResourceName).Key("managed_rules.0.managed_rule_set.0.type").HasValue("OWASP"), + check.That(data.ResourceName).Key("managed_rules.0.managed_rule_set.0.version").HasValue("3.1"), + check.That(data.ResourceName).Key("managed_rules.0.managed_rule_set.0.rule_group_override.#").HasValue("1"), + check.That(data.ResourceName).Key("managed_rules.0.managed_rule_set.0.rule_group_override.0.rule_group_name").HasValue("REQUEST-920-PROTOCOL-ENFORCEMENT"), + check.That(data.ResourceName).Key("managed_rules.0.managed_rule_set.0.rule_group_override.0.disabled_rules.#").HasValue("2"), + check.That(data.ResourceName).Key("managed_rules.0.managed_rule_set.0.rule_group_override.0.disabled_rules.0").HasValue("920300"), + check.That(data.ResourceName).Key("managed_rules.0.managed_rule_set.0.rule_group_override.0.disabled_rules.1").HasValue("920440"), + check.That(data.ResourceName).Key("policy_settings.#").HasValue("1"), + check.That(data.ResourceName).Key("policy_settings.0.enabled").HasValue("true"), + check.That(data.ResourceName).Key("policy_settings.0.mode").HasValue("Prevention"), + check.That(data.ResourceName).Key("policy_settings.0.request_body_check").HasValue("true"), + check.That(data.ResourceName).Key("policy_settings.0.file_upload_limit_in_mb").HasValue("100"), + check.That(data.ResourceName).Key("policy_settings.0.max_request_body_size_in_kb").HasValue("128"), + ), }, + data.ImportStep(), }) } -func testCheckAzureRMWebApplicationFirewallPolicyExists(resourceName string) resource.TestCheckFunc { - return func(s *terraform.State) error { - client := acceptance.AzureProvider.Meta().(*clients.Client).Network.WebApplicationFirewallPoliciesClient - ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext - - rs, ok := s.RootModule().Resources[resourceName] - if !ok { - return fmt.Errorf("Web Application Firewall Policy not found: %s", resourceName) - } - - name := rs.Primary.Attributes["name"] - resourceGroup := rs.Primary.Attributes["resource_group_name"] - - if resp, err := client.Get(ctx, resourceGroup, name); err != nil { - if utils.ResponseWasNotFound(resp.Response) { - return fmt.Errorf("Bad: Web Application Firewall Policy %q (Resource Group %q) does not exist", name, resourceGroup) - } - return fmt.Errorf("Bad: Get on network.WebApplicationFirewallPoliciesClient: %+v", err) - } - - return nil +func (t WebApplicationFirewallResource) Exists(ctx context.Context, clients *clients.Client, state *terraform.InstanceState) (*bool, error) { + id, err := azure.ParseAzureResourceID(state.ID) + if err != nil { + return nil, err } -} - -func testCheckAzureRMWebApplicationFirewallPolicyDestroy(s *terraform.State) error { - client := acceptance.AzureProvider.Meta().(*clients.Client).Network.WebApplicationFirewallPoliciesClient - ctx := acceptance.AzureProvider.Meta().(*clients.Client).StopContext - - for _, rs := range s.RootModule().Resources { - if rs.Type != "azurerm_web_application_firewall_policy" { - continue - } - - name := rs.Primary.Attributes["name"] - resourceGroup := rs.Primary.Attributes["resource_group_name"] - - if resp, err := client.Get(ctx, resourceGroup, name); err != nil { - if !utils.ResponseWasNotFound(resp.Response) { - return fmt.Errorf("Bad: Get on network.WebApplicationFirewallPoliciesClient: %+v", err) - } - } + resGroup := id.ResourceGroup + name := id.Path["ApplicationGatewayWebApplicationFirewallPolicies"] - return nil + resp, err := clients.Network.WebApplicationFirewallPoliciesClient.Get(ctx, resGroup, name) + if err != nil { + return nil, fmt.Errorf("reading Web Application Firewall (%s): %+v", id, err) } - return nil + return utils.Bool(resp.ID != nil), nil } -func testAccAzureRMWebApplicationFirewallPolicy_basic(data acceptance.TestData) string { +func (WebApplicationFirewallResource) basic(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} @@ -260,7 +222,7 @@ resource "azurerm_web_application_firewall_policy" "test" { `, data.RandomInteger, data.Locations.Primary, data.RandomInteger) } -func testAccAzureRMWebApplicationFirewallPolicy_complete(data acceptance.TestData) string { +func (WebApplicationFirewallResource) complete(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { features {} diff --git a/azurerm/internal/services/network/virtual_hub_bgp_connection_resource.go b/azurerm/internal/services/network/virtual_hub_bgp_connection_resource.go index af47a851b594..92bffc1cc16e 100644 --- a/azurerm/internal/services/network/virtual_hub_bgp_connection_resource.go +++ b/azurerm/internal/services/network/virtual_hub_bgp_connection_resource.go @@ -18,11 +18,11 @@ import ( "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils" ) -func resourceArmVirtualHubBgpConnection() *schema.Resource { +func resourceVirtualHubBgpConnection() *schema.Resource { return &schema.Resource{ - Create: resourceArmVirtualHubBgpConnectionCreate, - Read: resourceArmVirtualHubBgpConnectionRead, - Delete: resourceArmVirtualHubBgpConnectionDelete, + Create: resourceVirtualHubBgpConnectionCreate, + Read: resourceVirtualHubBgpConnectionRead, + Delete: resourceVirtualHubBgpConnectionDelete, Timeouts: &schema.ResourceTimeout{ Create: schema.DefaultTimeout(30 * time.Minute), @@ -67,7 +67,7 @@ func resourceArmVirtualHubBgpConnection() *schema.Resource { } } -func resourceArmVirtualHubBgpConnectionCreate(d *schema.ResourceData, meta interface{}) error { +func resourceVirtualHubBgpConnectionCreate(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VirtualHubBgpConnectionClient ctx, cancel := timeouts.ForCreate(meta.(*clients.Client).StopContext, d) defer cancel() @@ -123,10 +123,10 @@ func resourceArmVirtualHubBgpConnectionCreate(d *schema.ResourceData, meta inter d.SetId(*resp.ID) - return resourceArmVirtualHubBgpConnectionRead(d, meta) + return resourceVirtualHubBgpConnectionRead(d, meta) } -func resourceArmVirtualHubBgpConnectionRead(d *schema.ResourceData, meta interface{}) error { +func resourceVirtualHubBgpConnectionRead(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VirtualHubBgpConnectionClient ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() @@ -158,7 +158,7 @@ func resourceArmVirtualHubBgpConnectionRead(d *schema.ResourceData, meta interfa return nil } -func resourceArmVirtualHubBgpConnectionDelete(d *schema.ResourceData, meta interface{}) error { +func resourceVirtualHubBgpConnectionDelete(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VirtualHubBgpConnectionClient ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d) defer cancel() diff --git a/azurerm/internal/services/network/virtual_hub_connection_resource.go b/azurerm/internal/services/network/virtual_hub_connection_resource.go index 2a56fac1e478..8b14ad462189 100644 --- a/azurerm/internal/services/network/virtual_hub_connection_resource.go +++ b/azurerm/internal/services/network/virtual_hub_connection_resource.go @@ -17,12 +17,12 @@ import ( "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils" ) -func resourceArmVirtualHubConnection() *schema.Resource { +func resourceVirtualHubConnection() *schema.Resource { return &schema.Resource{ - Create: resourceArmVirtualHubConnectionCreateOrUpdate, - Read: resourceArmVirtualHubConnectionRead, - Update: resourceArmVirtualHubConnectionCreateOrUpdate, - Delete: resourceArmVirtualHubConnectionDelete, + Create: resourceVirtualHubConnectionCreateOrUpdate, + Read: resourceVirtualHubConnectionRead, + Update: resourceVirtualHubConnectionCreateOrUpdate, + Delete: resourceVirtualHubConnectionDelete, Importer: &schema.ResourceImporter{ State: schema.ImportStatePassthrough, @@ -157,7 +157,7 @@ func resourceArmVirtualHubConnection() *schema.Resource { } } -func resourceArmVirtualHubConnectionCreateOrUpdate(d *schema.ResourceData, meta interface{}) error { +func resourceVirtualHubConnectionCreateOrUpdate(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.HubVirtualNetworkConnectionClient ctx, cancel := timeouts.ForCreate(meta.(*clients.Client).StopContext, d) defer cancel() @@ -195,7 +195,7 @@ func resourceArmVirtualHubConnectionCreateOrUpdate(d *schema.ResourceData, meta } if v, ok := d.GetOk("routing"); ok { - connection.HubVirtualNetworkConnectionProperties.RoutingConfiguration = expandArmVirtualHubConnectionRouting(v.([]interface{})) + connection.HubVirtualNetworkConnectionProperties.RoutingConfiguration = expandVirtualHubConnectionRouting(v.([]interface{})) } future, err := client.CreateOrUpdate(ctx, id.ResourceGroup, id.Name, name, connection) @@ -216,10 +216,10 @@ func resourceArmVirtualHubConnectionCreateOrUpdate(d *schema.ResourceData, meta } d.SetId(*resp.ID) - return resourceArmVirtualHubConnectionRead(d, meta) + return resourceVirtualHubConnectionRead(d, meta) } -func resourceArmVirtualHubConnectionRead(d *schema.ResourceData, meta interface{}) error { +func resourceVirtualHubConnectionRead(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.HubVirtualNetworkConnectionClient ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() @@ -256,7 +256,7 @@ func resourceArmVirtualHubConnectionRead(d *schema.ResourceData, meta interface{ } d.Set("remote_virtual_network_id", remoteVirtualNetworkId) - if err := d.Set("routing", flattenArmVirtualHubConnectionRouting(props.RoutingConfiguration)); err != nil { + if err := d.Set("routing", flattenVirtualHubConnectionRouting(props.RoutingConfiguration)); err != nil { return fmt.Errorf("setting `routing`: %+v", err) } } @@ -264,7 +264,7 @@ func resourceArmVirtualHubConnectionRead(d *schema.ResourceData, meta interface{ return nil } -func resourceArmVirtualHubConnectionDelete(d *schema.ResourceData, meta interface{}) error { +func resourceVirtualHubConnectionDelete(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.HubVirtualNetworkConnectionClient ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d) defer cancel() @@ -289,7 +289,7 @@ func resourceArmVirtualHubConnectionDelete(d *schema.ResourceData, meta interfac return nil } -func expandArmVirtualHubConnectionRouting(input []interface{}) *network.RoutingConfiguration { +func expandVirtualHubConnectionRouting(input []interface{}) *network.RoutingConfiguration { if len(input) == 0 { return &network.RoutingConfiguration{} } @@ -304,17 +304,17 @@ func expandArmVirtualHubConnectionRouting(input []interface{}) *network.RoutingC } if vnetStaticRoute := v["static_vnet_route"].([]interface{}); len(vnetStaticRoute) != 0 { - result.VnetRoutes = expandArmVirtualHubConnectionVnetStaticRoute(vnetStaticRoute) + result.VnetRoutes = expandVirtualHubConnectionVnetStaticRoute(vnetStaticRoute) } if propagatedRouteTable := v["propagated_route_table"].([]interface{}); len(propagatedRouteTable) != 0 { - result.PropagatedRouteTables = expandArmVirtualHubConnectionPropagatedRouteTable(propagatedRouteTable) + result.PropagatedRouteTables = expandVirtualHubConnectionPropagatedRouteTable(propagatedRouteTable) } return &result } -func expandArmVirtualHubConnectionPropagatedRouteTable(input []interface{}) *network.PropagatedRouteTable { +func expandVirtualHubConnectionPropagatedRouteTable(input []interface{}) *network.PropagatedRouteTable { if len(input) == 0 { return &network.PropagatedRouteTable{} } @@ -334,7 +334,7 @@ func expandArmVirtualHubConnectionPropagatedRouteTable(input []interface{}) *net return &result } -func expandArmVirtualHubConnectionVnetStaticRoute(input []interface{}) *network.VnetRoute { +func expandVirtualHubConnectionVnetStaticRoute(input []interface{}) *network.VnetRoute { if len(input) == 0 { return &network.VnetRoute{} } @@ -378,7 +378,7 @@ func expandIDsToSubResources(input []interface{}) *[]network.SubResource { return &ids } -func flattenArmVirtualHubConnectionRouting(input *network.RoutingConfiguration) []interface{} { +func flattenVirtualHubConnectionRouting(input *network.RoutingConfiguration) []interface{} { if input == nil { return []interface{}{} } @@ -391,13 +391,13 @@ func flattenArmVirtualHubConnectionRouting(input *network.RoutingConfiguration) return []interface{}{ map[string]interface{}{ "associated_route_table_id": associatedRouteTableId, - "propagated_route_table": flattenArmVirtualHubConnectionPropagatedRouteTable(input.PropagatedRouteTables), - "static_vnet_route": flattenArmVirtualHubConnectionVnetStaticRoute(input.VnetRoutes), + "propagated_route_table": flattenVirtualHubConnectionPropagatedRouteTable(input.PropagatedRouteTables), + "static_vnet_route": flattenVirtualHubConnectionVnetStaticRoute(input.VnetRoutes), }, } } -func flattenArmVirtualHubConnectionPropagatedRouteTable(input *network.PropagatedRouteTable) []interface{} { +func flattenVirtualHubConnectionPropagatedRouteTable(input *network.PropagatedRouteTable) []interface{} { if input == nil { return make([]interface{}, 0) } @@ -420,7 +420,7 @@ func flattenArmVirtualHubConnectionPropagatedRouteTable(input *network.Propagate } } -func flattenArmVirtualHubConnectionVnetStaticRoute(input *network.VnetRoute) []interface{} { +func flattenVirtualHubConnectionVnetStaticRoute(input *network.VnetRoute) []interface{} { results := make([]interface{}, 0) if input == nil || input.StaticRoutes == nil { return results diff --git a/azurerm/internal/services/network/virtual_hub_data_source.go b/azurerm/internal/services/network/virtual_hub_data_source.go index 024227463b94..d6be906cfb5e 100644 --- a/azurerm/internal/services/network/virtual_hub_data_source.go +++ b/azurerm/internal/services/network/virtual_hub_data_source.go @@ -12,9 +12,9 @@ import ( "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils" ) -func dataSourceArmVirtualHub() *schema.Resource { +func dataSourceVirtualHub() *schema.Resource { return &schema.Resource{ - Read: dataSourceArmVirtualHubRead, + Read: dataSourceVirtualHubRead, Timeouts: &schema.ResourceTimeout{ Read: schema.DefaultTimeout(5 * time.Minute), @@ -46,7 +46,7 @@ func dataSourceArmVirtualHub() *schema.Resource { } } -func dataSourceArmVirtualHubRead(d *schema.ResourceData, meta interface{}) error { +func dataSourceVirtualHubRead(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VirtualHubClient ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() diff --git a/azurerm/internal/services/network/virtual_hub_ip_resource.go b/azurerm/internal/services/network/virtual_hub_ip_resource.go index 77ebfe095459..cc7ec2c77389 100644 --- a/azurerm/internal/services/network/virtual_hub_ip_resource.go +++ b/azurerm/internal/services/network/virtual_hub_ip_resource.go @@ -18,12 +18,12 @@ import ( "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils" ) -func resourceArmVirtualHubIP() *schema.Resource { +func resourceVirtualHubIP() *schema.Resource { return &schema.Resource{ - Create: resourceArmVirtualHubIPCreateUpdate, - Read: resourceArmVirtualHubIPRead, - Update: resourceArmVirtualHubIPCreateUpdate, - Delete: resourceArmVirtualHubIPDelete, + Create: resourceVirtualHubIPCreateUpdate, + Read: resourceVirtualHubIPRead, + Update: resourceVirtualHubIPCreateUpdate, + Delete: resourceVirtualHubIPDelete, Timeouts: &schema.ResourceTimeout{ Create: schema.DefaultTimeout(60 * time.Minute), @@ -84,7 +84,7 @@ func resourceArmVirtualHubIP() *schema.Resource { } } -func resourceArmVirtualHubIPCreateUpdate(d *schema.ResourceData, meta interface{}) error { +func resourceVirtualHubIPCreateUpdate(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VirtualHubIPClient ctx, cancel := timeouts.ForCreateUpdate(meta.(*clients.Client).StopContext, d) defer cancel() @@ -155,10 +155,10 @@ func resourceArmVirtualHubIPCreateUpdate(d *schema.ResourceData, meta interface{ d.SetId(*resp.ID) - return resourceArmVirtualHubIPRead(d, meta) + return resourceVirtualHubIPRead(d, meta) } -func resourceArmVirtualHubIPRead(d *schema.ResourceData, meta interface{}) error { +func resourceVirtualHubIPRead(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VirtualHubIPClient ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() @@ -198,7 +198,7 @@ func resourceArmVirtualHubIPRead(d *schema.ResourceData, meta interface{}) error return nil } -func resourceArmVirtualHubIPDelete(d *schema.ResourceData, meta interface{}) error { +func resourceVirtualHubIPDelete(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VirtualHubIPClient ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d) defer cancel() diff --git a/azurerm/internal/services/network/virtual_hub_resource.go b/azurerm/internal/services/network/virtual_hub_resource.go index d9fe8df1e0fd..8db58927ac81 100644 --- a/azurerm/internal/services/network/virtual_hub_resource.go +++ b/azurerm/internal/services/network/virtual_hub_resource.go @@ -24,12 +24,12 @@ import ( const virtualHubResourceName = "azurerm_virtual_hub" -func resourceArmVirtualHub() *schema.Resource { +func resourceVirtualHub() *schema.Resource { return &schema.Resource{ - Create: resourceArmVirtualHubCreateUpdate, - Read: resourceArmVirtualHubRead, - Update: resourceArmVirtualHubCreateUpdate, - Delete: resourceArmVirtualHubDelete, + Create: resourceVirtualHubCreateUpdate, + Read: resourceVirtualHubRead, + Update: resourceVirtualHubCreateUpdate, + Delete: resourceVirtualHubDelete, Importer: &schema.ResourceImporter{ State: schema.ImportStatePassthrough, @@ -105,7 +105,7 @@ func resourceArmVirtualHub() *schema.Resource { } } -func resourceArmVirtualHubCreateUpdate(d *schema.ResourceData, meta interface{}) error { +func resourceVirtualHubCreateUpdate(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VirtualHubClient ctx, cancel := timeouts.ForCreateUpdate(meta.(*clients.Client).StopContext, d) defer cancel() @@ -139,7 +139,7 @@ func resourceArmVirtualHubCreateUpdate(d *schema.ResourceData, meta interface{}) parameters := network.VirtualHub{ Location: utils.String(location), VirtualHubProperties: &network.VirtualHubProperties{ - RouteTable: expandArmVirtualHubRoute(route), + RouteTable: expandVirtualHubRoute(route), }, Tags: tags.Expand(t), } @@ -192,10 +192,10 @@ func resourceArmVirtualHubCreateUpdate(d *schema.ResourceData, meta interface{}) } d.SetId(*resp.ID) - return resourceArmVirtualHubRead(d, meta) + return resourceVirtualHubRead(d, meta) } -func resourceArmVirtualHubRead(d *schema.ResourceData, meta interface{}) error { +func resourceVirtualHubRead(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VirtualHubClient ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() @@ -224,7 +224,7 @@ func resourceArmVirtualHubRead(d *schema.ResourceData, meta interface{}) error { d.Set("address_prefix", props.AddressPrefix) d.Set("sku", props.Sku) - if err := d.Set("route", flattenArmVirtualHubRoute(props.RouteTable)); err != nil { + if err := d.Set("route", flattenVirtualHubRoute(props.RouteTable)); err != nil { return fmt.Errorf("Error setting `route`: %+v", err) } @@ -238,7 +238,7 @@ func resourceArmVirtualHubRead(d *schema.ResourceData, meta interface{}) error { return tags.FlattenAndSet(d, resp.Tags) } -func resourceArmVirtualHubDelete(d *schema.ResourceData, meta interface{}) error { +func resourceVirtualHubDelete(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VirtualHubClient ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d) defer cancel() @@ -265,7 +265,7 @@ func resourceArmVirtualHubDelete(d *schema.ResourceData, meta interface{}) error return nil } -func expandArmVirtualHubRoute(input []interface{}) *network.VirtualHubRouteTable { +func expandVirtualHubRoute(input []interface{}) *network.VirtualHubRouteTable { if len(input) == 0 { return nil } @@ -293,7 +293,7 @@ func expandArmVirtualHubRoute(input []interface{}) *network.VirtualHubRouteTable return &result } -func flattenArmVirtualHubRoute(input *network.VirtualHubRouteTable) []interface{} { +func flattenVirtualHubRoute(input *network.VirtualHubRouteTable) []interface{} { results := make([]interface{}, 0) if input == nil || input.Routes == nil { return results diff --git a/azurerm/internal/services/network/virtual_hub_route_table_resource.go b/azurerm/internal/services/network/virtual_hub_route_table_resource.go index 28d54e33794a..aa6b977591a5 100644 --- a/azurerm/internal/services/network/virtual_hub_route_table_resource.go +++ b/azurerm/internal/services/network/virtual_hub_route_table_resource.go @@ -19,12 +19,12 @@ import ( "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils" ) -func resourceArmVirtualHubRouteTable() *schema.Resource { +func resourceVirtualHubRouteTable() *schema.Resource { return &schema.Resource{ - Create: resourceArmVirtualHubRouteTableCreateUpdate, - Read: resourceArmVirtualHubRouteTableRead, - Update: resourceArmVirtualHubRouteTableCreateUpdate, - Delete: resourceArmVirtualHubRouteTableDelete, + Create: resourceVirtualHubRouteTableCreateUpdate, + Read: resourceVirtualHubRouteTableRead, + Update: resourceVirtualHubRouteTableCreateUpdate, + Delete: resourceVirtualHubRouteTableDelete, Timeouts: &schema.ResourceTimeout{ Create: schema.DefaultTimeout(30 * time.Minute), @@ -112,7 +112,7 @@ func resourceArmVirtualHubRouteTable() *schema.Resource { } } -func resourceArmVirtualHubRouteTableCreateUpdate(d *schema.ResourceData, meta interface{}) error { +func resourceVirtualHubRouteTableCreateUpdate(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.HubRouteTableClient ctx, cancel := timeouts.ForCreateUpdate(meta.(*clients.Client).StopContext, d) defer cancel() @@ -144,7 +144,7 @@ func resourceArmVirtualHubRouteTableCreateUpdate(d *schema.ResourceData, meta in Name: utils.String(d.Get("name").(string)), HubRouteTableProperties: &network.HubRouteTableProperties{ Labels: utils.ExpandStringSlice(d.Get("labels").(*schema.Set).List()), - Routes: expandArmVirtualHubRouteTableHubRoutes(d.Get("route").(*schema.Set).List()), + Routes: expandVirtualHubRouteTableHubRoutes(d.Get("route").(*schema.Set).List()), }, } @@ -168,10 +168,10 @@ func resourceArmVirtualHubRouteTableCreateUpdate(d *schema.ResourceData, meta in d.SetId(*resp.ID) - return resourceArmVirtualHubRouteTableRead(d, meta) + return resourceVirtualHubRouteTableRead(d, meta) } -func resourceArmVirtualHubRouteTableRead(d *schema.ResourceData, meta interface{}) error { +func resourceVirtualHubRouteTableRead(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.HubRouteTableClient ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() @@ -198,14 +198,14 @@ func resourceArmVirtualHubRouteTableRead(d *schema.ResourceData, meta interface{ if props := resp.HubRouteTableProperties; props != nil { d.Set("labels", utils.FlattenStringSlice(props.Labels)) - if err := d.Set("route", flattenArmVirtualHubRouteTableHubRoutes(props.Routes)); err != nil { + if err := d.Set("route", flattenVirtualHubRouteTableHubRoutes(props.Routes)); err != nil { return fmt.Errorf("setting `route`: %+v", err) } } return nil } -func resourceArmVirtualHubRouteTableDelete(d *schema.ResourceData, meta interface{}) error { +func resourceVirtualHubRouteTableDelete(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.HubRouteTableClient ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d) defer cancel() @@ -230,7 +230,7 @@ func resourceArmVirtualHubRouteTableDelete(d *schema.ResourceData, meta interfac return nil } -func expandArmVirtualHubRouteTableHubRoutes(input []interface{}) *[]network.HubRoute { +func expandVirtualHubRouteTableHubRoutes(input []interface{}) *[]network.HubRoute { results := make([]network.HubRoute, 0) for _, item := range input { @@ -250,7 +250,7 @@ func expandArmVirtualHubRouteTableHubRoutes(input []interface{}) *[]network.HubR return &results } -func flattenArmVirtualHubRouteTableHubRoutes(input *[]network.HubRoute) []interface{} { +func flattenVirtualHubRouteTableHubRoutes(input *[]network.HubRoute) []interface{} { results := make([]interface{}, 0) if input == nil { return results diff --git a/azurerm/internal/services/network/virtual_hub_security_partner_provider_resource.go b/azurerm/internal/services/network/virtual_hub_security_partner_provider_resource.go index 6d81271f50b2..5e1bd4f858a3 100644 --- a/azurerm/internal/services/network/virtual_hub_security_partner_provider_resource.go +++ b/azurerm/internal/services/network/virtual_hub_security_partner_provider_resource.go @@ -20,12 +20,12 @@ import ( "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils" ) -func resourceArmVirtualHubSecurityPartnerProvider() *schema.Resource { +func resourceVirtualHubSecurityPartnerProvider() *schema.Resource { return &schema.Resource{ - Create: resourceArmVirtualHubSecurityPartnerProviderCreate, - Read: resourceArmVirtualHubSecurityPartnerProviderRead, - Update: resourceArmVirtualHubSecurityPartnerProviderUpdate, - Delete: resourceArmVirtualHubSecurityPartnerProviderDelete, + Create: resourceVirtualHubSecurityPartnerProviderCreate, + Read: resourceVirtualHubSecurityPartnerProviderRead, + Update: resourceVirtualHubSecurityPartnerProviderUpdate, + Delete: resourceVirtualHubSecurityPartnerProviderDelete, Timeouts: &schema.ResourceTimeout{ Create: schema.DefaultTimeout(30 * time.Minute), @@ -73,7 +73,7 @@ func resourceArmVirtualHubSecurityPartnerProvider() *schema.Resource { } } -func resourceArmVirtualHubSecurityPartnerProviderCreate(d *schema.ResourceData, meta interface{}) error { +func resourceVirtualHubSecurityPartnerProviderCreate(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.SecurityPartnerProviderClient ctx, cancel := timeouts.ForCreate(meta.(*clients.Client).StopContext, d) defer cancel() @@ -126,10 +126,10 @@ func resourceArmVirtualHubSecurityPartnerProviderCreate(d *schema.ResourceData, d.SetId(*resp.ID) - return resourceArmVirtualHubSecurityPartnerProviderRead(d, meta) + return resourceVirtualHubSecurityPartnerProviderRead(d, meta) } -func resourceArmVirtualHubSecurityPartnerProviderRead(d *schema.ResourceData, meta interface{}) error { +func resourceVirtualHubSecurityPartnerProviderRead(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.SecurityPartnerProviderClient ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() @@ -164,7 +164,7 @@ func resourceArmVirtualHubSecurityPartnerProviderRead(d *schema.ResourceData, me return tags.FlattenAndSet(d, resp.Tags) } -func resourceArmVirtualHubSecurityPartnerProviderUpdate(d *schema.ResourceData, meta interface{}) error { +func resourceVirtualHubSecurityPartnerProviderUpdate(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.SecurityPartnerProviderClient ctx, cancel := timeouts.ForUpdate(meta.(*clients.Client).StopContext, d) defer cancel() @@ -184,10 +184,10 @@ func resourceArmVirtualHubSecurityPartnerProviderUpdate(d *schema.ResourceData, return fmt.Errorf("updating Security Partner Provider %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err) } - return resourceArmVirtualHubSecurityPartnerProviderRead(d, meta) + return resourceVirtualHubSecurityPartnerProviderRead(d, meta) } -func resourceArmVirtualHubSecurityPartnerProviderDelete(d *schema.ResourceData, meta interface{}) error { +func resourceVirtualHubSecurityPartnerProviderDelete(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.SecurityPartnerProviderClient ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d) defer cancel() diff --git a/azurerm/internal/services/network/virtual_network_data_source.go b/azurerm/internal/services/network/virtual_network_data_source.go index dfd3d665a257..cdb117c20403 100644 --- a/azurerm/internal/services/network/virtual_network_data_source.go +++ b/azurerm/internal/services/network/virtual_network_data_source.go @@ -13,9 +13,9 @@ import ( "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils" ) -func dataSourceArmVirtualNetwork() *schema.Resource { +func dataSourceVirtualNetwork() *schema.Resource { return &schema.Resource{ - Read: dataSourceArmVnetRead, + Read: dataSourceVnetRead, Timeouts: &schema.ResourceTimeout{ Read: schema.DefaultTimeout(5 * time.Minute), @@ -71,7 +71,7 @@ func dataSourceArmVirtualNetwork() *schema.Resource { } } -func dataSourceArmVnetRead(d *schema.ResourceData, meta interface{}) error { +func dataSourceVnetRead(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VnetClient ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() diff --git a/azurerm/internal/services/network/virtual_network_gateway_connection_data_source.go b/azurerm/internal/services/network/virtual_network_gateway_connection_data_source.go index 3b5571064d68..653eb3446398 100644 --- a/azurerm/internal/services/network/virtual_network_gateway_connection_data_source.go +++ b/azurerm/internal/services/network/virtual_network_gateway_connection_data_source.go @@ -15,9 +15,9 @@ import ( "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils" ) -func dataSourceArmVirtualNetworkGatewayConnection() *schema.Resource { +func dataSourceVirtualNetworkGatewayConnection() *schema.Resource { return &schema.Resource{ - Read: dataSourceArmVirtualNetworkGatewayConnectionRead, + Read: dataSourceVirtualNetworkGatewayConnectionRead, Timeouts: &schema.ResourceTimeout{ Read: schema.DefaultTimeout(5 * time.Minute), @@ -188,7 +188,7 @@ func dataSourceArmVirtualNetworkGatewayConnection() *schema.Resource { } } -func dataSourceArmVirtualNetworkGatewayConnectionRead(d *schema.ResourceData, meta interface{}) error { +func dataSourceVirtualNetworkGatewayConnectionRead(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VnetGatewayConnectionsClient ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() @@ -253,12 +253,12 @@ func dataSourceArmVirtualNetworkGatewayConnectionRead(d *schema.ResourceData, me d.Set("resource_guid", gwc.ResourceGUID) - ipsecPoliciesSettingsFlat := flattenArmVirtualNetworkGatewayConnectionDataSourceIpsecPolicies(gwc.IpsecPolicies) + ipsecPoliciesSettingsFlat := flattenVirtualNetworkGatewayConnectionDataSourceIpsecPolicies(gwc.IpsecPolicies) if err := d.Set("ipsec_policy", ipsecPoliciesSettingsFlat); err != nil { return fmt.Errorf("Error setting `ipsec_policy`: %+v", err) } - trafficSelectorsPolicyFlat := flattenArmVirtualNetworkGatewayConnectionDataSourcePolicyTrafficSelectors(gwc.TrafficSelectorPolicies) + trafficSelectorsPolicyFlat := flattenVirtualNetworkGatewayConnectionDataSourcePolicyTrafficSelectors(gwc.TrafficSelectorPolicies) if err := d.Set("traffic_selector_policy", trafficSelectorsPolicyFlat); err != nil { return fmt.Errorf("Error setting `traffic_selector_policy`: %+v", err) } @@ -267,7 +267,7 @@ func dataSourceArmVirtualNetworkGatewayConnectionRead(d *schema.ResourceData, me return nil } -func flattenArmVirtualNetworkGatewayConnectionDataSourceIpsecPolicies(ipsecPolicies *[]network.IpsecPolicy) []interface{} { +func flattenVirtualNetworkGatewayConnectionDataSourceIpsecPolicies(ipsecPolicies *[]network.IpsecPolicy) []interface{} { schemaIpsecPolicies := make([]interface{}, 0) if ipsecPolicies != nil { @@ -296,7 +296,7 @@ func flattenArmVirtualNetworkGatewayConnectionDataSourceIpsecPolicies(ipsecPolic return schemaIpsecPolicies } -func flattenArmVirtualNetworkGatewayConnectionDataSourcePolicyTrafficSelectors(trafficSelectorPolicies *[]network.TrafficSelectorPolicy) []interface{} { +func flattenVirtualNetworkGatewayConnectionDataSourcePolicyTrafficSelectors(trafficSelectorPolicies *[]network.TrafficSelectorPolicy) []interface{} { schemaTrafficSelectorPolicies := make([]interface{}, 0) if trafficSelectorPolicies != nil { diff --git a/azurerm/internal/services/network/virtual_network_gateway_connection_resource.go b/azurerm/internal/services/network/virtual_network_gateway_connection_resource.go index a51fea474966..f7daacdd58ac 100644 --- a/azurerm/internal/services/network/virtual_network_gateway_connection_resource.go +++ b/azurerm/internal/services/network/virtual_network_gateway_connection_resource.go @@ -17,12 +17,12 @@ import ( "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils" ) -func resourceArmVirtualNetworkGatewayConnection() *schema.Resource { +func resourceVirtualNetworkGatewayConnection() *schema.Resource { return &schema.Resource{ - Create: resourceArmVirtualNetworkGatewayConnectionCreateUpdate, - Read: resourceArmVirtualNetworkGatewayConnectionRead, - Update: resourceArmVirtualNetworkGatewayConnectionCreateUpdate, - Delete: resourceArmVirtualNetworkGatewayConnectionDelete, + Create: resourceVirtualNetworkGatewayConnectionCreateUpdate, + Read: resourceVirtualNetworkGatewayConnectionRead, + Update: resourceVirtualNetworkGatewayConnectionCreateUpdate, + Delete: resourceVirtualNetworkGatewayConnectionDelete, Importer: &schema.ResourceImporter{ State: schema.ImportStatePassthrough, @@ -288,7 +288,7 @@ func resourceArmVirtualNetworkGatewayConnection() *schema.Resource { } } -func resourceArmVirtualNetworkGatewayConnectionCreateUpdate(d *schema.ResourceData, meta interface{}) error { +func resourceVirtualNetworkGatewayConnectionCreateUpdate(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VnetGatewayConnectionsClient ctx, cancel := timeouts.ForCreateUpdate(meta.(*clients.Client).StopContext, d) defer cancel() @@ -314,7 +314,7 @@ func resourceArmVirtualNetworkGatewayConnectionCreateUpdate(d *schema.ResourceDa location := azure.NormalizeLocation(d.Get("location").(string)) t := d.Get("tags").(map[string]interface{}) - properties, err := getArmVirtualNetworkGatewayConnectionProperties(d) + properties, err := getVirtualNetworkGatewayConnectionProperties(d) if err != nil { return err } @@ -345,10 +345,10 @@ func resourceArmVirtualNetworkGatewayConnectionCreateUpdate(d *schema.ResourceDa d.SetId(*read.ID) - return resourceArmVirtualNetworkGatewayConnectionRead(d, meta) + return resourceVirtualNetworkGatewayConnectionRead(d, meta) } -func resourceArmVirtualNetworkGatewayConnectionRead(d *schema.ResourceData, meta interface{}) error { +func resourceVirtualNetworkGatewayConnectionRead(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VnetGatewayConnectionsClient ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() @@ -430,14 +430,14 @@ func resourceArmVirtualNetworkGatewayConnectionRead(d *schema.ResourceData, meta } if conn.IpsecPolicies != nil { - ipsecPolicies := flattenArmVirtualNetworkGatewayConnectionIpsecPolicies(conn.IpsecPolicies) + ipsecPolicies := flattenVirtualNetworkGatewayConnectionIpsecPolicies(conn.IpsecPolicies) if err := d.Set("ipsec_policy", ipsecPolicies); err != nil { return fmt.Errorf("Error setting `ipsec_policy`: %+v", err) } } - trafficSelectorPolicies := flattenArmVirtualNetworkGatewayConnectionTrafficSelectorPolicies(conn.TrafficSelectorPolicies) + trafficSelectorPolicies := flattenVirtualNetworkGatewayConnectionTrafficSelectorPolicies(conn.TrafficSelectorPolicies) if err := d.Set("traffic_selector_policy", trafficSelectorPolicies); err != nil { return fmt.Errorf("Error setting `traffic_selector_policy`: %+v", err) } @@ -445,7 +445,7 @@ func resourceArmVirtualNetworkGatewayConnectionRead(d *schema.ResourceData, meta return tags.FlattenAndSet(d, resp.Tags) } -func resourceArmVirtualNetworkGatewayConnectionDelete(d *schema.ResourceData, meta interface{}) error { +func resourceVirtualNetworkGatewayConnectionDelete(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VnetGatewayConnectionsClient ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d) defer cancel() @@ -467,7 +467,7 @@ func resourceArmVirtualNetworkGatewayConnectionDelete(d *schema.ResourceData, me return nil } -func getArmVirtualNetworkGatewayConnectionProperties(d *schema.ResourceData) (*network.VirtualNetworkGatewayConnectionPropertiesFormat, error) { +func getVirtualNetworkGatewayConnectionProperties(d *schema.ResourceData) (*network.VirtualNetworkGatewayConnectionPropertiesFormat, error) { connectionType := network.VirtualNetworkGatewayConnectionType(d.Get("type").(string)) props := &network.VirtualNetworkGatewayConnectionPropertiesFormat{ @@ -561,11 +561,11 @@ func getArmVirtualNetworkGatewayConnectionProperties(d *schema.ResourceData) (*n } if v, ok := d.GetOk("traffic_selector_policy"); ok { - props.TrafficSelectorPolicies = expandArmVirtualNetworkGatewayConnectionTrafficSelectorPolicies(v.([]interface{})) + props.TrafficSelectorPolicies = expandVirtualNetworkGatewayConnectionTrafficSelectorPolicies(v.([]interface{})) } if v, ok := d.GetOk("ipsec_policy"); ok { - props.IpsecPolicies = expandArmVirtualNetworkGatewayConnectionIpsecPolicies(v.([]interface{})) + props.IpsecPolicies = expandVirtualNetworkGatewayConnectionIpsecPolicies(v.([]interface{})) } if props.ConnectionType == network.ExpressRoute { @@ -600,7 +600,7 @@ func resourceGroupAndVirtualNetworkGatewayConnectionFromId(virtualNetworkGateway return resGroup, name, nil } -func expandArmVirtualNetworkGatewayConnectionIpsecPolicies(schemaIpsecPolicies []interface{}) *[]network.IpsecPolicy { +func expandVirtualNetworkGatewayConnectionIpsecPolicies(schemaIpsecPolicies []interface{}) *[]network.IpsecPolicy { ipsecPolicies := make([]network.IpsecPolicy, 0, len(schemaIpsecPolicies)) for _, d := range schemaIpsecPolicies { @@ -647,7 +647,7 @@ func expandArmVirtualNetworkGatewayConnectionIpsecPolicies(schemaIpsecPolicies [ return &ipsecPolicies } -func expandArmVirtualNetworkGatewayConnectionTrafficSelectorPolicies(schemaTrafficSelectorPolicies []interface{}) *[]network.TrafficSelectorPolicy { +func expandVirtualNetworkGatewayConnectionTrafficSelectorPolicies(schemaTrafficSelectorPolicies []interface{}) *[]network.TrafficSelectorPolicy { trafficSelectorPolicies := make([]network.TrafficSelectorPolicy, 0, len(schemaTrafficSelectorPolicies)) for _, d := range schemaTrafficSelectorPolicies { @@ -666,7 +666,7 @@ func expandArmVirtualNetworkGatewayConnectionTrafficSelectorPolicies(schemaTraff return &trafficSelectorPolicies } -func flattenArmVirtualNetworkGatewayConnectionIpsecPolicies(ipsecPolicies *[]network.IpsecPolicy) []interface{} { +func flattenVirtualNetworkGatewayConnectionIpsecPolicies(ipsecPolicies *[]network.IpsecPolicy) []interface{} { schemaIpsecPolicies := make([]interface{}, 0) if ipsecPolicies != nil { @@ -695,7 +695,7 @@ func flattenArmVirtualNetworkGatewayConnectionIpsecPolicies(ipsecPolicies *[]net return schemaIpsecPolicies } -func flattenArmVirtualNetworkGatewayConnectionTrafficSelectorPolicies(trafficSelectorPolicies *[]network.TrafficSelectorPolicy) []interface{} { +func flattenVirtualNetworkGatewayConnectionTrafficSelectorPolicies(trafficSelectorPolicies *[]network.TrafficSelectorPolicy) []interface{} { schemaTrafficSelectorPolicies := make([]interface{}, 0) if trafficSelectorPolicies != nil { diff --git a/azurerm/internal/services/network/virtual_network_gateway_data_source.go b/azurerm/internal/services/network/virtual_network_gateway_data_source.go index f24f6bc070b4..8a373fef980b 100644 --- a/azurerm/internal/services/network/virtual_network_gateway_data_source.go +++ b/azurerm/internal/services/network/virtual_network_gateway_data_source.go @@ -14,9 +14,9 @@ import ( "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils" ) -func dataSourceArmVirtualNetworkGateway() *schema.Resource { +func dataSourceVirtualNetworkGateway() *schema.Resource { return &schema.Resource{ - Read: dataSourceArmVirtualNetworkGatewayRead, + Read: dataSourceVirtualNetworkGatewayRead, Timeouts: &schema.ResourceTimeout{ Read: schema.DefaultTimeout(5 * time.Minute), @@ -230,7 +230,7 @@ func dataSourceArmVirtualNetworkGateway() *schema.Resource { } } -func dataSourceArmVirtualNetworkGatewayRead(d *schema.ResourceData, meta interface{}) error { +func dataSourceVirtualNetworkGatewayRead(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VnetGatewayClient ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() @@ -276,21 +276,21 @@ func dataSourceArmVirtualNetworkGatewayRead(d *schema.ResourceData, meta interfa d.Set("sku", string(gw.Sku.Name)) } - if err := d.Set("ip_configuration", flattenArmVirtualNetworkGatewayDataSourceIPConfigurations(gw.IPConfigurations)); err != nil { + if err := d.Set("ip_configuration", flattenVirtualNetworkGatewayDataSourceIPConfigurations(gw.IPConfigurations)); err != nil { return fmt.Errorf("Error setting `ip_configuration`: %+v", err) } - vpnConfigFlat := flattenArmVirtualNetworkGatewayDataSourceVpnClientConfig(gw.VpnClientConfiguration) + vpnConfigFlat := flattenVirtualNetworkGatewayDataSourceVpnClientConfig(gw.VpnClientConfiguration) if err := d.Set("vpn_client_configuration", vpnConfigFlat); err != nil { return fmt.Errorf("Error setting `vpn_client_configuration`: %+v", err) } - bgpSettingsFlat := flattenArmVirtualNetworkGatewayDataSourceBgpSettings(gw.BgpSettings) + bgpSettingsFlat := flattenVirtualNetworkGatewayDataSourceBgpSettings(gw.BgpSettings) if err := d.Set("bgp_settings", bgpSettingsFlat); err != nil { return fmt.Errorf("Error setting `bgp_settings`: %+v", err) } - if err := d.Set("custom_route", flattenArmVirtualNetworkGatewayAddressSpace(gw.CustomRoutes)); err != nil { + if err := d.Set("custom_route", flattenVirtualNetworkGatewayAddressSpace(gw.CustomRoutes)); err != nil { return fmt.Errorf("setting `custom_route`: %+v", err) } } @@ -298,7 +298,7 @@ func dataSourceArmVirtualNetworkGatewayRead(d *schema.ResourceData, meta interfa return tags.FlattenAndSet(d, resp.Tags) } -func flattenArmVirtualNetworkGatewayDataSourceIPConfigurations(ipConfigs *[]network.VirtualNetworkGatewayIPConfiguration) []interface{} { +func flattenVirtualNetworkGatewayDataSourceIPConfigurations(ipConfigs *[]network.VirtualNetworkGatewayIPConfiguration) []interface{} { flat := make([]interface{}, 0) if ipConfigs != nil { @@ -330,7 +330,7 @@ func flattenArmVirtualNetworkGatewayDataSourceIPConfigurations(ipConfigs *[]netw return flat } -func flattenArmVirtualNetworkGatewayDataSourceVpnClientConfig(cfg *network.VpnClientConfiguration) []interface{} { +func flattenVirtualNetworkGatewayDataSourceVpnClientConfig(cfg *network.VpnClientConfiguration) []interface{} { if cfg == nil { return []interface{}{} } @@ -392,7 +392,7 @@ func flattenArmVirtualNetworkGatewayDataSourceVpnClientConfig(cfg *network.VpnCl return []interface{}{flat} } -func flattenArmVirtualNetworkGatewayDataSourceBgpSettings(settings *network.BgpSettings) []interface{} { +func flattenVirtualNetworkGatewayDataSourceBgpSettings(settings *network.BgpSettings) []interface{} { output := make([]interface{}, 0) if settings != nil { diff --git a/azurerm/internal/services/network/virtual_network_gateway_resource.go b/azurerm/internal/services/network/virtual_network_gateway_resource.go index 56b74b4b45e6..2ae13cae0f69 100644 --- a/azurerm/internal/services/network/virtual_network_gateway_resource.go +++ b/azurerm/internal/services/network/virtual_network_gateway_resource.go @@ -21,17 +21,17 @@ import ( "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils" ) -func resourceArmVirtualNetworkGateway() *schema.Resource { +func resourceVirtualNetworkGateway() *schema.Resource { return &schema.Resource{ - Create: resourceArmVirtualNetworkGatewayCreateUpdate, - Read: resourceArmVirtualNetworkGatewayRead, - Update: resourceArmVirtualNetworkGatewayCreateUpdate, - Delete: resourceArmVirtualNetworkGatewayDelete, + Create: resourceVirtualNetworkGatewayCreateUpdate, + Read: resourceVirtualNetworkGatewayRead, + Update: resourceVirtualNetworkGatewayCreateUpdate, + Delete: resourceVirtualNetworkGatewayDelete, Importer: &schema.ResourceImporter{ State: schema.ImportStatePassthrough, }, - CustomizeDiff: resourceArmVirtualNetworkGatewayCustomizeDiff, + CustomizeDiff: resourceVirtualNetworkGatewayCustomizeDiff, Timeouts: &schema.ResourceTimeout{ Create: schema.DefaultTimeout(60 * time.Minute), @@ -99,13 +99,13 @@ func resourceArmVirtualNetworkGateway() *schema.Resource { DiffSuppressFunc: suppress.CaseDifference, // This validator checks for all possible values for the SKU regardless of the attributes vpn_type and // type. For a validation which depends on the attributes vpn_type and type, refer to the special case - // validators validateArmVirtualNetworkGatewayPolicyBasedVpnSku, validateArmVirtualNetworkGatewayRouteBasedVpnSku - // and validateArmVirtualNetworkGatewayExpressRouteSku. + // validators validateVirtualNetworkGatewayPolicyBasedVpnSku, validateVirtualNetworkGatewayRouteBasedVpnSku + // and validateVirtualNetworkGatewayExpressRouteSku. ValidateFunc: validation.Any( - validateArmVirtualNetworkGatewayPolicyBasedVpnSku(), - validateArmVirtualNetworkGatewayRouteBasedVpnSkuGeneration1(), - validateArmVirtualNetworkGatewayRouteBasedVpnSkuGeneration2(), - validateArmVirtualNetworkGatewayExpressRouteSku(), + validateVirtualNetworkGatewayPolicyBasedVpnSku(), + validateVirtualNetworkGatewayRouteBasedVpnSkuGeneration1(), + validateVirtualNetworkGatewayRouteBasedVpnSkuGeneration2(), + validateVirtualNetworkGatewayExpressRouteSku(), ), }, @@ -149,7 +149,7 @@ func resourceArmVirtualNetworkGateway() *schema.Resource { "subnet_id": { Type: schema.TypeString, Required: true, - ValidateFunc: validateArmVirtualNetworkGatewaySubnetId, + ValidateFunc: validateVirtualNetworkGatewaySubnetId, DiffSuppressFunc: suppress.CaseDifference, }, @@ -357,7 +357,7 @@ func resourceArmVirtualNetworkGateway() *schema.Resource { } } -func resourceArmVirtualNetworkGatewayCreateUpdate(d *schema.ResourceData, meta interface{}) error { +func resourceVirtualNetworkGatewayCreateUpdate(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VnetGatewayClient ctx, cancel := timeouts.ForCreateUpdate(meta.(*clients.Client).StopContext, d) defer cancel() @@ -383,7 +383,7 @@ func resourceArmVirtualNetworkGatewayCreateUpdate(d *schema.ResourceData, meta i location := azure.NormalizeLocation(d.Get("location").(string)) t := d.Get("tags").(map[string]interface{}) - properties, err := getArmVirtualNetworkGatewayProperties(d) + properties, err := getVirtualNetworkGatewayProperties(d) if err != nil { return err } @@ -414,10 +414,10 @@ func resourceArmVirtualNetworkGatewayCreateUpdate(d *schema.ResourceData, meta i d.SetId(*read.ID) - return resourceArmVirtualNetworkGatewayRead(d, meta) + return resourceVirtualNetworkGatewayRead(d, meta) } -func resourceArmVirtualNetworkGatewayRead(d *schema.ResourceData, meta interface{}) error { +func resourceVirtualNetworkGatewayRead(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VnetGatewayClient ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() @@ -461,19 +461,19 @@ func resourceArmVirtualNetworkGatewayRead(d *schema.ResourceData, meta interface d.Set("sku", string(gw.Sku.Name)) } - if err := d.Set("ip_configuration", flattenArmVirtualNetworkGatewayIPConfigurations(gw.IPConfigurations)); err != nil { + if err := d.Set("ip_configuration", flattenVirtualNetworkGatewayIPConfigurations(gw.IPConfigurations)); err != nil { return fmt.Errorf("Error setting `ip_configuration`: %+v", err) } - if err := d.Set("vpn_client_configuration", flattenArmVirtualNetworkGatewayVpnClientConfig(gw.VpnClientConfiguration)); err != nil { + if err := d.Set("vpn_client_configuration", flattenVirtualNetworkGatewayVpnClientConfig(gw.VpnClientConfiguration)); err != nil { return fmt.Errorf("Error setting `vpn_client_configuration`: %+v", err) } - if err := d.Set("bgp_settings", flattenArmVirtualNetworkGatewayBgpSettings(gw.BgpSettings)); err != nil { + if err := d.Set("bgp_settings", flattenVirtualNetworkGatewayBgpSettings(gw.BgpSettings)); err != nil { return fmt.Errorf("Error setting `bgp_settings`: %+v", err) } - if err := d.Set("custom_route", flattenArmVirtualNetworkGatewayAddressSpace(gw.CustomRoutes)); err != nil { + if err := d.Set("custom_route", flattenVirtualNetworkGatewayAddressSpace(gw.CustomRoutes)); err != nil { return fmt.Errorf("setting `custom_route`: %+v", err) } } @@ -481,7 +481,7 @@ func resourceArmVirtualNetworkGatewayRead(d *schema.ResourceData, meta interface return tags.FlattenAndSet(d, resp.Tags) } -func resourceArmVirtualNetworkGatewayDelete(d *schema.ResourceData, meta interface{}) error { +func resourceVirtualNetworkGatewayDelete(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VnetGatewayClient ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d) defer cancel() @@ -503,7 +503,7 @@ func resourceArmVirtualNetworkGatewayDelete(d *schema.ResourceData, meta interfa return nil } -func getArmVirtualNetworkGatewayProperties(d *schema.ResourceData) (*network.VirtualNetworkGatewayPropertiesFormat, error) { +func getVirtualNetworkGatewayProperties(d *schema.ResourceData) (*network.VirtualNetworkGatewayPropertiesFormat, error) { gatewayType := network.VirtualNetworkGatewayType(d.Get("type").(string)) vpnType := network.VpnType(d.Get("vpn_type").(string)) enableBgp := d.Get("enable_bgp").(bool) @@ -519,9 +519,9 @@ func getArmVirtualNetworkGatewayProperties(d *schema.ResourceData) (*network.Vir EnablePrivateIPAddress: &enablePrivateIpAddress, ActiveActive: &activeActive, VpnGatewayGeneration: generation, - Sku: expandArmVirtualNetworkGatewaySku(d), - IPConfigurations: expandArmVirtualNetworkGatewayIPConfigurations(d), - CustomRoutes: expandArmVirtualNetworkGatewayAddressSpace(customRoute), + Sku: expandVirtualNetworkGatewaySku(d), + IPConfigurations: expandVirtualNetworkGatewayIPConfigurations(d), + CustomRoutes: expandVirtualNetworkGatewayAddressSpace(customRoute), } if gatewayDefaultSiteID := d.Get("default_local_network_gateway_id").(string); gatewayDefaultSiteID != "" { @@ -531,37 +531,37 @@ func getArmVirtualNetworkGatewayProperties(d *schema.ResourceData) (*network.Vir } if _, ok := d.GetOk("vpn_client_configuration"); ok { - props.VpnClientConfiguration = expandArmVirtualNetworkGatewayVpnClientConfig(d) + props.VpnClientConfiguration = expandVirtualNetworkGatewayVpnClientConfig(d) } if _, ok := d.GetOk("bgp_settings"); ok { - props.BgpSettings = expandArmVirtualNetworkGatewayBgpSettings(d) + props.BgpSettings = expandVirtualNetworkGatewayBgpSettings(d) } // Sku validation for policy-based VPN gateways if props.GatewayType == network.VirtualNetworkGatewayTypeVpn && props.VpnType == network.PolicyBased { - if ok, err := evaluateSchemaValidateFunc(string(props.Sku.Name), "sku", validateArmVirtualNetworkGatewayPolicyBasedVpnSku()); !ok { + if ok, err := evaluateSchemaValidateFunc(string(props.Sku.Name), "sku", validateVirtualNetworkGatewayPolicyBasedVpnSku()); !ok { return nil, err } } // Sku validation for route-based VPN gateways of first geneneration if props.GatewayType == network.VirtualNetworkGatewayTypeVpn && props.VpnType == network.RouteBased && props.VpnGatewayGeneration == network.VpnGatewayGenerationGeneration1 { - if ok, err := evaluateSchemaValidateFunc(string(props.Sku.Name), "sku", validateArmVirtualNetworkGatewayRouteBasedVpnSkuGeneration1()); !ok { + if ok, err := evaluateSchemaValidateFunc(string(props.Sku.Name), "sku", validateVirtualNetworkGatewayRouteBasedVpnSkuGeneration1()); !ok { return nil, err } } // Sku validation for route-based VPN gateways of second geneneration if props.GatewayType == network.VirtualNetworkGatewayTypeVpn && props.VpnType == network.RouteBased && props.VpnGatewayGeneration == network.VpnGatewayGenerationGeneration2 { - if ok, err := evaluateSchemaValidateFunc(string(props.Sku.Name), "sku", validateArmVirtualNetworkGatewayRouteBasedVpnSkuGeneration2()); !ok { + if ok, err := evaluateSchemaValidateFunc(string(props.Sku.Name), "sku", validateVirtualNetworkGatewayRouteBasedVpnSkuGeneration2()); !ok { return nil, err } } // Sku validation for ExpressRoute gateways if props.GatewayType == network.VirtualNetworkGatewayTypeExpressRoute { - if ok, err := evaluateSchemaValidateFunc(string(props.Sku.Name), "sku", validateArmVirtualNetworkGatewayExpressRouteSku()); !ok { + if ok, err := evaluateSchemaValidateFunc(string(props.Sku.Name), "sku", validateVirtualNetworkGatewayExpressRouteSku()); !ok { return nil, err } } @@ -569,7 +569,7 @@ func getArmVirtualNetworkGatewayProperties(d *schema.ResourceData) (*network.Vir return props, nil } -func expandArmVirtualNetworkGatewayBgpSettings(d *schema.ResourceData) *network.BgpSettings { +func expandVirtualNetworkGatewayBgpSettings(d *schema.ResourceData) *network.BgpSettings { bgpSets := d.Get("bgp_settings").([]interface{}) if len(bgpSets) == 0 { return nil @@ -588,7 +588,7 @@ func expandArmVirtualNetworkGatewayBgpSettings(d *schema.ResourceData) *network. } } -func expandArmVirtualNetworkGatewayIPConfigurations(d *schema.ResourceData) *[]network.VirtualNetworkGatewayIPConfiguration { +func expandVirtualNetworkGatewayIPConfigurations(d *schema.ResourceData) *[]network.VirtualNetworkGatewayIPConfiguration { configs := d.Get("ip_configuration").([]interface{}) ipConfigs := make([]network.VirtualNetworkGatewayIPConfiguration, 0, len(configs)) @@ -625,7 +625,7 @@ func expandArmVirtualNetworkGatewayIPConfigurations(d *schema.ResourceData) *[]n return &ipConfigs } -func expandArmVirtualNetworkGatewayVpnClientConfig(d *schema.ResourceData) *network.VpnClientConfiguration { +func expandVirtualNetworkGatewayVpnClientConfig(d *schema.ResourceData) *network.VpnClientConfiguration { configSets := d.Get("vpn_client_configuration").([]interface{}) conf := configSets[0].(map[string]interface{}) @@ -691,7 +691,7 @@ func expandArmVirtualNetworkGatewayVpnClientConfig(d *schema.ResourceData) *netw } } -func expandArmVirtualNetworkGatewaySku(d *schema.ResourceData) *network.VirtualNetworkGatewaySku { +func expandVirtualNetworkGatewaySku(d *schema.ResourceData) *network.VirtualNetworkGatewaySku { sku := d.Get("sku").(string) return &network.VirtualNetworkGatewaySku{ @@ -700,7 +700,7 @@ func expandArmVirtualNetworkGatewaySku(d *schema.ResourceData) *network.VirtualN } } -func expandArmVirtualNetworkGatewayAddressSpace(input []interface{}) *network.AddressSpace { +func expandVirtualNetworkGatewayAddressSpace(input []interface{}) *network.AddressSpace { if len(input) == 0 { return nil } @@ -710,7 +710,7 @@ func expandArmVirtualNetworkGatewayAddressSpace(input []interface{}) *network.Ad } } -func flattenArmVirtualNetworkGatewayBgpSettings(settings *network.BgpSettings) []interface{} { +func flattenVirtualNetworkGatewayBgpSettings(settings *network.BgpSettings) []interface{} { output := make([]interface{}, 0) if settings != nil { @@ -732,7 +732,7 @@ func flattenArmVirtualNetworkGatewayBgpSettings(settings *network.BgpSettings) [ return output } -func flattenArmVirtualNetworkGatewayIPConfigurations(ipConfigs *[]network.VirtualNetworkGatewayIPConfiguration) []interface{} { +func flattenVirtualNetworkGatewayIPConfigurations(ipConfigs *[]network.VirtualNetworkGatewayIPConfiguration) []interface{} { flat := make([]interface{}, 0) if ipConfigs != nil { @@ -764,7 +764,7 @@ func flattenArmVirtualNetworkGatewayIPConfigurations(ipConfigs *[]network.Virtua return flat } -func flattenArmVirtualNetworkGatewayVpnClientConfig(cfg *network.VpnClientConfiguration) []interface{} { +func flattenVirtualNetworkGatewayVpnClientConfig(cfg *network.VpnClientConfiguration) []interface{} { if cfg == nil { return []interface{}{} } @@ -862,7 +862,7 @@ func resourceGroupAndVirtualNetworkGatewayFromId(virtualNetworkGatewayId string) return resGroup, name, nil } -func validateArmVirtualNetworkGatewaySubnetId(i interface{}, k string) (warnings []string, errors []error) { +func validateVirtualNetworkGatewaySubnetId(i interface{}, k string) (warnings []string, errors []error) { value, ok := i.(string) if !ok { errors = append(errors, fmt.Errorf("expected type of %s to be string", k)) @@ -888,13 +888,13 @@ func validateArmVirtualNetworkGatewaySubnetId(i interface{}, k string) (warnings return warnings, errors } -func validateArmVirtualNetworkGatewayPolicyBasedVpnSku() schema.SchemaValidateFunc { +func validateVirtualNetworkGatewayPolicyBasedVpnSku() schema.SchemaValidateFunc { return validation.StringInSlice([]string{ string(network.VirtualNetworkGatewaySkuTierBasic), }, true) } -func validateArmVirtualNetworkGatewayRouteBasedVpnSkuGeneration1() schema.SchemaValidateFunc { +func validateVirtualNetworkGatewayRouteBasedVpnSkuGeneration1() schema.SchemaValidateFunc { return validation.StringInSlice([]string{ string(network.VirtualNetworkGatewaySkuTierBasic), string(network.VirtualNetworkGatewaySkuTierStandard), @@ -908,7 +908,7 @@ func validateArmVirtualNetworkGatewayRouteBasedVpnSkuGeneration1() schema.Schema }, true) } -func validateArmVirtualNetworkGatewayRouteBasedVpnSkuGeneration2() schema.SchemaValidateFunc { +func validateVirtualNetworkGatewayRouteBasedVpnSkuGeneration2() schema.SchemaValidateFunc { return validation.StringInSlice([]string{ string(network.VirtualNetworkGatewaySkuNameVpnGw2), string(network.VirtualNetworkGatewaySkuNameVpnGw3), @@ -921,7 +921,7 @@ func validateArmVirtualNetworkGatewayRouteBasedVpnSkuGeneration2() schema.Schema }, true) } -func validateArmVirtualNetworkGatewayExpressRouteSku() schema.SchemaValidateFunc { +func validateVirtualNetworkGatewayExpressRouteSku() schema.SchemaValidateFunc { return validation.StringInSlice([]string{ string(network.VirtualNetworkGatewaySkuTierStandard), string(network.VirtualNetworkGatewaySkuTierHighPerformance), @@ -932,7 +932,7 @@ func validateArmVirtualNetworkGatewayExpressRouteSku() schema.SchemaValidateFunc }, true) } -func resourceArmVirtualNetworkGatewayCustomizeDiff(diff *schema.ResourceDiff, _ interface{}) error { +func resourceVirtualNetworkGatewayCustomizeDiff(diff *schema.ResourceDiff, _ interface{}) error { if vpnClient, ok := diff.GetOk("vpn_client_configuration"); ok { if vpnClientConfig, ok := vpnClient.([]interface{})[0].(map[string]interface{}); ok { hasAadTenant := vpnClientConfig["aad_tenant"] != "" @@ -963,7 +963,7 @@ func resourceArmVirtualNetworkGatewayCustomizeDiff(diff *schema.ResourceDiff, _ return nil } -func flattenArmVirtualNetworkGatewayAddressSpace(input *network.AddressSpace) []interface{} { +func flattenVirtualNetworkGatewayAddressSpace(input *network.AddressSpace) []interface{} { if input == nil { return make([]interface{}, 0) } diff --git a/azurerm/internal/services/network/virtual_network_peering_resource.go b/azurerm/internal/services/network/virtual_network_peering_resource.go index 9cad4cbff255..b19eff9a0f3d 100644 --- a/azurerm/internal/services/network/virtual_network_peering_resource.go +++ b/azurerm/internal/services/network/virtual_network_peering_resource.go @@ -21,12 +21,12 @@ import ( // or deleted at the same time var peerMutex = &sync.Mutex{} -func resourceArmVirtualNetworkPeering() *schema.Resource { +func resourceVirtualNetworkPeering() *schema.Resource { return &schema.Resource{ - Create: resourceArmVirtualNetworkPeeringCreateUpdate, - Read: resourceArmVirtualNetworkPeeringRead, - Update: resourceArmVirtualNetworkPeeringCreateUpdate, - Delete: resourceArmVirtualNetworkPeeringDelete, + Create: resourceVirtualNetworkPeeringCreateUpdate, + Read: resourceVirtualNetworkPeeringRead, + Update: resourceVirtualNetworkPeeringCreateUpdate, + Delete: resourceVirtualNetworkPeeringDelete, Importer: &schema.ResourceImporter{ State: schema.ImportStatePassthrough, }, @@ -86,7 +86,7 @@ func resourceArmVirtualNetworkPeering() *schema.Resource { } } -func resourceArmVirtualNetworkPeeringCreateUpdate(d *schema.ResourceData, meta interface{}) error { +func resourceVirtualNetworkPeeringCreateUpdate(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VnetPeeringsClient ctx, cancel := timeouts.ForCreateUpdate(meta.(*clients.Client).StopContext, d) defer cancel() @@ -132,10 +132,10 @@ func resourceArmVirtualNetworkPeeringCreateUpdate(d *schema.ResourceData, meta i d.SetId(*read.ID) - return resourceArmVirtualNetworkPeeringRead(d, meta) + return resourceVirtualNetworkPeeringRead(d, meta) } -func resourceArmVirtualNetworkPeeringRead(d *schema.ResourceData, meta interface{}) error { +func resourceVirtualNetworkPeeringRead(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VnetPeeringsClient ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() @@ -175,7 +175,7 @@ func resourceArmVirtualNetworkPeeringRead(d *schema.ResourceData, meta interface return nil } -func resourceArmVirtualNetworkPeeringDelete(d *schema.ResourceData, meta interface{}) error { +func resourceVirtualNetworkPeeringDelete(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VnetPeeringsClient ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d) defer cancel() diff --git a/azurerm/internal/services/network/virtual_network_resource.go b/azurerm/internal/services/network/virtual_network_resource.go index db48af799a47..0a127c473eeb 100644 --- a/azurerm/internal/services/network/virtual_network_resource.go +++ b/azurerm/internal/services/network/virtual_network_resource.go @@ -26,12 +26,12 @@ import ( var VirtualNetworkResourceName = "azurerm_virtual_network" -func resourceArmVirtualNetwork() *schema.Resource { +func resourceVirtualNetwork() *schema.Resource { return &schema.Resource{ - Create: resourceArmVirtualNetworkCreateUpdate, - Read: resourceArmVirtualNetworkRead, - Update: resourceArmVirtualNetworkCreateUpdate, - Delete: resourceArmVirtualNetworkDelete, + Create: resourceVirtualNetworkCreateUpdate, + Read: resourceVirtualNetworkRead, + Update: resourceVirtualNetworkCreateUpdate, + Delete: resourceVirtualNetworkDelete, Importer: &schema.ResourceImporter{ State: schema.ImportStatePassthrough, }, @@ -149,7 +149,7 @@ func resourceArmVirtualNetwork() *schema.Resource { } } -func resourceArmVirtualNetworkCreateUpdate(d *schema.ResourceData, meta interface{}) error { +func resourceVirtualNetworkCreateUpdate(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VnetClient ctx, cancel := timeouts.ForCreateUpdate(meta.(*clients.Client).StopContext, d) defer cancel() @@ -225,10 +225,10 @@ func resourceArmVirtualNetworkCreateUpdate(d *schema.ResourceData, meta interfac d.SetId(*read.ID) - return resourceArmVirtualNetworkRead(d, meta) + return resourceVirtualNetworkRead(d, meta) } -func resourceArmVirtualNetworkRead(d *schema.ResourceData, meta interface{}) error { +func resourceVirtualNetworkRead(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VnetClient ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() @@ -291,7 +291,7 @@ func resourceArmVirtualNetworkRead(d *schema.ResourceData, meta interface{}) err return tags.FlattenAndSet(d, resp.Tags) } -func resourceArmVirtualNetworkDelete(d *schema.ResourceData, meta interface{}) error { +func resourceVirtualNetworkDelete(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VnetClient ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d) defer cancel() diff --git a/azurerm/internal/services/network/virtual_wan_data_source.go b/azurerm/internal/services/network/virtual_wan_data_source.go index f835679ff660..5ffe99a5dd1a 100644 --- a/azurerm/internal/services/network/virtual_wan_data_source.go +++ b/azurerm/internal/services/network/virtual_wan_data_source.go @@ -15,9 +15,9 @@ import ( "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils" ) -func dataSourceArmVirtualWan() *schema.Resource { +func dataSourceVirtualWan() *schema.Resource { return &schema.Resource{ - Read: dataSourceArmVirtualWanRead, + Read: dataSourceVirtualWanRead, Timeouts: &schema.ResourceTimeout{ Read: schema.DefaultTimeout(5 * time.Minute), }, @@ -67,7 +67,7 @@ func dataSourceArmVirtualWan() *schema.Resource { } } -func dataSourceArmVirtualWanRead(d *schema.ResourceData, meta interface{}) error { +func dataSourceVirtualWanRead(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VirtualWanClient ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() diff --git a/azurerm/internal/services/network/virtual_wan_resource.go b/azurerm/internal/services/network/virtual_wan_resource.go index ae30445fc867..db6b74af966d 100644 --- a/azurerm/internal/services/network/virtual_wan_resource.go +++ b/azurerm/internal/services/network/virtual_wan_resource.go @@ -17,12 +17,12 @@ import ( "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils" ) -func resourceArmVirtualWan() *schema.Resource { +func resourceVirtualWan() *schema.Resource { return &schema.Resource{ - Create: resourceArmVirtualWanCreateUpdate, - Read: resourceArmVirtualWanRead, - Update: resourceArmVirtualWanCreateUpdate, - Delete: resourceArmVirtualWanDelete, + Create: resourceVirtualWanCreateUpdate, + Read: resourceVirtualWanRead, + Update: resourceVirtualWanCreateUpdate, + Delete: resourceVirtualWanDelete, Importer: &schema.ResourceImporter{ State: schema.ImportStatePassthrough, }, @@ -89,7 +89,7 @@ func resourceArmVirtualWan() *schema.Resource { } } -func resourceArmVirtualWanCreateUpdate(d *schema.ResourceData, meta interface{}) error { +func resourceVirtualWanCreateUpdate(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VirtualWanClient ctx, cancel := timeouts.ForCreateUpdate(meta.(*clients.Client).StopContext, d) defer cancel() @@ -149,10 +149,10 @@ func resourceArmVirtualWanCreateUpdate(d *schema.ResourceData, meta interface{}) d.SetId(*read.ID) - return resourceArmVirtualWanRead(d, meta) + return resourceVirtualWanRead(d, meta) } -func resourceArmVirtualWanRead(d *schema.ResourceData, meta interface{}) error { +func resourceVirtualWanRead(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VirtualWanClient ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() @@ -190,7 +190,7 @@ func resourceArmVirtualWanRead(d *schema.ResourceData, meta interface{}) error { return tags.FlattenAndSet(d, resp.Tags) } -func resourceArmVirtualWanDelete(d *schema.ResourceData, meta interface{}) error { +func resourceVirtualWanDelete(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VirtualWanClient ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d) defer cancel() diff --git a/azurerm/internal/services/network/vpn_gateway_connection_resource.go b/azurerm/internal/services/network/vpn_gateway_connection_resource.go index 7f1eb6768daf..ff29e6420b24 100644 --- a/azurerm/internal/services/network/vpn_gateway_connection_resource.go +++ b/azurerm/internal/services/network/vpn_gateway_connection_resource.go @@ -25,12 +25,12 @@ import ( "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils" ) -func resourceArmVPNGatewayConnection() *schema.Resource { +func resourceVPNGatewayConnection() *schema.Resource { return &schema.Resource{ - Create: resourceArmVpnGatewayConnectionResourceCreateUpdate, - Read: resourceArmVpnGatewayConnectionResourceRead, - Update: resourceArmVpnGatewayConnectionResourceCreateUpdate, - Delete: resourceArmVpnGatewayConnectionResourceDelete, + Create: resourceVpnGatewayConnectionResourceCreateUpdate, + Read: resourceVpnGatewayConnectionResourceRead, + Update: resourceVpnGatewayConnectionResourceCreateUpdate, + Delete: resourceVpnGatewayConnectionResourceDelete, Importer: azSchema.ValidateResourceIDPriorToImport(func(id string) error { _, err := parse.VpnConnectionID(id) @@ -282,7 +282,7 @@ func resourceArmVPNGatewayConnection() *schema.Resource { } } -func resourceArmVpnGatewayConnectionResourceCreateUpdate(d *schema.ResourceData, meta interface{}) error { +func resourceVpnGatewayConnectionResourceCreateUpdate(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VpnConnectionsClient ctx, cancel := timeouts.ForCreateUpdate(meta.(*clients.Client).StopContext, d) defer cancel() @@ -316,8 +316,8 @@ func resourceArmVpnGatewayConnectionResourceCreateUpdate(d *schema.ResourceData, RemoteVpnSite: &network.SubResource{ ID: utils.String(d.Get("remote_vpn_site_id").(string)), }, - VpnLinkConnections: expandArmVpnGatewayConnectionVpnSiteLinkConnections(d.Get("vpn_link").([]interface{})), - RoutingConfiguration: expandArmVpnGatewayConnectionRoutingConfiguration(d.Get("routing").([]interface{})), + VpnLinkConnections: expandVpnGatewayConnectionVpnSiteLinkConnections(d.Get("vpn_link").([]interface{})), + RoutingConfiguration: expandVpnGatewayConnectionRoutingConfiguration(d.Get("routing").([]interface{})), }, } @@ -344,10 +344,10 @@ func resourceArmVpnGatewayConnectionResourceCreateUpdate(d *schema.ResourceData, } d.SetId(id.ID()) - return resourceArmVpnGatewayConnectionResourceRead(d, meta) + return resourceVpnGatewayConnectionResourceRead(d, meta) } -func resourceArmVpnGatewayConnectionResourceRead(d *schema.ResourceData, meta interface{}) error { +func resourceVpnGatewayConnectionResourceRead(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VpnConnectionsClient ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() @@ -392,11 +392,11 @@ func resourceArmVpnGatewayConnectionResourceRead(d *schema.ResourceData, meta in } d.Set("internet_security_enabled", enableInternetSecurity) - if err := d.Set("routing", flattenArmVpnGatewayConnectionRoutingConfiguration(prop.RoutingConfiguration)); err != nil { + if err := d.Set("routing", flattenVpnGatewayConnectionRoutingConfiguration(prop.RoutingConfiguration)); err != nil { return fmt.Errorf(`setting "routing": %v`, err) } - if err := d.Set("vpn_link", flattenArmVpnGatewayConnectionVpnSiteLinkConnections(prop.VpnLinkConnections)); err != nil { + if err := d.Set("vpn_link", flattenVpnGatewayConnectionVpnSiteLinkConnections(prop.VpnLinkConnections)); err != nil { return fmt.Errorf(`setting "vpn_link": %v`, err) } } @@ -404,7 +404,7 @@ func resourceArmVpnGatewayConnectionResourceRead(d *schema.ResourceData, meta in return nil } -func resourceArmVpnGatewayConnectionResourceDelete(d *schema.ResourceData, meta interface{}) error { +func resourceVpnGatewayConnectionResourceDelete(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VpnConnectionsClient ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d) defer cancel() @@ -433,7 +433,7 @@ func resourceArmVpnGatewayConnectionResourceDelete(d *schema.ResourceData, meta return nil } -func expandArmVpnGatewayConnectionVpnSiteLinkConnections(input []interface{}) *[]network.VpnSiteLinkConnection { +func expandVpnGatewayConnectionVpnSiteLinkConnections(input []interface{}) *[]network.VpnSiteLinkConnection { if len(input) == 0 { return nil } @@ -450,7 +450,7 @@ func expandArmVpnGatewayConnectionVpnSiteLinkConnections(input []interface{}) *[ VpnConnectionProtocolType: network.VirtualNetworkGatewayConnectionProtocol(e["protocol"].(string)), ConnectionBandwidth: utils.Int32(int32(e["bandwidth_mbps"].(int))), EnableBgp: utils.Bool(e["bgp_enabled"].(bool)), - IpsecPolicies: expandArmVpnGatewayConnectionIpSecPolicies(e["ipsec_policy"].([]interface{})), + IpsecPolicies: expandVpnGatewayConnectionIpSecPolicies(e["ipsec_policy"].([]interface{})), EnableRateLimiting: utils.Bool(e["ratelimit_enabled"].(bool)), UseLocalAzureIPAddress: utils.Bool(e["local_azure_ip_address_enabled"].(bool)), UsePolicyBasedTrafficSelectors: utils.Bool(e["policy_based_traffic_selector_enabled"].(bool)), @@ -467,7 +467,7 @@ func expandArmVpnGatewayConnectionVpnSiteLinkConnections(input []interface{}) *[ return &result } -func flattenArmVpnGatewayConnectionVpnSiteLinkConnections(input *[]network.VpnSiteLinkConnection) interface{} { +func flattenVpnGatewayConnectionVpnSiteLinkConnections(input *[]network.VpnSiteLinkConnection) interface{} { if input == nil { return []interface{}{} } @@ -528,7 +528,7 @@ func flattenArmVpnGatewayConnectionVpnSiteLinkConnections(input *[]network.VpnSi "bandwidth_mbps": bandwidth, "shared_key": sharedKey, "bgp_enabled": bgpEnabled, - "ipsec_policy": flattenArmVpnGatewayConnectionIpSecPolicies(e.IpsecPolicies), + "ipsec_policy": flattenVpnGatewayConnectionIpSecPolicies(e.IpsecPolicies), "ratelimit_enabled": rateLimitEnabled, "local_azure_ip_address_enabled": useLocalAzureIpAddress, "policy_based_traffic_selector_enabled": usePolicyBased, @@ -540,7 +540,7 @@ func flattenArmVpnGatewayConnectionVpnSiteLinkConnections(input *[]network.VpnSi return output } -func expandArmVpnGatewayConnectionIpSecPolicies(input []interface{}) *[]network.IpsecPolicy { +func expandVpnGatewayConnectionIpSecPolicies(input []interface{}) *[]network.IpsecPolicy { if len(input) == 0 { return nil } @@ -565,7 +565,7 @@ func expandArmVpnGatewayConnectionIpSecPolicies(input []interface{}) *[]network. return &result } -func flattenArmVpnGatewayConnectionIpSecPolicies(input *[]network.IpsecPolicy) []interface{} { +func flattenVpnGatewayConnectionIpSecPolicies(input *[]network.IpsecPolicy) []interface{} { if input == nil { return []interface{}{} } @@ -600,7 +600,7 @@ func flattenArmVpnGatewayConnectionIpSecPolicies(input *[]network.IpsecPolicy) [ return output } -func expandArmVpnGatewayConnectionRoutingConfiguration(input []interface{}) *network.RoutingConfiguration { +func expandVpnGatewayConnectionRoutingConfiguration(input []interface{}) *network.RoutingConfiguration { if len(input) == 0 || input[0] == nil { return nil } @@ -613,7 +613,7 @@ func expandArmVpnGatewayConnectionRoutingConfiguration(input []interface{}) *net return output } -func flattenArmVpnGatewayConnectionRoutingConfiguration(input *network.RoutingConfiguration) []interface{} { +func flattenVpnGatewayConnectionRoutingConfiguration(input *network.RoutingConfiguration) []interface{} { if input == nil { return []interface{}{} } diff --git a/azurerm/internal/services/network/vpn_gateway_resource.go b/azurerm/internal/services/network/vpn_gateway_resource.go index cd374f6cdceb..1af02382d627 100644 --- a/azurerm/internal/services/network/vpn_gateway_resource.go +++ b/azurerm/internal/services/network/vpn_gateway_resource.go @@ -25,12 +25,12 @@ import ( var VPNGatewayResourceName = "azurerm_vpn_gateway" -func resourceArmVPNGateway() *schema.Resource { +func resourceVPNGateway() *schema.Resource { return &schema.Resource{ - Create: resourceArmVPNGatewayCreate, - Read: resourceArmVPNGatewayRead, - Update: resourceArmVPNGatewayUpdate, - Delete: resourceArmVPNGatewayDelete, + Create: resourceVPNGatewayCreate, + Read: resourceVPNGatewayRead, + Update: resourceVPNGatewayUpdate, + Delete: resourceVPNGatewayDelete, Importer: &schema.ResourceImporter{ State: schema.ImportStatePassthrough, }, @@ -180,7 +180,7 @@ func resourceArmVPNGateway() *schema.Resource { } } -func resourceArmVPNGatewayCreate(d *schema.ResourceData, meta interface{}) error { +func resourceVPNGatewayCreate(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VpnGatewaysClient ctx, cancel := timeouts.ForCreate(meta.(*clients.Client).StopContext, d) defer cancel() @@ -258,10 +258,10 @@ func resourceArmVPNGatewayCreate(d *schema.ResourceData, meta interface{}) error d.SetId(*resp.ID) - return resourceArmVPNGatewayRead(d, meta) + return resourceVPNGatewayRead(d, meta) } -func resourceArmVPNGatewayUpdate(d *schema.ResourceData, meta interface{}) error { +func resourceVPNGatewayUpdate(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VpnGatewaysClient ctx, cancel := timeouts.ForUpdate(meta.(*clients.Client).StopContext, d) defer cancel() @@ -309,10 +309,10 @@ func resourceArmVPNGatewayUpdate(d *schema.ResourceData, meta interface{}) error return err } - return resourceArmVPNGatewayRead(d, meta) + return resourceVPNGatewayRead(d, meta) } -func resourceArmVPNGatewayRead(d *schema.ResourceData, meta interface{}) error { +func resourceVPNGatewayRead(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VpnGatewaysClient ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() @@ -360,7 +360,7 @@ func resourceArmVPNGatewayRead(d *schema.ResourceData, meta interface{}) error { return tags.FlattenAndSet(d, resp.Tags) } -func resourceArmVPNGatewayDelete(d *schema.ResourceData, meta interface{}) error { +func resourceVPNGatewayDelete(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VpnGatewaysClient ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d) defer cancel() diff --git a/azurerm/internal/services/network/vpn_server_configuration_resource.go b/azurerm/internal/services/network/vpn_server_configuration_resource.go index 5ac2105faf7d..9aec3b0a075f 100644 --- a/azurerm/internal/services/network/vpn_server_configuration_resource.go +++ b/azurerm/internal/services/network/vpn_server_configuration_resource.go @@ -16,12 +16,12 @@ import ( "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils" ) -func resourceArmVPNServerConfiguration() *schema.Resource { +func resourceVPNServerConfiguration() *schema.Resource { return &schema.Resource{ - Create: resourceArmVPNServerConfigurationCreateUpdate, - Read: resourceArmVPNServerConfigurationRead, - Update: resourceArmVPNServerConfigurationCreateUpdate, - Delete: resourceArmVPNServerConfigurationDelete, + Create: resourceVPNServerConfigurationCreateUpdate, + Read: resourceVPNServerConfigurationRead, + Update: resourceVPNServerConfigurationCreateUpdate, + Delete: resourceVPNServerConfigurationDelete, Importer: &schema.ResourceImporter{ State: schema.ImportStatePassthrough, }, @@ -385,7 +385,7 @@ func resourceArmVPNServerConfiguration() *schema.Resource { } } -func resourceArmVPNServerConfigurationCreateUpdate(d *schema.ResourceData, meta interface{}) error { +func resourceVPNServerConfigurationCreateUpdate(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VpnServerConfigurationsClient ctx, cancel := timeouts.ForCreateUpdate(meta.(*clients.Client).StopContext, d) defer cancel() @@ -511,10 +511,10 @@ func resourceArmVPNServerConfigurationCreateUpdate(d *schema.ResourceData, meta d.SetId(*resp.ID) - return resourceArmVPNServerConfigurationRead(d, meta) + return resourceVPNServerConfigurationRead(d, meta) } -func resourceArmVPNServerConfigurationRead(d *schema.ResourceData, meta interface{}) error { +func resourceVPNServerConfigurationRead(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VpnServerConfigurationsClient ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() @@ -595,7 +595,7 @@ func resourceArmVPNServerConfigurationRead(d *schema.ResourceData, meta interfac return tags.FlattenAndSet(d, resp.Tags) } -func resourceArmVPNServerConfigurationDelete(d *schema.ResourceData, meta interface{}) error { +func resourceVPNServerConfigurationDelete(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VpnServerConfigurationsClient ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d) defer cancel() diff --git a/azurerm/internal/services/network/vpn_site_resource.go b/azurerm/internal/services/network/vpn_site_resource.go index 057d15cee0c9..897e447f0906 100644 --- a/azurerm/internal/services/network/vpn_site_resource.go +++ b/azurerm/internal/services/network/vpn_site_resource.go @@ -24,12 +24,12 @@ import ( "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils" ) -func resourceArmVpnSite() *schema.Resource { +func resourceVpnSite() *schema.Resource { return &schema.Resource{ - Create: resourceArmVpnSiteCreateUpdate, - Read: resourceArmVpnSiteRead, - Update: resourceArmVpnSiteCreateUpdate, - Delete: resourceArmVpnSiteDelete, + Create: resourceVpnSiteCreateUpdate, + Read: resourceVpnSiteRead, + Update: resourceVpnSiteCreateUpdate, + Delete: resourceVpnSiteDelete, Importer: azSchema.ValidateResourceIDPriorToImport(func(id string) error { _, err := parse.VpnSiteID(id) @@ -146,7 +146,7 @@ func resourceArmVpnSite() *schema.Resource { } } -func resourceArmVpnSiteCreateUpdate(d *schema.ResourceData, meta interface{}) error { +func resourceVpnSiteCreateUpdate(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VpnSitesClient ctx, cancel := timeouts.ForCreateUpdate(meta.(*clients.Client).StopContext, d) defer cancel() @@ -173,9 +173,9 @@ func resourceArmVpnSiteCreateUpdate(d *schema.ResourceData, meta interface{}) er Location: &location, VpnSiteProperties: &network.VpnSiteProperties{ VirtualWan: &network.SubResource{ID: utils.String(d.Get("virtual_wan_id").(string))}, - DeviceProperties: expandArmVpnSiteDeviceProperties(d), - AddressSpace: expandArmVpnSiteAddressSpace(d.Get("address_cidrs").(*schema.Set).List()), - VpnSiteLinks: expandArmVpnSiteLinks(d.Get("link").([]interface{})), + DeviceProperties: expandVpnSiteDeviceProperties(d), + AddressSpace: expandVpnSiteAddressSpace(d.Get("address_cidrs").(*schema.Set).List()), + VpnSiteLinks: expandVpnSiteLinks(d.Get("link").([]interface{})), }, Tags: tags.Expand(d.Get("tags").(map[string]interface{})), } @@ -203,10 +203,10 @@ func resourceArmVpnSiteCreateUpdate(d *schema.ResourceData, meta interface{}) er } d.SetId(id.ID()) - return resourceArmVpnSiteRead(d, meta) + return resourceVpnSiteRead(d, meta) } -func resourceArmVpnSiteRead(d *schema.ResourceData, meta interface{}) error { +func resourceVpnSiteRead(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VpnSitesClient ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() @@ -242,10 +242,10 @@ func resourceArmVpnSiteRead(d *schema.ResourceData, meta interface{}) error { if prop.VirtualWan != nil { d.Set("virtual_wan_id", prop.VirtualWan.ID) } - if err := d.Set("address_cidrs", flattenArmVpnSiteAddressSpace(prop.AddressSpace)); err != nil { + if err := d.Set("address_cidrs", flattenVpnSiteAddressSpace(prop.AddressSpace)); err != nil { return fmt.Errorf("setting `address_cidrs`") } - if err := d.Set("link", flattenArmVpnSiteLinks(prop.VpnSiteLinks)); err != nil { + if err := d.Set("link", flattenVpnSiteLinks(prop.VpnSiteLinks)); err != nil { return fmt.Errorf("setting `link`") } } @@ -253,7 +253,7 @@ func resourceArmVpnSiteRead(d *schema.ResourceData, meta interface{}) error { return tags.FlattenAndSet(d, resp.Tags) } -func resourceArmVpnSiteDelete(d *schema.ResourceData, meta interface{}) error { +func resourceVpnSiteDelete(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.VpnSitesClient ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d) defer cancel() @@ -276,7 +276,7 @@ func resourceArmVpnSiteDelete(d *schema.ResourceData, meta interface{}) error { return nil } -func expandArmVpnSiteDeviceProperties(d *schema.ResourceData) *network.DeviceProperties { +func expandVpnSiteDeviceProperties(d *schema.ResourceData) *network.DeviceProperties { vendor, model := d.Get("device_vendor").(string), d.Get("device_model").(string) if vendor == "" && model == "" { return nil @@ -292,7 +292,7 @@ func expandArmVpnSiteDeviceProperties(d *schema.ResourceData) *network.DevicePro return output } -func expandArmVpnSiteAddressSpace(input []interface{}) *network.AddressSpace { +func expandVpnSiteAddressSpace(input []interface{}) *network.AddressSpace { if len(input) == 0 { return nil } @@ -307,14 +307,14 @@ func expandArmVpnSiteAddressSpace(input []interface{}) *network.AddressSpace { } } -func flattenArmVpnSiteAddressSpace(input *network.AddressSpace) []interface{} { +func flattenVpnSiteAddressSpace(input *network.AddressSpace) []interface{} { if input == nil { return nil } return utils.FlattenStringSlice(input.AddressPrefixes) } -func expandArmVpnSiteLinks(input []interface{}) *[]network.VpnSiteLink { +func expandVpnSiteLinks(input []interface{}) *[]network.VpnSiteLink { if len(input) == 0 { return nil } @@ -344,7 +344,7 @@ func expandArmVpnSiteLinks(input []interface{}) *[]network.VpnSiteLink { link.VpnSiteLinkProperties.Fqdn = utils.String(v.(string)) } if v, ok := e["bgp"]; ok { - link.VpnSiteLinkProperties.BgpProperties = expandArmVpnSiteVpnLinkBgpSettings(v.([]interface{})) + link.VpnSiteLinkProperties.BgpProperties = expandVpnSiteVpnLinkBgpSettings(v.([]interface{})) } result = append(result, link) @@ -353,7 +353,7 @@ func expandArmVpnSiteLinks(input []interface{}) *[]network.VpnSiteLink { return &result } -func flattenArmVpnSiteLinks(input *[]network.VpnSiteLink) []interface{} { +func flattenVpnSiteLinks(input *[]network.VpnSiteLink) []interface{} { if input == nil { return nil } @@ -397,7 +397,7 @@ func flattenArmVpnSiteLinks(input *[]network.VpnSiteLink) []interface{} { } } - bgpProperty = flattenArmVpnSiteVpnSiteBgpSettings(prop.BgpProperties) + bgpProperty = flattenVpnSiteVpnSiteBgpSettings(prop.BgpProperties) } link := map[string]interface{}{ @@ -416,7 +416,7 @@ func flattenArmVpnSiteLinks(input *[]network.VpnSiteLink) []interface{} { return output } -func expandArmVpnSiteVpnLinkBgpSettings(input []interface{}) *network.VpnLinkBgpSettings { +func expandVpnSiteVpnLinkBgpSettings(input []interface{}) *network.VpnLinkBgpSettings { if len(input) == 0 || input[0] == nil { return nil } @@ -429,7 +429,7 @@ func expandArmVpnSiteVpnLinkBgpSettings(input []interface{}) *network.VpnLinkBgp } } -func flattenArmVpnSiteVpnSiteBgpSettings(input *network.VpnLinkBgpSettings) []interface{} { +func flattenVpnSiteVpnSiteBgpSettings(input *network.VpnLinkBgpSettings) []interface{} { if input == nil { return nil } diff --git a/azurerm/internal/services/network/web_application_firewall_policy_data_source.go b/azurerm/internal/services/network/web_application_firewall_policy_data_source.go index fb10d53dddf8..dbdd7ffd7150 100644 --- a/azurerm/internal/services/network/web_application_firewall_policy_data_source.go +++ b/azurerm/internal/services/network/web_application_firewall_policy_data_source.go @@ -13,9 +13,9 @@ import ( "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils" ) -func dataArmWebApplicationFirewallPolicy() *schema.Resource { +func dataWebApplicationFirewallPolicy() *schema.Resource { return &schema.Resource{ - Read: dataSourceArmWebApplicationFirewallPolicy, + Read: dataSourceWebApplicationFirewallPolicy, Timeouts: &schema.ResourceTimeout{ Read: schema.DefaultTimeout(5 * time.Minute), @@ -37,7 +37,7 @@ func dataArmWebApplicationFirewallPolicy() *schema.Resource { } } -func dataSourceArmWebApplicationFirewallPolicy(d *schema.ResourceData, meta interface{}) error { +func dataSourceWebApplicationFirewallPolicy(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.WebApplicationFirewallPoliciesClient ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() diff --git a/azurerm/internal/services/network/web_application_firewall_policy_resource.go b/azurerm/internal/services/network/web_application_firewall_policy_resource.go index 6ce85d484bf1..7b0733d1c453 100644 --- a/azurerm/internal/services/network/web_application_firewall_policy_resource.go +++ b/azurerm/internal/services/network/web_application_firewall_policy_resource.go @@ -18,12 +18,12 @@ import ( "github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils" ) -func resourceArmWebApplicationFirewallPolicy() *schema.Resource { +func resourceWebApplicationFirewallPolicy() *schema.Resource { return &schema.Resource{ - Create: resourceArmWebApplicationFirewallPolicyCreateUpdate, - Read: resourceArmWebApplicationFirewallPolicyRead, - Update: resourceArmWebApplicationFirewallPolicyCreateUpdate, - Delete: resourceArmWebApplicationFirewallPolicyDelete, + Create: resourceWebApplicationFirewallPolicyCreateUpdate, + Read: resourceWebApplicationFirewallPolicyRead, + Update: resourceWebApplicationFirewallPolicyCreateUpdate, + Delete: resourceWebApplicationFirewallPolicyDelete, Importer: &schema.ResourceImporter{ State: schema.ImportStatePassthrough, @@ -287,7 +287,7 @@ func resourceArmWebApplicationFirewallPolicy() *schema.Resource { } } -func resourceArmWebApplicationFirewallPolicyCreateUpdate(d *schema.ResourceData, meta interface{}) error { +func resourceWebApplicationFirewallPolicyCreateUpdate(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.WebApplicationFirewallPoliciesClient ctx, cancel := timeouts.ForCreateUpdate(meta.(*clients.Client).StopContext, d) defer cancel() @@ -316,9 +316,9 @@ func resourceArmWebApplicationFirewallPolicyCreateUpdate(d *schema.ResourceData, parameters := network.WebApplicationFirewallPolicy{ Location: utils.String(location), WebApplicationFirewallPolicyPropertiesFormat: &network.WebApplicationFirewallPolicyPropertiesFormat{ - CustomRules: expandArmWebApplicationFirewallPolicyWebApplicationFirewallCustomRule(customRules), - PolicySettings: expandArmWebApplicationFirewallPolicyPolicySettings(policySettings), - ManagedRules: expandArmWebApplicationFirewallPolicyManagedRulesDefinition(managedRules), + CustomRules: expandWebApplicationFirewallPolicyWebApplicationFirewallCustomRule(customRules), + PolicySettings: expandWebApplicationFirewallPolicyPolicySettings(policySettings), + ManagedRules: expandWebApplicationFirewallPolicyManagedRulesDefinition(managedRules), }, Tags: tags.Expand(t), } @@ -336,10 +336,10 @@ func resourceArmWebApplicationFirewallPolicyCreateUpdate(d *schema.ResourceData, } d.SetId(*resp.ID) - return resourceArmWebApplicationFirewallPolicyRead(d, meta) + return resourceWebApplicationFirewallPolicyRead(d, meta) } -func resourceArmWebApplicationFirewallPolicyRead(d *schema.ResourceData, meta interface{}) error { +func resourceWebApplicationFirewallPolicyRead(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.WebApplicationFirewallPoliciesClient ctx, cancel := timeouts.ForRead(meta.(*clients.Client).StopContext, d) defer cancel() @@ -367,16 +367,16 @@ func resourceArmWebApplicationFirewallPolicyRead(d *schema.ResourceData, meta in d.Set("location", azure.NormalizeLocation(*location)) } if webApplicationFirewallPolicyPropertiesFormat := resp.WebApplicationFirewallPolicyPropertiesFormat; webApplicationFirewallPolicyPropertiesFormat != nil { - if err := d.Set("custom_rules", flattenArmWebApplicationFirewallPolicyWebApplicationFirewallCustomRule(webApplicationFirewallPolicyPropertiesFormat.CustomRules)); err != nil { + if err := d.Set("custom_rules", flattenWebApplicationFirewallPolicyWebApplicationFirewallCustomRule(webApplicationFirewallPolicyPropertiesFormat.CustomRules)); err != nil { return fmt.Errorf("Error setting `custom_rules`: %+v", err) } - if err := d.Set("policy_settings", flattenArmWebApplicationFirewallPolicyPolicySettings(webApplicationFirewallPolicyPropertiesFormat.PolicySettings)); err != nil { + if err := d.Set("policy_settings", flattenWebApplicationFirewallPolicyPolicySettings(webApplicationFirewallPolicyPropertiesFormat.PolicySettings)); err != nil { return fmt.Errorf("Error setting `policy_settings`: %+v", err) } - if err := d.Set("managed_rules", flattenArmWebApplicationFirewallPolicyManagedRulesDefinition(webApplicationFirewallPolicyPropertiesFormat.ManagedRules)); err != nil { + if err := d.Set("managed_rules", flattenWebApplicationFirewallPolicyManagedRulesDefinition(webApplicationFirewallPolicyPropertiesFormat.ManagedRules)); err != nil { return fmt.Errorf("Error setting `managed_rules`: %+v", err) } - if err := d.Set("managed_rules", flattenArmWebApplicationFirewallPolicyManagedRulesDefinition(webApplicationFirewallPolicyPropertiesFormat.ManagedRules)); err != nil { + if err := d.Set("managed_rules", flattenWebApplicationFirewallPolicyManagedRulesDefinition(webApplicationFirewallPolicyPropertiesFormat.ManagedRules)); err != nil { return fmt.Errorf("Error setting `managed_rules`: %+v", err) } } @@ -384,7 +384,7 @@ func resourceArmWebApplicationFirewallPolicyRead(d *schema.ResourceData, meta in return tags.FlattenAndSet(d, resp.Tags) } -func resourceArmWebApplicationFirewallPolicyDelete(d *schema.ResourceData, meta interface{}) error { +func resourceWebApplicationFirewallPolicyDelete(d *schema.ResourceData, meta interface{}) error { client := meta.(*clients.Client).Network.WebApplicationFirewallPoliciesClient ctx, cancel := timeouts.ForDelete(meta.(*clients.Client).StopContext, d) defer cancel() @@ -413,7 +413,7 @@ func resourceArmWebApplicationFirewallPolicyDelete(d *schema.ResourceData, meta return nil } -func expandArmWebApplicationFirewallPolicyWebApplicationFirewallCustomRule(input []interface{}) *[]network.WebApplicationFirewallCustomRule { +func expandWebApplicationFirewallPolicyWebApplicationFirewallCustomRule(input []interface{}) *[]network.WebApplicationFirewallCustomRule { results := make([]network.WebApplicationFirewallCustomRule, 0) for _, item := range input { v := item.(map[string]interface{}) @@ -425,7 +425,7 @@ func expandArmWebApplicationFirewallPolicyWebApplicationFirewallCustomRule(input result := network.WebApplicationFirewallCustomRule{ Action: network.WebApplicationFirewallAction(action), - MatchConditions: expandArmWebApplicationFirewallPolicyMatchCondition(matchConditions), + MatchConditions: expandWebApplicationFirewallPolicyMatchCondition(matchConditions), Name: utils.String(name), Priority: utils.Int32(int32(priority)), RuleType: network.WebApplicationFirewallRuleType(ruleType), @@ -436,7 +436,7 @@ func expandArmWebApplicationFirewallPolicyWebApplicationFirewallCustomRule(input return &results } -func expandArmWebApplicationFirewallPolicyPolicySettings(input []interface{}) *network.PolicySettings { +func expandWebApplicationFirewallPolicyPolicySettings(input []interface{}) *network.PolicySettings { if len(input) == 0 { return nil } @@ -461,7 +461,7 @@ func expandArmWebApplicationFirewallPolicyPolicySettings(input []interface{}) *n return &result } -func expandArmWebApplicationFirewallPolicyManagedRulesDefinition(input []interface{}) *network.ManagedRulesDefinition { +func expandWebApplicationFirewallPolicyManagedRulesDefinition(input []interface{}) *network.ManagedRulesDefinition { if len(input) == 0 { return nil } @@ -471,12 +471,12 @@ func expandArmWebApplicationFirewallPolicyManagedRulesDefinition(input []interfa managedRuleSets := v["managed_rule_set"].([]interface{}) return &network.ManagedRulesDefinition{ - Exclusions: expandArmWebApplicationFirewallPolicyExclusions(exclusions), - ManagedRuleSets: expandArmWebApplicationFirewallPolicyManagedRuleSet(managedRuleSets), + Exclusions: expandWebApplicationFirewallPolicyExclusions(exclusions), + ManagedRuleSets: expandWebApplicationFirewallPolicyManagedRuleSet(managedRuleSets), } } -func expandArmWebApplicationFirewallPolicyExclusions(input []interface{}) *[]network.OwaspCrsExclusionEntry { +func expandWebApplicationFirewallPolicyExclusions(input []interface{}) *[]network.OwaspCrsExclusionEntry { results := make([]network.OwaspCrsExclusionEntry, 0) for _, item := range input { v := item.(map[string]interface{}) @@ -496,7 +496,7 @@ func expandArmWebApplicationFirewallPolicyExclusions(input []interface{}) *[]net return &results } -func expandArmWebApplicationFirewallPolicyManagedRuleSet(input []interface{}) *[]network.ManagedRuleSet { +func expandWebApplicationFirewallPolicyManagedRuleSet(input []interface{}) *[]network.ManagedRuleSet { results := make([]network.ManagedRuleSet, 0) for _, item := range input { v := item.(map[string]interface{}) @@ -510,7 +510,7 @@ func expandArmWebApplicationFirewallPolicyManagedRuleSet(input []interface{}) *[ result := network.ManagedRuleSet{ RuleSetType: utils.String(ruleSetType), RuleSetVersion: utils.String(ruleSetVersion), - RuleGroupOverrides: expandArmWebApplicationFirewallPolicyRuleGroupOverrides(ruleGroupOverrides), + RuleGroupOverrides: expandWebApplicationFirewallPolicyRuleGroupOverrides(ruleGroupOverrides), } results = append(results, result) @@ -518,7 +518,7 @@ func expandArmWebApplicationFirewallPolicyManagedRuleSet(input []interface{}) *[ return &results } -func expandArmWebApplicationFirewallPolicyRuleGroupOverrides(input []interface{}) *[]network.ManagedRuleGroupOverride { +func expandWebApplicationFirewallPolicyRuleGroupOverrides(input []interface{}) *[]network.ManagedRuleGroupOverride { results := make([]network.ManagedRuleGroupOverride, 0) for _, item := range input { v := item.(map[string]interface{}) @@ -528,7 +528,7 @@ func expandArmWebApplicationFirewallPolicyRuleGroupOverrides(input []interface{} result := network.ManagedRuleGroupOverride{ RuleGroupName: utils.String(ruleGroupName), - Rules: expandArmWebApplicationFirewallPolicyRules(disabledRules), + Rules: expandWebApplicationFirewallPolicyRules(disabledRules), } results = append(results, result) @@ -536,7 +536,7 @@ func expandArmWebApplicationFirewallPolicyRuleGroupOverrides(input []interface{} return &results } -func expandArmWebApplicationFirewallPolicyRules(input []interface{}) *[]network.ManagedRuleOverride { +func expandWebApplicationFirewallPolicyRules(input []interface{}) *[]network.ManagedRuleOverride { results := make([]network.ManagedRuleOverride, 0) for _, item := range input { ruleID := item.(string) @@ -551,7 +551,7 @@ func expandArmWebApplicationFirewallPolicyRules(input []interface{}) *[]network. return &results } -func expandArmWebApplicationFirewallPolicyMatchCondition(input []interface{}) *[]network.MatchCondition { +func expandWebApplicationFirewallPolicyMatchCondition(input []interface{}) *[]network.MatchCondition { results := make([]network.MatchCondition, 0) for _, item := range input { v := item.(map[string]interface{}) @@ -567,7 +567,7 @@ func expandArmWebApplicationFirewallPolicyMatchCondition(input []interface{}) *[ } result := network.MatchCondition{ MatchValues: utils.ExpandStringSlice(matchValues), - MatchVariables: expandArmWebApplicationFirewallPolicyMatchVariable(matchVariables), + MatchVariables: expandWebApplicationFirewallPolicyMatchVariable(matchVariables), NegationConditon: utils.Bool(negationCondition), Operator: network.WebApplicationFirewallOperator(operator), Transforms: &transforms, @@ -578,7 +578,7 @@ func expandArmWebApplicationFirewallPolicyMatchCondition(input []interface{}) *[ return &results } -func expandArmWebApplicationFirewallPolicyMatchVariable(input []interface{}) *[]network.MatchVariable { +func expandWebApplicationFirewallPolicyMatchVariable(input []interface{}) *[]network.MatchVariable { results := make([]network.MatchVariable, 0) for _, item := range input { v := item.(map[string]interface{}) @@ -595,7 +595,7 @@ func expandArmWebApplicationFirewallPolicyMatchVariable(input []interface{}) *[] return &results } -func flattenArmWebApplicationFirewallPolicyWebApplicationFirewallCustomRule(input *[]network.WebApplicationFirewallCustomRule) []interface{} { +func flattenWebApplicationFirewallPolicyWebApplicationFirewallCustomRule(input *[]network.WebApplicationFirewallCustomRule) []interface{} { results := make([]interface{}, 0) if input == nil { return results @@ -608,7 +608,7 @@ func flattenArmWebApplicationFirewallPolicyWebApplicationFirewallCustomRule(inpu v["name"] = *name } v["action"] = string(item.Action) - v["match_conditions"] = flattenArmWebApplicationFirewallPolicyMatchCondition(item.MatchConditions) + v["match_conditions"] = flattenWebApplicationFirewallPolicyMatchCondition(item.MatchConditions) if priority := item.Priority; priority != nil { v["priority"] = int(*priority) } @@ -620,7 +620,7 @@ func flattenArmWebApplicationFirewallPolicyWebApplicationFirewallCustomRule(inpu return results } -func flattenArmWebApplicationFirewallPolicyPolicySettings(input *network.PolicySettings) []interface{} { +func flattenWebApplicationFirewallPolicyPolicySettings(input *network.PolicySettings) []interface{} { if input == nil { return make([]interface{}, 0) } @@ -636,7 +636,7 @@ func flattenArmWebApplicationFirewallPolicyPolicySettings(input *network.PolicyS return []interface{}{result} } -func flattenArmWebApplicationFirewallPolicyManagedRulesDefinition(input *network.ManagedRulesDefinition) []interface{} { +func flattenWebApplicationFirewallPolicyManagedRulesDefinition(input *network.ManagedRulesDefinition) []interface{} { results := make([]interface{}, 0) if input == nil { return results @@ -644,15 +644,15 @@ func flattenArmWebApplicationFirewallPolicyManagedRulesDefinition(input *network v := make(map[string]interface{}) - v["exclusion"] = flattenArmWebApplicationFirewallPolicyExclusions(input.Exclusions) - v["managed_rule_set"] = flattenArmWebApplicationFirewallPolicyManagedRuleSets(input.ManagedRuleSets) + v["exclusion"] = flattenWebApplicationFirewallPolicyExclusions(input.Exclusions) + v["managed_rule_set"] = flattenWebApplicationFirewallPolicyManagedRuleSets(input.ManagedRuleSets) results = append(results, v) return results } -func flattenArmWebApplicationFirewallPolicyExclusions(input *[]network.OwaspCrsExclusionEntry) []interface{} { +func flattenWebApplicationFirewallPolicyExclusions(input *[]network.OwaspCrsExclusionEntry) []interface{} { results := make([]interface{}, 0) if input == nil { return results @@ -674,7 +674,7 @@ func flattenArmWebApplicationFirewallPolicyExclusions(input *[]network.OwaspCrsE return results } -func flattenArmWebApplicationFirewallPolicyManagedRuleSets(input *[]network.ManagedRuleSet) []interface{} { +func flattenWebApplicationFirewallPolicyManagedRuleSets(input *[]network.ManagedRuleSet) []interface{} { results := make([]interface{}, 0) if input == nil { return results @@ -685,14 +685,14 @@ func flattenArmWebApplicationFirewallPolicyManagedRuleSets(input *[]network.Mana v["type"] = item.RuleSetType v["version"] = item.RuleSetVersion - v["rule_group_override"] = flattenArmWebApplicationFirewallPolicyRuleGroupOverrides(item.RuleGroupOverrides) + v["rule_group_override"] = flattenWebApplicationFirewallPolicyRuleGroupOverrides(item.RuleGroupOverrides) results = append(results, v) } return results } -func flattenArmWebApplicationFirewallPolicyRuleGroupOverrides(input *[]network.ManagedRuleGroupOverride) []interface{} { +func flattenWebApplicationFirewallPolicyRuleGroupOverrides(input *[]network.ManagedRuleGroupOverride) []interface{} { results := make([]interface{}, 0) if input == nil { return results @@ -702,14 +702,14 @@ func flattenArmWebApplicationFirewallPolicyRuleGroupOverrides(input *[]network.M v := make(map[string]interface{}) v["rule_group_name"] = item.RuleGroupName - v["disabled_rules"] = flattenArmWebApplicationFirewallPolicyManagedRuleOverrides(item.Rules) + v["disabled_rules"] = flattenWebApplicationFirewallPolicyManagedRuleOverrides(item.Rules) results = append(results, v) } return results } -func flattenArmWebApplicationFirewallPolicyManagedRuleOverrides(input *[]network.ManagedRuleOverride) []string { +func flattenWebApplicationFirewallPolicyManagedRuleOverrides(input *[]network.ManagedRuleOverride) []string { results := make([]string, 0) if input == nil { return results @@ -726,7 +726,7 @@ func flattenArmWebApplicationFirewallPolicyManagedRuleOverrides(input *[]network return results } -func flattenArmWebApplicationFirewallPolicyMatchCondition(input *[]network.MatchCondition) []interface{} { +func flattenWebApplicationFirewallPolicyMatchCondition(input *[]network.MatchCondition) []interface{} { results := make([]interface{}, 0) if input == nil { return results @@ -742,7 +742,7 @@ func flattenArmWebApplicationFirewallPolicyMatchCondition(input *[]network.Match } } v["match_values"] = utils.FlattenStringSlice(item.MatchValues) - v["match_variables"] = flattenArmWebApplicationFirewallPolicyMatchVariable(item.MatchVariables) + v["match_variables"] = flattenWebApplicationFirewallPolicyMatchVariable(item.MatchVariables) if negationCondition := item.NegationConditon; negationCondition != nil { v["negation_condition"] = *negationCondition } @@ -755,7 +755,7 @@ func flattenArmWebApplicationFirewallPolicyMatchCondition(input *[]network.Match return results } -func flattenArmWebApplicationFirewallPolicyMatchVariable(input *[]network.MatchVariable) []interface{} { +func flattenWebApplicationFirewallPolicyMatchVariable(input *[]network.MatchVariable) []interface{} { results := make([]interface{}, 0) if input == nil { return results