Skip to content

Commit b06cc9f

Browse files
authored
Merge pull request #29 from AsrOneSdk/Asr2106
RCM multi appliance support
2 parents d2ff6b1 + e2f5143 commit b06cc9f

File tree

128 files changed

+202502
-458780
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

128 files changed

+202502
-458780
lines changed

src/RecoveryServices/RecoveryServices.SiteRecovery.Test/RecoveryServices.SiteRecovery.Test.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
<PackageReference Include="Microsoft.Azure.Management.RecoveryServices" Version="4.3.1-preview" />
1717
<PackageReference Include="Microsoft.Azure.Management.RecoveryServices.Backup" Version="4.1.9-preview" />
1818
<PackageReference Include="Microsoft.Azure.Management.Storage" Version="14.3.0" />
19-
<PackageReference Include="Microsoft.Azure.Management.RecoveryServices.SiteRecovery" Version="2.1.4-preview" />
19+
<PackageReference Include="Microsoft.Azure.Management.RecoveryServices.SiteRecovery" Version="2.1.5-preview" />
2020
</ItemGroup>
2121

2222
<ItemGroup>

src/RecoveryServices/RecoveryServices.SiteRecovery.Test/ScenarioTests/V2ARCM/AsrV2ARcmTests.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,5 +126,12 @@ public void TestV2ARCMRecoveryPlan()
126126
{
127127
this.RunPowerShellTest(_logger, Constants.NewModel, "Test-V2ARCMRecoveryPlan");
128128
}
129+
130+
[Fact]
131+
[Trait(Category.AcceptanceType, Category.CheckIn)]
132+
public void TestV2ARCMSwitchAppliance()
133+
{
134+
this.RunPowerShellTest(_logger, Constants.NewModel, "Test-V2ARCMSwitchAppliance");
135+
}
129136
}
130137
}

src/RecoveryServices/RecoveryServices.SiteRecovery.Test/ScenarioTests/V2ARCM/AsrV2ARcmTests.ps1

Lines changed: 72 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -16,28 +16,37 @@
1616
########################## Site Recovery Tests #############################
1717

1818
# Inputs
19-
$vaultRg = "vmwaresrcrg"
20-
$vaultName = "v2aRcm-pwsh-test"
21-
$primaryFabricName = "v2aRcm-pwsh-testreplicationfabric"
22-
$primaryContainerName = "v2aRcm-pwsh-test0afareplicationcontainer"
19+
$vaultRg = "V2A-ECY"
20+
$vaultName = "Rcm-Vault-150"
21+
$primaryFabricName = "Rcm-Vault-150-vmwarefabric"
22+
$primaryContainerName = "Rcm-Vault-4678replicationcontainer"
2323
$policyName = "v2aRcm-pwsh-testpolicy"
2424
$failbackPolicyName = "appconsistency-policy-failback"
2525
$primaryContainerMappingName = "v2aRcm-pwsh-testmapping"
2626
$recoveryContainerMappingName = "appconsistency-failback-containerpairing"
2727

28-
$vmName = "V2ARCM-Pwsh-Vm"
29-
$recoveryVmName = "V2ARCM-Pwsh-Vm"
30-
$updateRecoveryVmName = "v2aRcm-ps-vm"
28+
$vmName = "Rcm-W2K16-153"
29+
$recoveryVmName = "Rcm-W2K16-153"
30+
$updateRecoveryVmName = "Rcm-W2K16-1531"
31+
$tfoVmName = "Rcm-W2K19-152"
32+
$foVmName = $tfoVmName
33+
$reprotectVmName = $foVmName
34+
$failbackVmName = $reprotectVmName
35+
36+
$switchAppVmName = "Rcm-Ub18-154"
37+
$TargetApplianceName = "Rcm-App-151"
38+
$CredentialsToAccessVm = "LinCreds"
39+
3140
$recoveryPlanName = "v2arcm-pwsh-rp"
32-
$credentialsName = "windows-creds"
33-
$recoveryAzureNetworkId = "/subscriptions/7c943c1b-5122-4097-90c8-861411bdd574/resourceGroups/vmwaretargetrg/providers/Microsoft.Network/virtualNetworks/v2arcm-vnet"
34-
$testNetworkId = "/subscriptions/7c943c1b-5122-4097-90c8-861411bdd574/resourceGroups/vmwaretargetrg/providers/Microsoft.Network/virtualNetworks/v2arcm-vnet"
35-
$recoveryAzureSubnetName = "default"
36-
$testSubnetName = "default"
37-
$recoveryResourceGroupId = "/subscriptions/7c943c1b-5122-4097-90c8-861411bdd574/resourceGroups/vmwaretargetrg"
38-
$logStorageAccountId = "/subscriptions/7c943c1b-5122-4097-90c8-861411bdd574/resourceGroups/vmwaretargetrg/providers/Microsoft.Storage/storageAccounts/v2arcmpwshsa"
39-
$recoveryBootDiagnosticsStorageAccountId = "/subscriptions/7c943c1b-5122-4097-90c8-861411bdd574/resourceGroups/vmwaretargetrg/providers/Microsoft.Storage/storageAccounts/v2arcmpwshsa"
40-
$dataStoreName = "datastore1 (1)"
41+
$credentialsName = "WinCreds"
42+
$recoveryAzureNetworkId = "/subscriptions/b364ed8d-4279-4bf8-8fd1-56f8fa0ae05c/resourceGroups/V2A-ECY/providers/Microsoft.Network/virtualNetworks/v2aecynw"
43+
$testNetworkId = "/subscriptions/b364ed8d-4279-4bf8-8fd1-56f8fa0ae05c/resourceGroups/V2A-ECY/providers/Microsoft.Network/virtualNetworks/v2aecynw"
44+
$recoveryAzureSubnetName = "Subnet1"
45+
$testSubnetName = "Subnet1"
46+
$recoveryResourceGroupId = "/subscriptions/b364ed8d-4279-4bf8-8fd1-56f8fa0ae05c/resourceGroups/V2A-ECY"
47+
$logStorageAccountId = "/subscriptions/b364ed8d-4279-4bf8-8fd1-56f8fa0ae05c/resourceGroups/V2A-ECY/providers/Microsoft.Storage/storageAccounts/v2aecystor"
48+
$recoveryBootDiagnosticsStorageAccountId = "/subscriptions/b364ed8d-4279-4bf8-8fd1-56f8fa0ae05c/resourceGroups/V2A-ECY/providers/Microsoft.Storage/storageAccounts/v2aecystor"
49+
$dataStoreName = "SharedDS-84-85"
4150

4251
<#
4352
.SYNOPSIS
@@ -255,7 +264,7 @@ function Test-V2ARCMUpdateProtection {
255264
Assert-NotNull($RPI.providerSpecificDetails)
256265

257266
# Update protected item .
258-
$job = Set-AzRecoveryServicesAsrReplicationProtectedItem -InputObject $RPI -Name $updateRecoveryVmName -Size Standard_D1
267+
$job = Set-AzRecoveryServicesAsrReplicationProtectedItem -InputObject $RPI -Name $updateRecoveryVmName -Size Standard_B2s
259268
WaitForJobCompletion -JobId $Job.Name
260269

261270
# Get protected item.
@@ -285,7 +294,7 @@ function Test-V2ARCMTestFailover {
285294
Assert-true { $Container.name -eq $primaryContainerName }
286295

287296
# Get protected item.
288-
$RPI = Get-AzRecoveryServicesAsrReplicationProtectedItem -ProtectionContainer $Container -FriendlyName $vmName
297+
$RPI = Get-AzRecoveryServicesAsrReplicationProtectedItem -ProtectionContainer $Container -FriendlyName $tfoVmName
289298
Assert-NotNull($RPI)
290299
Assert-NotNull($RPI.providerSpecificDetails)
291300

@@ -319,7 +328,7 @@ function Test-V2ARCMFailover {
319328
Assert-true { $Container.name -eq $primaryContainerName }
320329

321330
# Get protected item.
322-
$RPI = Get-AzRecoveryServicesAsrReplicationProtectedItem -ProtectionContainer $Container -FriendlyName $vmName
331+
$RPI = Get-AzRecoveryServicesAsrReplicationProtectedItem -ProtectionContainer $Container -FriendlyName $foVmName
323332
Assert-NotNull($RPI)
324333
Assert-NotNull($RPI.providerSpecificDetails)
325334

@@ -349,7 +358,7 @@ function Test-V2ARCMCommit {
349358
Assert-true { $Container.name -eq $primaryContainerName }
350359

351360
# Get protected item.
352-
$RPI = Get-AzRecoveryServicesAsrReplicationProtectedItem -ProtectionContainer $Container -FriendlyName $vmName
361+
$RPI = Get-AzRecoveryServicesAsrReplicationProtectedItem -ProtectionContainer $Container -FriendlyName $foVmName
353362
Assert-NotNull($RPI)
354363
Assert-NotNull($RPI.providerSpecificDetails)
355364

@@ -383,19 +392,19 @@ function Test-V2ARCMReprotect {
383392

384393
# Get mapping.
385394
$FailbackMapping = Get-AzRecoveryServicesAsrProtectionContainerMapping -ProtectionContainer $Container `
386-
-Name $recoveryContainerMappingName
395+
-Name $recoveryContainerMappingName
387396
Assert-NotNull($FailbackMapping)
388397

389398
# Get protected item.
390-
$RPI = Get-AzRecoveryServicesAsrReplicationProtectedItem -ProtectionContainer $Container -FriendlyName $vmName
399+
$RPI = Get-AzRecoveryServicesAsrReplicationProtectedItem -ProtectionContainer $Container -FriendlyName $reprotectVmName
391400
Assert-NotNull($RPI)
392401
Assert-NotNull($RPI.providerSpecificDetails)
393402

394403
# Reprotect.
395404
$Job = Update-AzRecoveryServicesAsrProtectionDirection -ReplicateAzureToVMware -ProtectionContainerMapping $FailbackMapping `
396405
-ReplicationProtectedItem $RPI -Direction RecoveryToPrimary `
397406
-ApplianceName $Fabric.FabricSpecificDetails.ProcessServers[0].Name -Fabric $Fabric `
398-
-LogStorageAccountId $logStorageAccountId -DatastoreName $dataStoreName
407+
-LogStorageAccountId $logStorageAccountId -DatastoreName $dataStoreName
399408
}
400409

401410
<#
@@ -419,14 +428,13 @@ function Test-V2ARCMFailback {
419428
Assert-true { $Container.name -eq $primaryContainerName }
420429

421430
# Get protected item.
422-
$RPI = Get-AzRecoveryServicesAsrReplicationProtectedItem -ProtectionContainer $Container -FriendlyName $recoveryVmName
431+
$RPI = Get-AzRecoveryServicesAsrReplicationProtectedItem -ProtectionContainer $Container -FriendlyName $failbackVmName
423432
Assert-NotNull($RPI)
424433
Assert-NotNull($RPI.providerSpecificDetails)
425434

426435
# Failback.
427436
$Job = Start-AzRecoveryServicesAsrPlannedFailoverJob -ReplicationProtectedItem $RPI -Direction RecoveryToPrimary `
428437
-RecoveryTag RecoveryTagApplicationConsistent
429-
WaitForJobCompletion -JobId $Job.Name
430438
}
431439

432440
<#
@@ -450,13 +458,12 @@ function Test-V2ARCMCancelFailover {
450458
Assert-true { $Container.name -eq $primaryContainerName }
451459

452460
# Get protected item.
453-
$RPI = Get-AzRecoveryServicesAsrReplicationProtectedItem -ProtectionContainer $Container -FriendlyName $recoveryVmName
461+
$RPI = Get-AzRecoveryServicesAsrReplicationProtectedItem -ProtectionContainer $Container -FriendlyName $failbackVmName
454462
Assert-NotNull($RPI)
455463
Assert-NotNull($RPI.providerSpecificDetails)
456464

457465
# Cancel failover.
458-
$Job = Start-ASRCancelFailover -ReplicationProtectedItem $RPI
459-
WaitForJobCompletion -JobId $Job.Name
466+
$Job = Start-ASRCancelFailover -ReplicationProtectedItem $RPI
460467
}
461468

462469
<#
@@ -480,7 +487,7 @@ function Test-V2ARCMRecoveryPlan {
480487
Assert-true { $Container.name -eq $primaryContainerName }
481488

482489
# Get protected item
483-
$RPI = Get-AzRecoveryServicesAsrReplicationProtectedItem -ProtectionContainer $Container -Name $vmName
490+
$RPI = Get-AzRecoveryServicesAsrReplicationProtectedItem -ProtectionContainer $Container -FriendlyName $vmName
484491
Assert-NotNull($RPI)
485492
Assert-NotNull($RPI.providerSpecificDetails)
486493

@@ -498,6 +505,42 @@ function Test-V2ARCMRecoveryPlan {
498505
WaitForJobCompletion -JobId $Job.Name
499506
}
500507

508+
<#
509+
.SYNOPSIS
510+
Site Recovery V2A RCM switch appliance Test.
511+
#>
512+
function Test-V2ARCMSwitchAppliance {
513+
514+
# Set vault context.
515+
$Vault = Get-AzRecoveryServicesVault -ResourceGroupName $vaultRg -Name $vaultName
516+
Set-ASRVaultContext -Vault $Vault
517+
518+
# Get fabric.
519+
$Fabric = Get-AzRecoveryServicesAsrFabric -Name $primaryFabricName
520+
Assert-NotNull($Fabric)
521+
Assert-true { $Fabric.name -eq $primaryFabricName }
522+
523+
# Get container.
524+
$Container = Get-AzRecoveryServicesAsrProtectionContainer -Name $primaryContainerName -Fabric $Fabric
525+
Assert-NotNull($Container)
526+
Assert-true { $Container.name -eq $primaryContainerName }
527+
528+
# Get protected item.
529+
$RPI = Get-AzRecoveryServicesAsrReplicationProtectedItem -ProtectionContainer $Container -FriendlyName $switchAppVmName
530+
Assert-NotNull($RPI)
531+
Assert-NotNull($RPI.providerSpecificDetails)
532+
533+
# Cancel failover.
534+
$Job = Start-ASRSwitchAppliance -Fabric $Fabric -ReplicationProtectedItem $RPI -TargetApplianceName $TargetApplianceName # -CredentialsToAccessVm $CredentialsToAccessVm
535+
WaitForJobCompletion -JobId $Job.Name
536+
537+
# Get protected item.
538+
$RPI = Get-AzRecoveryServicesAsrReplicationProtectedItem -ProtectionContainer $Container -FriendlyName $switchAppVmName
539+
Assert-NotNull($RPI)
540+
Assert-NotNull($RPI.providerSpecificDetails)
541+
Assert-true { $RPI.providerSpecificDetails.ProcessServerName -eq $TargetApplianceName }
542+
}
543+
501544
<#
502545
.SYNOPSIS
503546
Wait for job completion.

0 commit comments

Comments
 (0)