@@ -340,10 +340,11 @@ function Test-AzureVMMUA
340
340
$location = " centraluseuap"
341
341
$resourceGroupName = " hiagarg"
342
342
$vaultName = " mua-pstest-vault"
343
- $vmName = " VM;iaasvmcontainerv2;hiagarg;hiaganewvm2 "
344
- $vmFriendlyName = " hiaganewvm2 "
343
+ $vmName = " VM;iaasvmcontainerv2;hiagarg;hiaganevm4 "
344
+ $vmFriendlyName = " hiaganevm4 "
345
345
# $resGuardId = "/subscriptions/38304e13-357e-405e-9e9a-220351dcce8c/resourceGroups/iaasvm-pstest-rg/providers/Microsoft.DataProtection/resourceGuards/mua-pstest-rguard"
346
- $resGuardId = " /subscriptions/38304e13-357e-405e-9e9a-220351dcce8c/resourceGroups/hiagarg/providers/Microsoft.DataProtection/ResourceGuards/test1-rGuard" # HiagaPSTest1
346
+ # /subscriptions/063bf7bc-e4dc-4cde-8840-8416fbd7921e/resourcegroups/amchandnPERG/providers/Microsoft.DataProtection/resourceGuards/HiagaPSTest1
347
+ $resGuardId = " /subscriptions/38304e13-357e-405e-9e9a-220351dcce8c/resourceGroups/hiagarg/providers/Microsoft.DataProtection/ResourceGuards/test1-rGuard"
347
348
$lowerRetentionPolicy = " mua-vm-lowerDailyRet"
348
349
349
350
try
@@ -353,7 +354,21 @@ function Test-AzureVMMUA
353
354
354
355
# Enable protection on hiaganewVM2 with default policy
355
356
$pol = Get-AzRecoveryServicesBackupProtectionPolicy - VaultId $vault.ID - Name " DefaultPolicy"
356
- Enable-AzRecoveryServicesBackupProtection - Policy $pol - ResourceGroupName $resourceGroupName - Name $vmFriendlyName - VaultId $vault.ID
357
+
358
+ $item = Get-AzRecoveryServicesBackupItem - VaultId $vault.ID - BackupManagementType AzureVM - WorkloadType AzureVM | Where-Object { $_.Name -match $vmFriendlyName }
359
+ if ($item -eq $null )
360
+ {
361
+ $item = Enable-AzRecoveryServicesBackupProtection - Policy $pol - ResourceGroupName $resourceGroupName - Name $vmFriendlyName - VaultId $vault.ID
362
+ }
363
+ else
364
+ {
365
+ Undo-AzRecoveryServicesBackupItemDeletion - Item $item - VaultId $vault.ID - Force
366
+ $item = Get-AzRecoveryServicesBackupItem - VaultId $vault.ID - BackupManagementType AzureVM - WorkloadType AzureVM | Where-Object { $_.Name -match $vmFriendlyName }
367
+ $enable = Enable-AzRecoveryServicesBackupProtection - Item $item - Policy $pol - VaultId $vault.ID
368
+ $item = Get-AzRecoveryServicesBackupItem - VaultId $vault.ID - BackupManagementType AzureVM - WorkloadType AzureVM | Where-Object { $_.Name -match $vmFriendlyName }
369
+ Assert-True { $item.ProtectionState -eq " Protected" -or $item.ProtectionState -eq " IRPending" }
370
+ }
371
+
357
372
358
373
# create resource guard mapping
359
374
$resGuardMapping = Set-AzRecoveryServicesResourceGuardMapping - ResourceGuardId $resGuardId - VaultId $vault.ID
@@ -373,16 +388,30 @@ function Test-AzureVMMUA
373
388
374
389
# modify protection
375
390
$pol = Get-AzRecoveryServicesBackupProtectionPolicy - VaultId $vault.ID - Name $lowerRetentionPolicy
376
- $item = Get-AzRecoveryServicesBackupItem - VaultId $vault.ID - BackupManagementType AzureVM - WorkloadType AzureVM
391
+ $item = Get-AzRecoveryServicesBackupItem - VaultId $vault.ID - BackupManagementType AzureVM - WorkloadType AzureVM | Where-Object { $_ .Name -match $vmFriendlyName }
377
392
378
393
# modify protection with lower retention policy
379
394
Enable-AzRecoveryServicesBackupProtection - Item $item - Policy $pol - VaultId $vault.ID
380
395
381
396
# modify protection with regular policy
382
397
$pol = Get-AzRecoveryServicesBackupProtectionPolicy - VaultId $vault.ID - Name " DefaultPolicy"
383
- $item = Get-AzRecoveryServicesBackupItem - VaultId $vault.ID - BackupManagementType AzureVM - WorkloadType AzureVM
384
- Enable-AzRecoveryServicesBackupProtection - Item $item - Policy $pol - VaultId $vault.ID
398
+ $item = Get-AzRecoveryServicesBackupItem - VaultId $vault.ID - BackupManagementType AzureVM - WorkloadType AzureVM | Where-Object { $_.Name -match $vmFriendlyName }
399
+ Enable-AzRecoveryServicesBackupProtection - Item $item - Policy $pol - VaultId $vault.ID
400
+
401
+ # Start Suspend Bakcup scenario with MUA
402
+ $updateVault = Update-AzRecoveryServicesVault - ResourceGroupName $resourceGroupName - Name $vault.Name - ImmutabilityState Unlocked
403
+ Assert-True { $updateVault.Properties.ImmutabilitySettings.ImmutabilityState -eq " Unlocked" }
404
+
405
+ # Immutability needs to be enabled for suspend backup
406
+ $disableJob = Disable-AzRecoveryServicesBackupProtection - Item $item - VaultId $vault.ID - Force - RetainRecoveryPointsAsPerPolicy
407
+ $item = Get-AzRecoveryServicesBackupItem - VaultId $vault.ID - BackupManagementType AzureVM - WorkloadType AzureVM | Where-Object { $_.Name -match $vmFriendlyName }
408
+ Assert-True { $disableJob.Status -eq " Completed" }
409
+ Assert-True { $item.ProtectionState -eq " BackupsSuspended" }
410
+
411
+ $enable = Enable-AzRecoveryServicesBackupProtection - Item $item - Policy $pol - VaultId $vault.ID
385
412
413
+ $updateVault = Update-AzRecoveryServicesVault - ResourceGroupName $resourceGroupName - Name $vault.Name - ImmutabilityState Disabled
414
+ Assert-True { $updateVault.Properties.ImmutabilitySettings.ImmutabilityState -eq " Disabled" }
386
415
}
387
416
finally
388
417
{
0 commit comments