Skip to content

Commit

Permalink
Merge pull request #2725 from clearbank/redis_vnet_lock
Browse files Browse the repository at this point in the history
Redis vnet lock
  • Loading branch information
tombuildsstuff authored Jan 23, 2019
2 parents 4fe5778 + 8026ff2 commit 5e1ccd4
Showing 1 changed file with 30 additions and 0 deletions.
30 changes: 30 additions & 0 deletions azurerm/resource_arm_redis_cache.go
Original file line number Diff line number Diff line change
Expand Up @@ -248,6 +248,16 @@ func resourceArmRedisCacheCreate(d *schema.ResourceData, meta interface{}) error
}

if v, ok := d.GetOk("subnet_id"); ok {
parsed, parseErr := parseAzureResourceID(v.(string))
if parseErr != nil {
return fmt.Errorf("Error parsing Azure Resource ID %q", v.(string))
}
subnetName := parsed.Path["subnets"]
virtualNetworkName := parsed.Path["virtualNetworks"]
azureRMLockByName(subnetName, subnetResourceName)
defer azureRMUnlockByName(subnetName, subnetResourceName)
azureRMLockByName(virtualNetworkName, virtualNetworkResourceName)
defer azureRMUnlockByName(virtualNetworkName, virtualNetworkResourceName)
parameters.SubnetID = utils.String(v.(string))
}

Expand Down Expand Up @@ -477,6 +487,26 @@ func resourceArmRedisCacheDelete(d *schema.ResourceData, meta interface{}) error
resGroup := id.ResourceGroup
name := id.Path["Redis"]

read, err := redisClient.Get(ctx, resGroup, name)
if err != nil {
return fmt.Errorf("Error retrieving Redis Cache %q (Resource Group %q): %+v", name, resGroup, err)
}
if read.Properties == nil {
return fmt.Errorf("Error retrieving Redis Cache properties %q (Resource Group %q): `props` was nil", name, resGroup)
}
props := *read.Properties
if subnetID := props.SubnetID; subnetID != nil {
parsed, parseErr := parseAzureResourceID(*subnetID)
if parseErr != nil {
return fmt.Errorf("Error parsing Azure Resource ID %q", *subnetID)
}
subnetName := parsed.Path["subnets"]
virtualNetworkName := parsed.Path["virtualNetworks"]
azureRMLockByName(subnetName, subnetResourceName)
defer azureRMUnlockByName(subnetName, subnetResourceName)
azureRMLockByName(virtualNetworkName, virtualNetworkResourceName)
defer azureRMUnlockByName(virtualNetworkName, virtualNetworkResourceName)
}
future, err := redisClient.Delete(ctx, resGroup, name)
if err != nil {
if response.WasNotFound(future.Response()) {
Expand Down

0 comments on commit 5e1ccd4

Please sign in to comment.