Skip to content

Commit 5536fd0

Browse files
alecbainwyunchi-ms
andauthored
[Sql] Overhaul failover group cmdlets to use current API and support multiple secondaries (#23898)
* rework failover group cmdlets to use current sdk instead of legacy sdk; update get to accomodate multiple secondary failover groups * default to manual failover policy * update changelog * remove commented out import statement * Update src/Sql/Sql/ChangeLog.md Co-authored-by: Yunchi Wang <[email protected]> * Update src/Sql/Sql/Failover Group/Cmdlet/NewAzureSqlFailoverGroup.cs Co-authored-by: Yunchi Wang <[email protected]> * Update src/Sql/Sql/Failover Group/Cmdlet/SetAzureSqlFailoverGroup.cs Co-authored-by: Yunchi Wang <[email protected]> * modify changelog lines to be in upcoming release instead of previously released version * update help files with updated default param values --------- Co-authored-by: Yunchi Wang <[email protected]>
1 parent 71c6293 commit 5536fd0

32 files changed

+47008
-168475
lines changed

src/Sql/Sql.Test/ScenarioTests/FailoverGroupTests.ps1

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,16 +45,26 @@ function Handle-FailoverGroupTestWithFailoverGroup($scriptBlock, $failoverPolicy
4545
}.GetNewClosure()
4646
}
4747

48-
function Validate-FailoverGroup($server, $partnerServer, $name, $role, $failoverPolicy, $gracePeriod, $readOnlyFailoverPolicy, $databases, $fg, $message="no context provided")
48+
function Validate-FailoverGroup($server, $partnerServer, $name, $role, $failoverPolicy, $gracePeriod, $readOnlyFailoverPolicy, $databases, $fg, $message="no context provided", $isMultiServer = $false, $partnerServersList = $null)
4949
{
5050
Assert-NotNull $fg.Id "`$fg.Id ($message)"
5151
Assert-NotNull $fg.PartnerServers "`$fg.PartnerServers ($message)"
5252
Assert-AreEqual $name $fg.FailoverGroupName "`$fg.FailoverGroupName ($message)"
5353
# Assert-AreEqual $true $partnerServer.ResourceId.Contains($fg.PartnerSubscriptionId) "`$fg.PartnerSubscriptionId ($message)"
54-
Assert-AreEqual $server.ResourceGroupName $fg.ResourceGroupName "`$fg.ResourceGroupName ($message)"
55-
Assert-AreEqual $partnerServer.ResourceGroupName $fg.PartnerResourceGroupName "`$fg.PartnerResourceGroupName ($message)"
56-
Assert-AreEqual $server.ServerName $fg.ServerName "`$fg.ServerName ($message)"
57-
Assert-AreEqual $partnerServer.ServerName $fg.PartnerServerName "`$fg.PartnerServerName ($message)"
54+
if ($isMultiServer)
55+
{
56+
foreach ($server in $partnerServersList)
57+
{
58+
Assert-AreEqual $true $fg.PartnerServers.Contains($server) "`$fg.PartnerServers[$($server)] ($message)"
59+
}
60+
}
61+
else
62+
{
63+
Assert-AreEqual $server.ResourceGroupName $fg.ResourceGroupName "`$fg.ResourceGroupName ($message)"
64+
Assert-AreEqual $partnerServer.ResourceGroupName $fg.PartnerResourceGroupName "`$fg.PartnerResourceGroupName ($message)"
65+
Assert-AreEqual $server.ServerName $fg.ServerName "`$fg.ServerName ($message)"
66+
Assert-AreEqual $partnerServer.ServerName $fg.PartnerServerName "`$fg.PartnerServerName ($message)"
67+
}
5868
# Commented out because server location is a location id, but FG location is a location friendly name
5969
# Assert-AreEqual $server.Location $fg.Location "`$fg.Location ($message)"
6070
# Assert-AreEqual $partnerServer.Location $fg.PartnerLocation "`$fg.PartnerLocation ($message)"
@@ -431,6 +441,6 @@ function Test-FailoverGroupMultipleSecondaries()
431441

432442
$fgName = Get-FailoverGroupName
433443
$fg = New-AzSqlDatabaseFailoverGroup -ResourceGroupName $primaryServer.ResourceGroupName -ServerName $primaryServer.ServerName -PartnerServerName $partnerServer.ServerName -FailoverGroupName $fgName -FailoverPolicy Automatic -GracePeriodWithDataLossHours 1 -AllowReadOnlyFailoverToPrimary Enabled -PartnerServerList $partnerServers -ReadOnlyEndpointTargetServer $partnerServer.ResourceId
434-
Validate-FailoverGroup $primaryServer $server $fgName Primary Automatic 1 Enabled @() $fg
444+
Validate-FailoverGroup $primaryServer $server $fgName Primary Automatic 1 Enabled @() $fg -isMultiServer $true -PartnerServerList $partnerServers
435445
}
436446
}

src/Sql/Sql.Test/SessionRecords/Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests/TestCreateFailoverGroup_AutomaticPolicy.json

Lines changed: 1708 additions & 862 deletions
Large diffs are not rendered by default.

src/Sql/Sql.Test/SessionRecords/Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests/TestCreateFailoverGroup_AutomaticPolicyGracePeriodReadOnlyFailover.json

Lines changed: 15887 additions & 1118 deletions
Large diffs are not rendered by default.

src/Sql/Sql.Test/SessionRecords/Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests/TestCreateFailoverGroup_CrossSubscription.json

Lines changed: 988 additions & 1276 deletions
Large diffs are not rendered by default.

src/Sql/Sql.Test/SessionRecords/Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests/TestCreateFailoverGroup_ManualPolicy.json

Lines changed: 970 additions & 1762 deletions
Large diffs are not rendered by default.

src/Sql/Sql.Test/SessionRecords/Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests/TestCreateFailoverGroup_Named.json

Lines changed: 1012 additions & 1615 deletions
Large diffs are not rendered by default.

src/Sql/Sql.Test/SessionRecords/Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests/TestCreateFailoverGroup_Overflow.json

Lines changed: 1103 additions & 1013 deletions
Large diffs are not rendered by default.

src/Sql/Sql.Test/SessionRecords/Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests/TestCreateFailoverGroup_Positional.json

Lines changed: 1043 additions & 1772 deletions
Large diffs are not rendered by default.

src/Sql/Sql.Test/SessionRecords/Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests/TestCreateFailoverGroup_ZeroGracePeriod.json

Lines changed: 987 additions & 1842 deletions
Large diffs are not rendered by default.

src/Sql/Sql.Test/SessionRecords/Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests/TestFailoverGroup.json

Lines changed: 3134 additions & 2558 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)