|
25 | 25 | function Test-NewA2ADiskReplicationConfiguration |
26 | 26 | { |
27 | 27 | $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" |
29 | 29 | $vhdUri = "https://powershelltestdiag414.blob.core.windows.net/vhds/pslinV2-520180112143232.vhd" |
30 | 30 |
|
31 | 31 | $v = New-AzRecoveryServicesAsrAzureToAzureDiskReplicationConfig -VhdUri $vhdUri ` |
@@ -549,6 +549,143 @@ function Test-ReplicateProximityPlacementGroupVm{ |
549 | 549 | Assert-NotNull($pe.providerSpecificDetails.RecoveryProximityPlacementGroupId) |
550 | 550 | } |
551 | 551 |
|
| 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 | + |
552 | 689 | <# |
553 | 690 | .SYNOPSIS |
554 | 691 | Test ZoneToZoneRecoveryPlanReplication new parametersets |
|
0 commit comments