Skip to content

Commit 60d72da

Browse files
authored
add test for soft failover (#20371)
1 parent 7f6c557 commit 60d72da

File tree

3 files changed

+4799
-0
lines changed

3 files changed

+4799
-0
lines changed

src/Storage/Storage.Management.Test/ScenarioTests/StorageAccountTests.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,13 @@ public void TestFailoverAzureStorageAccount()
149149
TestRunner.RunTestScript("Test-FailoverAzureStorageAccount");
150150
}
151151

152+
[Fact]
153+
[Trait(Category.AcceptanceType, Category.CheckIn)]
154+
public void TestFailoverAzureStorageAccountPlanned()
155+
{
156+
TestRunner.RunTestScript("Test-FailoverAzureStorageAccountPlanned");
157+
}
158+
152159
[Fact]
153160
[Trait(Category.AcceptanceType, Category.CheckIn)]
154161
public void TestGetAzureStorageAccountGeoReplicationStats()

src/Storage/Storage.Management.Test/ScenarioTests/StorageAccountTests.ps1

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -792,6 +792,52 @@ function Test-FailoverAzureStorageAccount
792792
}
793793
}
794794

795+
<#
796+
.SYNOPSIS
797+
Test Invoke-AzStorageAccountFailoverPlanned
798+
.DESCRIPTION
799+
Smoke[Broken]Test
800+
#>
801+
function Test-FailoverAzureStorageAccountPlanned
802+
{
803+
$rgname = Get-StorageManagementTestResourceName;
804+
try {
805+
$stoname = 'stofailover' + $rgname
806+
$stotype = 'Standard_RAGRS'
807+
$kind = 'StorageV2'
808+
809+
$loc = Get-ProviderLocation_Canary ResourceManagement;
810+
New-AzResourceGroup -Name $rgname -Location $loc;
811+
New-AzStorageAccount -ResourceGroupName $rgname -Name $stoname -Location $loc -Type $stotype -Kind $kind;
812+
813+
$account = Get-AzStorageAccount -ResourceGroupName $rgname -Name $stoname -IncludeGeoReplicationStats
814+
Assert-AreEqual $stoname $account.StorageAccountName;
815+
Assert-AreEqual $stotype $account.Sku.Name;
816+
Assert-AreEqual $loc.ToLower().Replace(" ", "") $account.Location;
817+
Assert-AreEqual $kind $account.Kind;
818+
$primaryLocation = $account.PrimaryLocation
819+
$seconcaryLocation = $account.SecondaryLocation
820+
821+
while ($account.GeoReplicationStats.CanFailover -ne $true) {
822+
# sleep is needed for recording mode but commented out for playback mode to speed up the test
823+
# sleep 60
824+
$account = Get-AzStorageAccount -ResourceGroupName $rgname -Name $stoname -IncludeGeoReplicationStats
825+
}
826+
Assert-AreEqual $account.GeoReplicationStats.CanFailover $true
827+
$job = Invoke-AzStorageAccountFailover -ResourceGroupName $rgname -Name $stoname -FailoverType "Planned" -Force -AsJob
828+
$job | Wait-Job
829+
830+
$sto = Get-AzStorageAccount -ResourceGroupName $rgname -Name $stoname
831+
Assert-AreEqual $seconcaryLocation $sto.PrimaryLocation
832+
Assert-AreEqual $primaryLocation $sto.SecondaryLocation
833+
Assert-AreEqual $stotype $sto.Sku.Name
834+
}
835+
finally {
836+
# Cleanup
837+
Clean-ResourceGroup $rgname
838+
}
839+
}
840+
795841
<#
796842
.SYNOPSIS
797843
Test New-AzStorageAccountFileStorage

0 commit comments

Comments
 (0)