Skip to content

Commit e06ecac

Browse files
added UT
1 parent dba3b30 commit e06ecac

File tree

4 files changed

+24639
-1
lines changed

4 files changed

+24639
-1
lines changed

src/RecoveryServices/RecoveryServices.SiteRecovery.Test/ScenarioTests/A2A/A2ATestsHelper.ps1

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,11 @@ function getRecoveryCacheStorageAccountName{
132132
function getRecoveryResourceGroupName{
133133
return "recRG"+ $seed;
134134
}
135+
136+
function getRecoveryNicName{
137+
return "A2ArecNICName"+ $seed;
138+
}
139+
135140
function Get-RandomSuffix(
136141
[int] $size = 8)
137142
{

src/RecoveryServices/RecoveryServices.SiteRecovery.Test/ScenarioTests/A2A/AsrA2ATests.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,13 @@ public void A2AReplicateProximityPlacementGroupVm()
9797
this.RunPowerShellTest(_logger, Constants.NewModel, "Test-ReplicateProximityPlacementGroupVm");
9898
}
9999

100+
[Fact]
101+
[Trait(Category.AcceptanceType, Category.CheckIn)]
102+
public void A2AVMNicConfig()
103+
{
104+
this.RunPowerShellTest(_logger, Constants.NewModel, "Test-VMNicConfig");
105+
}
106+
100107
[Fact]
101108
[Trait(Category.AcceptanceType, Category.CheckIn)]
102109
public void A2AZoneToZoneRecoveryPlanReplication()

src/RecoveryServices/RecoveryServices.SiteRecovery.Test/ScenarioTests/A2A/AsrA2ATests.ps1

Lines changed: 138 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
function Test-NewA2ADiskReplicationConfiguration
2626
{
2727
$recoveryStorageAccountId ="/subscriptions/7c943c1b-5122-4097-90c8-861411bdd574/resourceGroups/a2a-rg/providers/Microsoft.Storage/storageAccounts/a2argdisks412"
28-
$logStorageAccountId = "/subscriptions/7c943c1b-5122-4097-90c8-861411bdd574/resourceGroups/ltrgp1705152333/providers/Microsoft.Storage/storageAccounts/stagingsa2name1705152333"
28+
$logStorageAccountId = "/subscriptions/7c943c1b-5122-4097-90c8-861411bdd574/resourceGroups/ltrgp170515233333/providers/Microsoft.Storage/storageAccounts/stagingsa2name1705152333"
2929
$vhdUri = "https://powershelltestdiag414.blob.core.windows.net/vhds/pslinV2-520180112143232.vhd"
3030

3131
$v = New-AzRecoveryServicesAsrAzureToAzureDiskReplicationConfig -VhdUri $vhdUri `
@@ -549,6 +549,143 @@ function Test-ReplicateProximityPlacementGroupVm{
549549
Assert-NotNull($pe.providerSpecificDetails.RecoveryProximityPlacementGroupId)
550550
}
551551

552+
<#
553+
.SYNOPSIS
554+
Test VMNicConfig new parametersets
555+
#>
556+
557+
function Test-VMNicConfig{
558+
param([string] $seed ='330')
559+
$primaryPolicyName = getPrimaryPolicy
560+
$recoveryPolicyName = getRecoveryPolicy
561+
562+
$primaryContainerMappingName = getPrimaryContainerMapping
563+
$recoveryContainerMappingName = getRecoveryContainerMapping
564+
565+
$primaryContainerName = getPrimaryContainer
566+
$recoveryContainerName = getRecoveryContainer
567+
$vaultRgLocation = getVaultRgLocation
568+
$vaultName = getVaultName
569+
$vaultLocation = getVaultLocation
570+
$vaultRg = getVaultRg
571+
$primaryLocation = getPrimaryLocation
572+
$recoveryLocation = getRecoveryLocation
573+
$primaryFabricName = getPrimaryFabric
574+
$recoveryFabricName = getRecoveryFabric
575+
$RecoveryReplicaDiskAccountType = "Premium_LRS"
576+
$RecoveryTargetDiskAccountType = "Premium_LRS"
577+
$policyName = getPrimaryPolicy
578+
$mappingName = getPrimaryContainerMapping
579+
$recMappingName = getRecoveryContainerMapping
580+
$primaryNetMapping = getPrimaryNetworkMapping
581+
$recoveryNetMapping = getRecoveryNetworkMapping
582+
583+
#create recovery side resources
584+
$recRgName = getRecoveryResourceGroupName
585+
New-AzResourceGroup -name $recRgName -location $recoveryLocation -force
586+
[Microsoft.Rest.ClientRuntime.Azure.TestFramework.TestUtilities]::Wait(20 * 1000)
587+
$RecoveryAzureNetworkId = createRecoveryNetworkId
588+
$index =$RecoveryAzureNetworkId.IndexOf("/providers/")
589+
$recRg =$RecoveryAzureNetworkId.Substring(0,$index)
590+
591+
#create primary
592+
$vmName = getAzureVmName
593+
New-AzResourceGroup -name $vmName -location $primaryLocation -force
594+
[Microsoft.Rest.ClientRuntime.Azure.TestFramework.TestUtilities]::Wait(20 * 1000)
595+
$logStg = createCacheStorageAccount
596+
$recLogStg = createRecoveryCacheStorageAccount
597+
598+
$v2VmId = createAzureVm
599+
$vm = get-azVm -ResourceGroupName $vmName -Name $vmName
600+
$vhdid =$vm.StorageProfile.OSDisk.ManagedDisk.Id
601+
$index =$vm.Id.IndexOf("/providers/")
602+
$Rg =$vm.Id.Substring(0,$index)
603+
$PrimaryAzureNetworkId = $Rg + "/providers/Microsoft.Network/virtualNetworks/" + $vmName
604+
605+
# vault Creation
606+
New-AzResourceGroup -name $vaultRg -location $vaultRgLocation -force
607+
[Microsoft.Rest.ClientRuntime.Azure.TestFramework.TestUtilities]::Wait(20 * 1000)
608+
New-AzRecoveryServicesVault -ResourceGroupName $vaultRg -Name $vaultName -Location $vaultLocation
609+
[Microsoft.Rest.ClientRuntime.Azure.TestFramework.TestUtilities]::Wait(20 * 1000)
610+
$Vault = Get-AzRecoveryServicesVault -ResourceGroupName $vaultRg -Name $vaultName
611+
Set-ASRVaultContext -Vault $Vault
612+
613+
# fabric Creation
614+
$fabJob= New-AzRecoveryServicesAsrFabric -Azure -Name $primaryFabricName -Location $primaryLocation
615+
WaitForJobCompletion -JobId $fabJob.Name
616+
$fab = Get-AzRecoveryServicesAsrFabric -Name $primaryFabricName
617+
Assert-true { $fab.name -eq $primaryFabricName }
618+
Assert-AreEqual $fab.FabricSpecificDetails.Location $primaryLocation
619+
620+
$fabJob= New-AzRecoveryServicesAsrFabric -Azure -Name $recoveryFabricName -Location $recoveryLocation
621+
WaitForJobCompletion -JobId $fabJob.Name
622+
$fab = Get-AzRecoveryServicesAsrFabric -Name $recoveryFabricName
623+
Assert-true { $fab.name -eq $recoveryFabricName }
624+
Assert-AreEqual $fab.FabricSpecificDetails.Location $recoveryLocation
625+
$pf = get-asrFabric -Name $primaryFabricName
626+
$rf = get-asrFabric -Name $recoveryFabricName
627+
628+
#Container creation
629+
$job = New-AzRecoveryServicesAsrProtectionContainer -Name $primaryContainerName -Fabric $pf
630+
WaitForJobCompletion -JobId $Job.Name
631+
$pc = Get-asrProtectionContainer -name $primaryContainerName -Fabric $pf
632+
Assert-NotNull($pc)
633+
$job = New-AzRecoveryServicesAsrProtectionContainer -Name $recoveryContainerName -Fabric $rf
634+
WaitForJobCompletion -JobId $Job.Name
635+
$rc = Get-asrProtectionContainer -name $recoveryContainerName -Fabric $rf
636+
Assert-NotNull($rc)
637+
638+
#create policy and mapping
639+
$job = New-AzRecoveryServicesAsrPolicy -Name $policyName -RecoveryPointRetentionInHours 12 -AzureToAzure
640+
WaitForJobCompletion -JobId $job.Name
641+
$policy = Get-AzRecoveryServicesAsrPolicy -Name $policyName
642+
$job = New-AzRecoveryServicesAsrProtectionContainerMapping -Name $mappingName -Policy $policy -PrimaryProtectionContainer $pc -RecoveryProtectionContainer $rc
643+
WaitForJobCompletion -JobId $job.Name
644+
$mapping = Get-AzRecoveryServicesAsrProtectionContainerMapping -Name $mappingName -ProtectionContainer $pc
645+
646+
#network mapping
647+
$job = New-AzRecoveryServicesAsrNetworkMapping -AzureToAzure -Name $primaryNetMapping -PrimaryFabric $pf -PrimaryAzureNetworkId $PrimaryAzureNetworkId -RecoveryFabric $rf -RecoveryAzureNetworkId $RecoveryAzureNetworkId
648+
WaitForJobCompletion -JobId $job.Name
649+
650+
#Reverse Conatiner mapping
651+
$job = New-AzRecoveryServicesAsrProtectionContainerMapping -Name $recMappingName -Policy $policy -PrimaryProtectionContainer $rc -RecoveryProtectionContainer $pc
652+
WaitForJobCompletion -JobId $job.Name
653+
$revMapping = Get-AzRecoveryServicesAsrProtectionContainerMapping -Name $recMappingName -ProtectionContainer $rc
654+
655+
#Reverse network mapping
656+
$job = New-AzRecoveryServicesAsrNetworkMapping -AzureToAzure -Name $recoveryNetMapping -PrimaryFabric $rf -PrimaryAzureNetworkId $RecoveryAzureNetworkId -RecoveryFabric $pf -RecoveryAzureNetworkId $PrimaryAzureNetworkId
657+
WaitForJobCompletion -JobId $job.Name
658+
659+
#enable Replication
660+
$v = New-AzRecoveryServicesAsrAzureToAzureDiskReplicationConfig -managed -LogStorageAccountId $logStg `
661+
-DiskId $vhdid -RecoveryResourceGroupId $recRg -RecoveryReplicaDiskAccountType $RecoveryReplicaDiskAccountType `
662+
-RecoveryTargetDiskAccountType $RecoveryTargetDiskAccountType
663+
$enableDRjob = New-AzRecoveryServicesAsrReplicationProtectedItem -AzureToAzure -AzureVmId $vm.Id -Name $vmName -ProtectionContainerMapping $mapping -RecoveryResourceGroupId $recRg -AzureToAzureDiskReplicationConfiguration $v
664+
WaitForJobCompletion -JobId $enableDRjob.Name
665+
WaitForIRCompletion -affectedObjectId $enableDRjob.TargetObjectId
666+
667+
#Validate PE
668+
$pe = Get-AzRecoveryServicesAsrReplicationProtectedItem -ProtectionContainer $pc -Name $vmName
669+
Assert-NotNull($pe)
670+
671+
#Update VM Nic properties
672+
$pe = Get-AzRecoveryServicesAsrReplicationProtectedItem -ProtectionContainer $pc -Name $vmName
673+
$nicId = $pe.NicDetailsList[0].NicId
674+
$recNicName = getRecoveryNicName
675+
$nicConfig = New-AzRecoveryServicesAsrVMNicConfig -NicId $nicId -ReplicationProtectedItem $pe -RecoveryNicName $recNicName -RecoveryNicResourceGroupName $recRgName -ReuseExistingNic
676+
677+
$updateDRjob = Set-AzRecoveryServicesAsrReplicationProtectedItem -InputObject $pe -ASRVMNicConfiguration $nicConfig
678+
WaitForJobCompletion -JobId $updateDRjob.Name
679+
$pe = Get-AzRecoveryServicesAsrReplicationProtectedItem -ProtectionContainer $pc -Name $vmName
680+
Assert-NotNull($pe.NicDetailsList[0].RecoveryNicName)
681+
Assert-NotNull($pe.NicDetailsList[0].RecoveryNicResourceGroupName)
682+
Assert-NotNull($pe.NicDetailsList[0].ReuseExistingNic)
683+
684+
#Failover
685+
$failoverjob = Start-AzRecoveryServicesAsrUnPlannedFailoverJob -ReplicationProtectedItem $pe -Direction PrimaryToRecovery -PerformSourceSideAction
686+
WaitForJobCompletion -JobId $failoverjob.Name
687+
}
688+
552689
<#
553690
.SYNOPSIS
554691
Test ZoneToZoneRecoveryPlanReplication new parametersets

0 commit comments

Comments
 (0)