Skip to content

Commit ad4bffe

Browse files
authored
add donotdelete lock to registration resource group' (#514)
* add donotdelete lock to registration resource group' * set resource level lock * fix lock comment
1 parent 2a9ef12 commit ad4bffe

File tree

1 file changed

+43
-4
lines changed

1 file changed

+43
-4
lines changed

Registration/RegisterWithAzure.psm1

Lines changed: 43 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -374,7 +374,7 @@ function Remove-AzsRegistration{
374374

375375
# Remove registration resource from Azure
376376
Log-Output "Removing registration resource from Azure..."
377-
Remove-RegistrationResource -ResourceId $registrationResource.ResourceId
377+
Remove-RegistrationResource -ResourceId $registrationResource.ResourceId -ResourceGroupName $ResourceGroupName
378378
}
379379
else
380380
{
@@ -792,7 +792,7 @@ Function UnRegister-AzsEnvironment{
792792
{
793793
Log-Output "Found registration resource in Azure: $($registrationResource.ResourceId)"
794794
Log-Output "Removing registration resource from Azure..."
795-
Remove-RegistrationResource -ResourceId $registrationResource.ResourceId
795+
Remove-RegistrationResource -ResourceId $registrationResource.ResourceId -ResourceGroupName $ResourceGroupName
796796
}
797797
else
798798
{
@@ -1171,13 +1171,24 @@ function New-RegistrationResource{
11711171
}
11721172

11731173
Log-Output "Resource creation params: $(ConvertTo-Json $resourceCreationParams)"
1174-
1174+
$resourceType = 'Microsoft.Azurestack/registrations'
11751175
do
11761176
{
11771177
try
11781178
{
1179+
1180+
## Remove any existing locks on the resource group
1181+
1182+
$lock = Get-AzureRmResourceLock -LockName 'RegistrationResourceLock' -ResourceGroupName $ResourceGroupName -ResourceType $resourceType -ResourceName $RegistrationName -ErrorAction SilentlyContinue
1183+
if ($lock)
1184+
{
1185+
Write-Verbose "Unlocking Registration resource lock 'RegistrationResourceLock'..." -Verbose
1186+
Remove-AzureRmResourceLock -LockId $lock.LockId -Force
1187+
}
1188+
11791189
Log-Output "Creating resource group '$ResourceGroupName' in location $ResourceGroupLocation."
11801190
$resourceGroup = New-AzureRmResourceGroup -Name $ResourceGroupName -Location $ResourceGroupLocation -Force
1191+
11811192
break
11821193
}
11831194
catch
@@ -1214,6 +1225,19 @@ function New-RegistrationResource{
12141225
}
12151226
}
12161227
} while ($currentAttempt -lt $maxAttempt)
1228+
1229+
1230+
## Registration resource is needed for syndication. Placing resource lock to prevent accidental deletion.
1231+
Write-Verbose -Message "Registration resource $RegistrationName is needed for syndication. Placing resource lock to prevent accidental deletion."
1232+
$lockNotes ="Registration resource $RegistrationName is needed for syndication. Placing resource lock to prevent accidental deletion."
1233+
New-AzureRmResourceLock -LockLevel CanNotDelete `
1234+
-LockNotes $lockNotes `
1235+
-LockName 'RegistrationResourceLock' `
1236+
-ResourceName $RegistrationName `
1237+
-ResourceGroupName $ResourceGroupName `
1238+
-ResourceType $resourceType `
1239+
-Force -Verbose
1240+
Write-Verbose -Message "Resource lock placed successfully."
12171241
}
12181242

12191243
<#
@@ -1622,7 +1646,10 @@ function Remove-RegistrationResource{
16221646
[CmdletBinding()]
16231647
param(
16241648
[Parameter(Mandatory = $true)]
1625-
[String] $ResourceId
1649+
[String] $ResourceId,
1650+
1651+
[Parameter(Mandatory = $false)]
1652+
[String] $ResourceGroupName = 'azurestack'
16261653
)
16271654

16281655
$currentAttempt = 0
@@ -1632,6 +1659,18 @@ function Remove-RegistrationResource{
16321659
{
16331660
try
16341661
{
1662+
## Remove any existing Resource level lock before deleting the resource
1663+
$existingRegistrationResource = Get-AzureRmResource -ResourceId $ResourceId
1664+
$resourceName = $existingRegistrationResource.Name
1665+
1666+
$resourceType = 'Microsoft.Azurestack/registrations'
1667+
$lock = Get-AzureRmResourceLock -LockName 'RegistrationResourceLock' -ResourceGroupName $ResourceGroupName -ResourceType $resourceType -ResourceName $resourceName -ErrorAction SilentlyContinue
1668+
if ($lock)
1669+
{
1670+
Write-Verbose "Removing Registration resource lock 'RegistrationResourceLock'..." -Verbose
1671+
Remove-AzureRmResourceLock -LockId $lock.LockId -Force
1672+
}
1673+
16351674
Remove-AzureRmResource -ResourceId $ResourceId -Force -Verbose
16361675
break
16371676
}

0 commit comments

Comments
 (0)