Skip to content

Commit

Permalink
provider: ensure all locks are done in the same order (#4527)
Browse files Browse the repository at this point in the history
  • Loading branch information
katbyte committed Oct 10, 2019
1 parent 8359824 commit 495a5b6
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 16 deletions.
12 changes: 6 additions & 6 deletions azurerm/resource_arm_firewall.go
Original file line number Diff line number Diff line change
Expand Up @@ -119,12 +119,12 @@ func resourceArmFirewallCreateUpdate(d *schema.ResourceData, meta interface{}) e
locks.ByName(name, azureFirewallResourceName)
defer locks.UnlockByName(name, azureFirewallResourceName)

locks.MultipleByName(subnetToLock, subnetResourceName)
defer locks.UnlockMultipleByName(subnetToLock, subnetResourceName)

locks.MultipleByName(vnetToLock, virtualNetworkResourceName)
defer locks.UnlockMultipleByName(vnetToLock, virtualNetworkResourceName)

locks.MultipleByName(subnetToLock, subnetResourceName)
defer locks.UnlockMultipleByName(subnetToLock, subnetResourceName)

parameters := network.AzureFirewall{
Location: &location,
Tags: tags.Expand(t),
Expand Down Expand Up @@ -265,12 +265,12 @@ func resourceArmFirewallDelete(d *schema.ResourceData, meta interface{}) error {
locks.ByName(name, azureFirewallResourceName)
defer locks.UnlockByName(name, azureFirewallResourceName)

locks.MultipleByName(&subnetNamesToLock, subnetResourceName)
defer locks.UnlockMultipleByName(&subnetNamesToLock, subnetResourceName)

locks.MultipleByName(&virtualNetworkNamesToLock, virtualNetworkResourceName)
defer locks.UnlockMultipleByName(&virtualNetworkNamesToLock, virtualNetworkResourceName)

locks.MultipleByName(&subnetNamesToLock, subnetResourceName)
defer locks.UnlockMultipleByName(&subnetNamesToLock, subnetResourceName)

future, err := client.Delete(ctx, resourceGroup, name)
if err != nil {
return fmt.Errorf("Error deleting Azure Firewall %q (Resource Group %q): %+v", name, resourceGroup, err)
Expand Down
12 changes: 6 additions & 6 deletions azurerm/resource_arm_network_profile.go
Original file line number Diff line number Diff line change
Expand Up @@ -125,12 +125,12 @@ func resourceArmNetworkProfileCreateUpdate(d *schema.ResourceData, meta interfac
locks.ByName(name, azureNetworkProfileResourceName)
defer locks.UnlockByName(name, azureNetworkProfileResourceName)

locks.MultipleByName(subnetsToLock, subnetResourceName)
defer locks.UnlockMultipleByName(subnetsToLock, subnetResourceName)

locks.MultipleByName(vnetsToLock, virtualNetworkResourceName)
defer locks.UnlockMultipleByName(vnetsToLock, virtualNetworkResourceName)

locks.MultipleByName(subnetsToLock, subnetResourceName)
defer locks.UnlockMultipleByName(subnetsToLock, subnetResourceName)

parameters := network.Profile{
Location: &location,
Tags: tags.Expand(t),
Expand Down Expand Up @@ -232,12 +232,12 @@ func resourceArmNetworkProfileDelete(d *schema.ResourceData, meta interface{}) e
locks.ByName(name, azureNetworkProfileResourceName)
defer locks.UnlockByName(name, azureNetworkProfileResourceName)

locks.MultipleByName(subnetsToLock, subnetResourceName)
defer locks.UnlockMultipleByName(subnetsToLock, subnetResourceName)

locks.MultipleByName(vnetsToLock, virtualNetworkResourceName)
defer locks.UnlockMultipleByName(vnetsToLock, virtualNetworkResourceName)

locks.MultipleByName(subnetsToLock, subnetResourceName)
defer locks.UnlockMultipleByName(subnetsToLock, subnetResourceName)

if _, err = client.Delete(ctx, resourceGroup, name); err != nil {
return fmt.Errorf("Error deleting Network Profile %q (Resource Group %q): %+v", name, resourceGroup, err)
}
Expand Down
13 changes: 9 additions & 4 deletions azurerm/resource_arm_redis_cache.go
Original file line number Diff line number Diff line change
Expand Up @@ -325,10 +325,13 @@ func resourceArmRedisCacheCreate(d *schema.ResourceData, meta interface{}) error
}
subnetName := parsed.Path["subnets"]
virtualNetworkName := parsed.Path["virtualNetworks"]
locks.ByName(subnetName, subnetResourceName)
defer locks.UnlockByName(subnetName, subnetResourceName)

locks.ByName(virtualNetworkName, virtualNetworkResourceName)
defer locks.UnlockByName(virtualNetworkName, virtualNetworkResourceName)

locks.ByName(subnetName, subnetResourceName)
defer locks.UnlockByName(subnetName, subnetResourceName)

parameters.SubnetID = utils.String(v.(string))
}

Expand Down Expand Up @@ -579,10 +582,12 @@ func resourceArmRedisCacheDelete(d *schema.ResourceData, meta interface{}) error
}
subnetName := parsed.Path["subnets"]
virtualNetworkName := parsed.Path["virtualNetworks"]
locks.ByName(subnetName, subnetResourceName)
defer locks.UnlockByName(subnetName, subnetResourceName)

locks.ByName(virtualNetworkName, virtualNetworkResourceName)
defer locks.UnlockByName(virtualNetworkName, virtualNetworkResourceName)

locks.ByName(subnetName, subnetResourceName)
defer locks.UnlockByName(subnetName, subnetResourceName)
}
future, err := client.Delete(ctx, resGroup, name)
if err != nil {
Expand Down

0 comments on commit 495a5b6

Please sign in to comment.