Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New api version/asr2021 02 10 #27

Merged
merged 38 commits into from
Apr 16, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
7a0ee9c
Merge pull request #16 from Azure/master
nilgupta6 Mar 16, 2021
21a948e
Fixing PFO/TFO/UFO build errors
Arpitaji Mar 18, 2021
f39ee62
mulltiple ip per nic - cmdlet changes
subashchandra31 Mar 19, 2021
5451de4
review changes
subashchandra31 Mar 22, 2021
b3d874e
code review changes
subashchandra31 Mar 22, 2021
c03880a
moved validaton to nicConfig cmdlet and review changes
subashchandra31 Mar 23, 2021
5f80211
minor fix
subashchandra31 Mar 23, 2021
767e166
handled review comments
subashchandra31 Mar 24, 2021
b3da526
parameter validation changes, logs
subashchandra31 Mar 24, 2021
a157e37
design review changes
subashchandra31 Mar 24, 2021
1c3f963
Merge pull request #18 from AsrOneSdk/multipleIPPerNicCmdletChanges
subashchandra31 Mar 24, 2021
2154cd0
Fixing PFO/TFO/UFO build errors
Arpitaji Mar 18, 2021
0a05b20
mulltiple ip per nic - cmdlet changes
subashchandra31 Mar 19, 2021
453790b
Fixing B2A, E2A and E2E Tests and added recording
Arpitaji Mar 24, 2021
3cedb24
Merge pull request #20 from AsrOneSdk/arpita-powershell-march
Arpitaji Mar 24, 2021
9e7af56
Merge branch 'newApiVersion/asr2021-02-10' of https://github.com/AsrO…
vidyadharijami Mar 24, 2021
bf9627a
[ASR][V2A/H2A] TargetVmSize, AvSet, Sql RP and ResourceTagging change…
vidyadharijami Mar 25, 2021
a776238
Minor fix
vidyadharijami Mar 25, 2021
987ff16
vmss changes -1
nilgupta6 Mar 24, 2021
3b79114
2) vmss changes - MD files
nilgupta6 Mar 25, 2021
55f907e
Addressed review comments and added new tests and recordings for B2A
vidyadharijami Mar 25, 2021
e12e015
vmss changes
nilgupta6 Mar 25, 2021
838a284
Addressed review comments
vidyadharijami Mar 25, 2021
8a9138d
Minor fixes
vidyadharijami Mar 25, 2021
2d1a123
Added V2A tests and recordings
vidyadharijami Mar 26, 2021
5a91e2b
PR comments
nilgupta6 Mar 26, 2021
94f74c8
Update New-AzRecoveryServicesAsrReplicationProtectedItem.md
nilgupta6 Mar 26, 2021
fc11807
Merge pull request #22 from AsrOneSdk/dev/nilgupta/vmsschanges1
nilgupta6 Mar 26, 2021
3d45cad
Minor Fix
vidyadharijami Mar 26, 2021
d7920f9
Merge changes of newApiVersion/asr2021-02-10 branch
vidyadharijami Mar 26, 2021
2d0bec1
Merge pull request #21 from AsrOneSdk/dev/vijami/V2AH2AChangesLatest
vidyadharijami Mar 26, 2021
7f5f694
Adding null for OdataQuery as its default value is also null.
nilgupta6 Mar 29, 2021
6578c3b
V2A test record json files
pradheepm Apr 7, 2021
28e2299
Merge pull request #23 from AsrOneSdk/user/prmyaka/v2anewversiontest
pradheepm Apr 7, 2021
71de23e
Fix for Resource Tagging to clear off tags
vidyadharijami Apr 9, 2021
f88afa3
Merge pull request #24 from AsrOneSdk/dev/vijami/FixForClearingTagsFo…
vidyadharijami Apr 9, 2021
abcd7b5
Minor fix in playback mode for v2a unit tests
pradheepm Apr 16, 2021
64e8985
Merge pull request #26 from AsrOneSdk/user/prmyaka/v2aunittests
pradheepm Apr 16, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
<PackageReference Include="Microsoft.Azure.Management.RecoveryServices" Version="4.3.1-preview" />
<PackageReference Include="Microsoft.Azure.Management.RecoveryServices.Backup" Version="4.1.5-preview" />
<PackageReference Include="Microsoft.Azure.Management.Storage" Version="14.3.0" />
<PackageReference Include="Microsoft.Azure.Management.RecoveryServices.SiteRecovery" Version="2.1.2-preview" />
<PackageReference Include="Microsoft.Azure.Management.RecoveryServices.SiteRecovery" Version="2.1.3-preview" />
</ItemGroup>

<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -117,5 +117,12 @@ public void A2ARecoveryPlanReplication()
{
this.RunPowerShellTest(_logger, Constants.NewModel, "Test-RecoveryPlanReplication");
}

[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void A2AVMSSReplication()
{
this.RunPowerShellTest(_logger, Constants.NewModel, "Test-VMSSReplication");
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -924,4 +924,154 @@ function Test-RecoveryPlanReplication {
#Failover
$failoverjob = Start-AzRecoveryServicesAsrUnPlannedFailoverJob -RecoveryPlan $RecoveryPlan -Direction PrimaryToRecovery -PerformSourceSideAction
WaitForJobCompletion -JobId $failoverjob.Name
}

<#
.SYNOPSIS
Test VMSS replication new parametersets
#>

function Test-VMSSReplication {
param([string] $seed = '1227')
$primaryPolicyName = getPrimaryPolicy
$recoveryPolicyName = getRecoveryPolicy

$primaryContainerMappingName = getPrimaryContainerMapping
$recoveryContainerMappingName = getRecoveryContainerMapping

$primaryContainerName = getPrimaryContainer
$recoveryContainerName = getRecoveryContainer
$vaultRgLocation = getVaultRgLocation
$vaultName = getVaultName
$vaultLocation = getVaultLocation
$vaultRg = getVaultRg
$primaryLocation = getPrimaryLocation
$recoveryLocation = getRecoveryLocation
$primaryFabricName = getPrimaryFabric
$recoveryFabricName = getRecoveryFabric
$RecoveryReplicaDiskAccountType = "Premium_LRS"
$RecoveryTargetDiskAccountType = "Premium_LRS"
$policyName = getPrimaryPolicy
$mappingName = getPrimaryContainerMapping
$recMappingName = getRecoveryContainerMapping
$primaryNetMapping = getPrimaryNetworkMapping
$recoveryNetMapping = getRecoveryNetworkMapping

#create recovery side resources
$recRgName = getRecoveryResourceGroupName
New-AzResourceGroup -name $recRgName -location $recoveryLocation -force
[Microsoft.Rest.ClientRuntime.Azure.TestFramework.TestUtilities]::Wait(20 * 1000)
$RecoveryAzureNetworkId = createRecoveryNetworkId
$index = $RecoveryAzureNetworkId.IndexOf("/providers/")
$recRg = $RecoveryAzureNetworkId.Substring(0, $index)
#create virtual Machine scale set
$vmssConfig = New-AzVmssConfig -Location $recoveryLocation -PlatformFaultDomainCount 1 -SinglePlacementGroup 0
$recVmss = new-azvmss -resourcegroupname $recRgName -vmscalesetname 'vmss-asr' -virtualmachinescaleset $vmssConfig
$recVmss1 = new-azvmss -resourcegroupname $recRgName -vmscalesetname 'vmss1-asr' -virtualmachinescaleset $vmssConfig

#create primary
$vmName = getAzureVmName
New-AzResourceGroup -name $vmName -location $primaryLocation -force
[Microsoft.Rest.ClientRuntime.Azure.TestFramework.TestUtilities]::Wait(20 * 1000)
$logStg = createCacheStorageAccount
$recLogStg = createRecoveryCacheStorageAccount

$v2VmId = createAzureVm
$vm = get-azVm -ResourceGroupName $vmName -Name $vmName
$vhdid = $vm.StorageProfile.OSDisk.ManagedDisk.Id
$index = $vm.Id.IndexOf("/providers/")
$Rg = $vm.Id.Substring(0, $index)
$PrimaryAzureNetworkId = $Rg + "/providers/Microsoft.Network/virtualNetworks/" + $vmName

# vault Creation
New-AzResourceGroup -name $vaultRg -location $vaultRgLocation -force
[Microsoft.Rest.ClientRuntime.Azure.TestFramework.TestUtilities]::Wait(20 * 1000)
New-AzRecoveryServicesVault -ResourceGroupName $vaultRg -Name $vaultName -Location $vaultLocation
[Microsoft.Rest.ClientRuntime.Azure.TestFramework.TestUtilities]::Wait(20 * 1000)
$Vault = Get-AzRecoveryServicesVault -ResourceGroupName $vaultRg -Name $vaultName
Set-ASRVaultContext -Vault $Vault

# fabric Creation
$fabJob = New-AzRecoveryServicesAsrFabric -Azure -Name $primaryFabricName -Location $primaryLocation
WaitForJobCompletion -JobId $fabJob.Name
$fab = Get-AzRecoveryServicesAsrFabric -Name $primaryFabricName
Assert-true { $fab.name -eq $primaryFabricName }
Assert-AreEqual $fab.FabricSpecificDetails.Location $primaryLocation

$fabJob = New-AzRecoveryServicesAsrFabric -Azure -Name $recoveryFabricName -Location $recoveryLocation
WaitForJobCompletion -JobId $fabJob.Name
$fab = Get-AzRecoveryServicesAsrFabric -Name $recoveryFabricName
Assert-true { $fab.name -eq $recoveryFabricName }
Assert-AreEqual $fab.FabricSpecificDetails.Location $recoveryLocation
$pf = get-asrFabric -Name $primaryFabricName
$rf = get-asrFabric -Name $recoveryFabricName

#Container creation
$job = New-AzRecoveryServicesAsrProtectionContainer -Name $primaryContainerName -Fabric $pf
WaitForJobCompletion -JobId $Job.Name
$pc = Get-asrProtectionContainer -name $primaryContainerName -Fabric $pf
Assert-NotNull($pc)
$job = New-AzRecoveryServicesAsrProtectionContainer -Name $recoveryContainerName -Fabric $rf
WaitForJobCompletion -JobId $Job.Name
$rc = Get-asrProtectionContainer -name $recoveryContainerName -Fabric $rf
Assert-NotNull($rc)

#create policy and mapping
$job = New-AzRecoveryServicesAsrPolicy -Name $policyName -RecoveryPointRetentionInHours 12 -AzureToAzure
WaitForJobCompletion -JobId $job.Name
$policy = Get-AzRecoveryServicesAsrPolicy -Name $policyName
$job = New-AzRecoveryServicesAsrProtectionContainerMapping -Name $mappingName -Policy $policy -PrimaryProtectionContainer $pc -RecoveryProtectionContainer $rc
WaitForJobCompletion -JobId $job.Name
$mapping = Get-AzRecoveryServicesAsrProtectionContainerMapping -Name $mappingName -ProtectionContainer $pc

#network mapping
$job = New-AzRecoveryServicesAsrNetworkMapping -AzureToAzure -Name $primaryNetMapping -PrimaryFabric $pf -PrimaryAzureNetworkId $PrimaryAzureNetworkId -RecoveryFabric $rf -RecoveryAzureNetworkId $RecoveryAzureNetworkId
WaitForJobCompletion -JobId $job.Name

#Reverse Conatiner mapping
$job = New-AzRecoveryServicesAsrProtectionContainerMapping -Name $recMappingName -Policy $policy -PrimaryProtectionContainer $rc -RecoveryProtectionContainer $pc
WaitForJobCompletion -JobId $job.Name
$revMapping = Get-AzRecoveryServicesAsrProtectionContainerMapping -Name $recMappingName -ProtectionContainer $rc

#Reverse network mapping
$job = New-AzRecoveryServicesAsrNetworkMapping -AzureToAzure -Name $recoveryNetMapping -PrimaryFabric $rf -PrimaryAzureNetworkId $RecoveryAzureNetworkId -RecoveryFabric $pf -RecoveryAzureNetworkId $PrimaryAzureNetworkId
WaitForJobCompletion -JobId $job.Name

#enable Replication
$v = New-AzRecoveryServicesAsrAzureToAzureDiskReplicationConfig -managed -LogStorageAccountId $logStg `
-DiskId $vhdid -RecoveryResourceGroupId $recRg -RecoveryReplicaDiskAccountType $RecoveryReplicaDiskAccountType `
-RecoveryTargetDiskAccountType $RecoveryTargetDiskAccountType
$enableDRjob = New-AzRecoveryServicesAsrReplicationProtectedItem -AzureToAzure -AzureVmId $vm.Id -Name $vmName -ProtectionContainerMapping $mapping -RecoveryResourceGroupId $recRg -AzureToAzureDiskReplicationConfiguration $v -RecoveryVirtualMachineScaleSetId $recVmss.Id
WaitForJobCompletion -JobId $enableDRjob.Name
WaitForIRCompletion -affectedObjectId $enableDRjob.TargetObjectId

#Validate vmss Set in replicated vm properties
$pe = Get-AzRecoveryServicesAsrReplicationProtectedItem -ProtectionContainer $pc -Name $vmName
Assert-NotNull($pe.providerSpecificDetails.RecoveryVirtualMachineScaleSetId)

#Update Vmpropertie
$updateDRjob = Set-AzRecoveryServicesAsrReplicationProtectedItem -InputObject $pe -RecoveryVirtualMachineScaleSetId $recVmss1.Id
WaitForJobCompletion -JobId $updateDRjob.Name
$pe = Get-AzRecoveryServicesAsrReplicationProtectedItem -ProtectionContainer $pc -Name $vmName
Assert-NotNull($pe.providerSpecificDetails.RecoveryVirtualMachineScaleSetId)

#Failover
$failoverjob = Start-AzRecoveryServicesAsrUnPlannedFailoverJob -ReplicationProtectedItem $pe -Direction PrimaryToRecovery -PerformSourceSideAction
WaitForJobCompletion -JobId $failoverjob.Name
#Get recovery vm and verify
$recvm = get-azVm -ResourceGroupName $recRgName -Name $vmName
Assert-NotNull($recvm.virtualmachinescaleset.Id);

#Switch replication
$vm = get-azVm -ResourceGroupName $vmName -Name $vmName
$vhdid = $recvm.StorageProfile.OSDisk.ManagedDisk.Id
$v = New-AzRecoveryServicesAsrAzureToAzureDiskReplicationConfig -managed -LogStorageAccountId $recLogStg `
-DiskId $vhdid -RecoveryResourceGroupId $Rg -RecoveryReplicaDiskAccountType $RecoveryReplicaDiskAccountType `
-RecoveryTargetDiskAccountType $RecoveryTargetDiskAccountType
[Microsoft.Rest.ClientRuntime.Azure.TestFramework.TestUtilities]::Wait(600 * 1000)
$Switchjob = Update-AzureRmRecoveryServicesAsrProtectionDirection -AzureToAzure -ProtectionContainerMapping $revMapping[0] -RecoveryResourceGroupId $Rg -ReplicationProtectedItem $pe -RecoveryVirtualMachineScaleSetId $vm.virtualmachinescaleset.Id -AzureToAzureDiskReplicationConfiguration $v
WaitForJobCompletion -JobId $Switchjob.Name

$pe = Get-AzRecoveryServicesAsrReplicationProtectedItem -ProtectionContainer $rc -Name $vmName
Assert-NotNull($pe.providerSpecificDetails.RecoveryVirtualMachineScaleSetId)
}
Original file line number Diff line number Diff line change
Expand Up @@ -126,9 +126,6 @@ public void TestPlannedFailover()
Category.CheckIn)]
public void TestUpdateRPIWithDES()
{
this.VaultSettingsFilePath = System.IO.Path.Combine(
System.AppDomain.CurrentDomain.BaseDirectory,
"ScenarioTests", "B2A", "CMKInput", "B2A.VaultCredentials");
this.RunPowerShellTest(
_logger,
Constants.NewModel,
Expand All @@ -141,15 +138,12 @@ public void TestUpdateRPIWithDES()
[Trait(
Category.AcceptanceType,
Category.CheckIn)]
public void TestCreateRPIWithPPG()
public void TestCreateRPIWithAdditionalProperties()
{
this.VaultSettingsFilePath = System.IO.Path.Combine(
System.AppDomain.CurrentDomain.BaseDirectory,
"ScenarioTests", "B2A", "B2AInput", "B2A.VaultCredentials");
this.RunPowerShellTest(
_logger,
Constants.NewModel,
"Test-CreateRPIWithProximityPlacementGroup -vaultSettingsFilePath \"" +
"Test-CreateRPIWithAdditionalProperties -vaultSettingsFilePath \"" +
this.VaultSettingsFilePath +
"\"");
}
Expand All @@ -158,15 +152,12 @@ public void TestCreateRPIWithPPG()
[Trait(
Category.AcceptanceType,
Category.CheckIn)]
public void TestUpdateRPIWithPPG()
public void TestUpdateRPIWithAdditionalProperties()
{
this.VaultSettingsFilePath = System.IO.Path.Combine(
System.AppDomain.CurrentDomain.BaseDirectory,
"ScenarioTests", "B2A", "B2AInput", "B2A.VaultCredentials");
this.RunPowerShellTest(
_logger,
Constants.NewModel,
"Test-UpdateRPIWithProximityPlacementGroup -vaultSettingsFilePath \"" +
"Test-UpdateRPIWithAdditionalProperties -vaultSettingsFilePath \"" +
this.VaultSettingsFilePath +
"\"");
}
Expand All @@ -177,9 +168,6 @@ public void TestUpdateRPIWithPPG()
Category.CheckIn)]
public void TestCreateRPIWithAvZone()
{
this.VaultSettingsFilePath = System.IO.Path.Combine(
System.AppDomain.CurrentDomain.BaseDirectory,
"ScenarioTests", "B2A", "B2AInput", "B2A.VaultCredentials");
this.RunPowerShellTest(
_logger,
Constants.NewModel,
Expand All @@ -194,32 +182,12 @@ public void TestCreateRPIWithAvZone()
Category.CheckIn)]
public void TestUpdateRPIWithAvZone()
{
this.VaultSettingsFilePath = System.IO.Path.Combine(
System.AppDomain.CurrentDomain.BaseDirectory,
"ScenarioTests", "B2A", "B2AInput", "B2A.VaultCredentials");
this.RunPowerShellTest(
_logger,
Constants.NewModel,
"Test-UpdateRPIWithAvailabilityZone -vaultSettingsFilePath \"" +
this.VaultSettingsFilePath +
"\"");
}

[Fact]
[Trait(
Category.AcceptanceType,
Category.CheckIn)]
public void TestCreateRPIWithManagedDisk()
{
this.VaultSettingsFilePath = System.IO.Path.Combine(
System.AppDomain.CurrentDomain.BaseDirectory,
"ScenarioTests", "B2A", "B2AInput", "B2A.VaultCredentials");
this.RunPowerShellTest(
_logger,
Constants.NewModel,
"Test-CreateRPIWithManagedDisk -vaultSettingsFilePath \"" +
this.VaultSettingsFilePath +
"\"");
}
}
}
Loading