Skip to content

Commit

Permalink
fixing comments from code review
Browse files Browse the repository at this point in the history
  • Loading branch information
tombuildsstuff committed Sep 12, 2019
1 parent e1790b4 commit 39ba7a9
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 59 deletions.
60 changes: 25 additions & 35 deletions azurerm/resource_arm_private_dns_zone_virtual_network_link.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,13 @@ package azurerm

import (
"fmt"
"time"

"github.com/Azure/azure-sdk-for-go/services/privatedns/mgmt/2018-09-01/privatedns"
"github.com/hashicorp/terraform/helper/resource"
"github.com/hashicorp/terraform/helper/schema"
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/helpers/azure"
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/helpers/response"
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/helpers/tf"
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/helpers/validate"
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/utils"
)

Expand All @@ -25,21 +24,24 @@ func resourceArmPrivateDnsZoneVirtualNetworkLink() *schema.Resource {

Schema: map[string]*schema.Schema{
"name": {
Type: schema.TypeString,
Required: true,
ForceNew: true,
Type: schema.TypeString,
Required: true,
ForceNew: true,
ValidateFunc: validate.NoEmptyStrings,
},

"private_dns_zone_name": {
Type: schema.TypeString,
Required: true,
ForceNew: true,
Type: schema.TypeString,
Required: true,
ForceNew: true,
ValidateFunc: validate.NoEmptyStrings,
},

"virtual_network_id": {
Type: schema.TypeString,
Required: true,
ForceNew: true,
Type: schema.TypeString,
Required: true,
ForceNew: true,
ValidateFunc: azure.ValidateResourceID,
},

"registration_enabled": {
Expand All @@ -48,7 +50,7 @@ func resourceArmPrivateDnsZoneVirtualNetworkLink() *schema.Resource {
Default: false,
},

"resource_group_name": azure.SchemaResourceGroupNameDiffSuppress(),
"resource_group_name": azure.SchemaResourceGroupName(),

"tags": tagsSchema(),
},
Expand Down Expand Up @@ -95,13 +97,12 @@ func resourceArmPrivateDnsZoneVirtualNetworkLinkCreateUpdate(d *schema.ResourceD
etag := ""
ifNoneMatch := "" // set to empty to allow updates to records after creation

_, err := client.CreateOrUpdate(ctx, resGroup, dnsZoneName, name, parameters, etag, ifNoneMatch)
future, err := client.CreateOrUpdate(ctx, resGroup, dnsZoneName, name, parameters, etag, ifNoneMatch)
if err != nil {
return fmt.Errorf("error creating/updating Private DNS Zone Virtual network link %q (Resource Group %q): %s", name, resGroup, err)
}

time.Sleep(time.Second * 20) // resource is slow to create / update, retry covers the create, sleeping to make update more reliable
if err := resource.Retry(120*time.Second, retryPrivateDnsZonesVirtualNetworkLinkClientGet(resGroup, dnsZoneName, name, meta)); err != nil {
if err = future.WaitForCompletionRef(ctx, client.Client); err != nil {
return fmt.Errorf("error waiting for Private DNS Zone Virtual network link %q to become available: %+v", name, err)
}

Expand All @@ -119,19 +120,6 @@ func resourceArmPrivateDnsZoneVirtualNetworkLinkCreateUpdate(d *schema.ResourceD
return resourceArmPrivateDnsZoneRead(d, meta)
}

func retryPrivateDnsZonesVirtualNetworkLinkClientGet(resGroup string, dnsZoneName string, name string, meta interface{}) func() *resource.RetryError {
return func() *resource.RetryError {
client := meta.(*ArmClient).privateDns.VirtualNetworkLinksClient
ctx := meta.(*ArmClient).StopContext

if _, err := client.Get(ctx, resGroup, dnsZoneName, name); err != nil {
return resource.RetryableError(err)
}

return nil
}
}

func resourceArmPrivateDnsZoneVirtualNetworkLinkRead(d *schema.ResourceData, meta interface{}) error {
client := meta.(*ArmClient).privateDns.VirtualNetworkLinksClient
ctx := meta.(*ArmClient).StopContext
Expand All @@ -145,10 +133,6 @@ func resourceArmPrivateDnsZoneVirtualNetworkLinkRead(d *schema.ResourceData, met
dnsZoneName := id.Path["privateDnsZones"]
name := id.Path["virtualNetworkLinks"]

if err := resource.Retry(120*time.Second, retryPrivateDnsZonesVirtualNetworkLinkClientGet(resGroup, dnsZoneName, name, meta)); err != nil {
return fmt.Errorf("error waiting for Private DNS Zone Virtual network link %q to become available: %+v", name, err)
}

resp, err := client.Get(ctx, resGroup, dnsZoneName, name)
if err != nil {
if utils.ResponseWasNotFound(resp.Response) {
Expand All @@ -161,8 +145,14 @@ func resourceArmPrivateDnsZoneVirtualNetworkLinkRead(d *schema.ResourceData, met
d.Set("name", name)
d.Set("resource_group_name", resGroup)
d.Set("private_dns_zone_name", dnsZoneName)
d.Set("virtual_network_id", resp.VirtualNetwork.ID)
d.Set("registration_enabled", resp.VirtualNetworkLinkProperties.RegistrationEnabled)

if props := resp.VirtualNetworkLinkProperties; props != nil {
d.Set("registration_enabled", props.RegistrationEnabled)

if network := props.VirtualNetwork; network != nil {
d.Set("virtual_network_id", network.ID)
}
}

flattenAndSetTags(d, resp.Tags)

Expand Down Expand Up @@ -195,7 +185,7 @@ func resourceArmPrivateDnsZoneVirtualNetworkLinkDelete(d *schema.ResourceData, m
if response.WasNotFound(future.Response()) {
return nil
}
return fmt.Errorf("error deleting Private DNS Zone Virtual network link %s (resource group %s): %+v", name, resGroup, err)
return fmt.Errorf("error waiting for deletion of Private DNS Zone Virtual network link %s (resource group %s): %+v", name, resGroup, err)
}

return nil
Expand Down
33 changes: 15 additions & 18 deletions azurerm/resource_arm_private_dns_zone_virtual_network_link_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import (
"fmt"
"net/http"
"testing"
"time"

"github.com/hashicorp/terraform/helper/resource"
"github.com/hashicorp/terraform/terraform"
Expand Down Expand Up @@ -119,8 +118,6 @@ func testCheckAzureRMPrivateDnsZoneVirtualNetworkLinkExists(resourceName string)
client := testAccProvider.Meta().(*ArmClient).privateDns.VirtualNetworkLinksClient
ctx := testAccProvider.Meta().(*ArmClient).StopContext

time.Sleep(time.Second * 20) // resource is slow to create / update, retry covers the create, sleeping to make update more reliable

resp, err := client.Get(ctx, resourceGroup, dnsZoneName, name)
if err != nil {
return fmt.Errorf("Bad: Get Private DNS zone virtual network link: %+v", err)
Expand Down Expand Up @@ -187,9 +184,9 @@ resource "azurerm_private_dns_zone" "test" {
}
resource "azurerm_private_dns_zone_virtual_network_link" "test" {
name = "acctest%d"
private_dns_zone_name = "${azurerm_private_dns_zone.test.name}"
virtual_network_id = "${azurerm_virtual_network.test.id}"
name = "acctest%d"
private_dns_zone_name = "${azurerm_private_dns_zone.test.name}"
virtual_network_id = "${azurerm_virtual_network.test.id}"
resource_group_name = "${azurerm_resource_group.test.name}"
}
Expand All @@ -203,8 +200,8 @@ func testAccAzureRMPrivateDnsZoneVirtualNetworkLink_requiresImport(rInt int, loc
resource "azurerm_private_dns_zone_virtual_network_link" "import" {
name = "${azurerm_private_dns_zone_virtual_network_link.name}
private_dns_zone_name = "${azurerm_private_dns_zone_virtual_network_link.private_dns_zone_name}"
virtual_network_id = "${azurerm_private_dns_zone_virtual_network_link.virtual_network_id}"
private_dns_zone_name = "${azurerm_private_dns_zone_virtual_network_link.private_dns_zone_name}"
virtual_network_id = "${azurerm_private_dns_zone_virtual_network_link.virtual_network_id}"
resource_group_name = "${azurerm_private_dns_zone_virtual_network_link.resource_group_name}"
}
`, template)
Expand Down Expand Up @@ -235,12 +232,12 @@ resource "azurerm_private_dns_zone" "test" {
}
resource "azurerm_private_dns_zone_virtual_network_link" "test" {
name = "acctest%d"
private_dns_zone_name = "${azurerm_private_dns_zone.test.name}"
virtual_network_id = "${azurerm_virtual_network.test.id}"
resource_group_name = "${azurerm_resource_group.test.name}"
name = "acctest%d"
private_dns_zone_name = "${azurerm_private_dns_zone.test.name}"
virtual_network_id = "${azurerm_virtual_network.test.id}"
resource_group_name = "${azurerm_resource_group.test.name}"
tags = {
tags = {
environment = "Production"
cost_center = "MSFT"
}
Expand Down Expand Up @@ -273,12 +270,12 @@ resource "azurerm_private_dns_zone" "test" {
}
resource "azurerm_private_dns_zone_virtual_network_link" "test" {
name = "acctestzone%d.com"
private_dns_zone_name = "${azurerm_private_dns_zone.test.name}"
virtual_network_id = "${azurerm_virtual_network.test.id}"
resource_group_name = "${azurerm_resource_group.test.name}"
name = "acctestzone%d.com"
private_dns_zone_name = "${azurerm_private_dns_zone.test.name}"
virtual_network_id = "${azurerm_virtual_network.test.id}"
resource_group_name = "${azurerm_resource_group.test.name}"
tags = {
tags = {
environment = "staging"
}
}
Expand Down
10 changes: 6 additions & 4 deletions website/azurerm.erb
Original file line number Diff line number Diff line change
Expand Up @@ -1534,16 +1534,18 @@
<li>
<a href="#">Private DNS Resources</a>
<ul class="nav">
<li>
<a href="/docs/providers/azurerm/r/private_dns_zone.html">azurerm_private_dns_zone</a>
<a href="/docs/providers/azurerm/r/private_dns_zone_virtual_network_link.html">azurerm_private_dns_zone_virtual_network_link</a>
</li>
<li>
<a href="/docs/providers/azurerm/r/private_dns_a_record.html">azurerm_private_dns_a_record</a>
</li>
<li>
<a href="/docs/providers/azurerm/r/private_dns_cname_record.html">azurerm_private_dns_cname_record</a>
</li>
<li>
<a href="/docs/providers/azurerm/r/private_dns_zone.html">azurerm_private_dns_zone</a>
</li>
<li>
<a href="/docs/providers/azurerm/r/private_dns_zone_virtual_network_link.html">azurerm_private_dns_zone_virtual_network_link</a>
</li>
</ul>
</li>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,12 +39,12 @@ The following arguments are supported:

* `private_dns_zone_name` - (Required) The name of the Private DNS zone (without a terminating dot). Changing this forces a new resource to be created.

* `resource_group_name` - (Required) Specifies the resource group where the resource exists. Changing this forces a new resource to be created.

* `virtual_network_id` - (Required) The Resource ID of the Virtual Network that should be linked to the DNS Zone. Changing this forces a new resource to be created.

* `registration_enabled` - (Optional) Is auto-registration of virtual machine records in the virtual network in the Private DNS zone enabled? Defaults to `false`.

* `resource_group_name` - (Required) Specifies the resource group where the resource exists. Changing this forces a new resource to be created.

* `tags` - (Optional) A mapping of tags to assign to the resource.

## Attributes Reference
Expand Down

0 comments on commit 39ba7a9

Please sign in to comment.