Skip to content

Commit 3b22284

Browse files
authored
Merge pull request Azure#3826 from dlemMSFT/preview
Fix, update, and add tests for ResourceManager SQL Failover Group cmdlets
2 parents 05b8320 + 8ed3cc5 commit 3b22284

File tree

51 files changed

+24461
-904
lines changed

Some content is hidden

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

51 files changed

+24461
-904
lines changed

src/ResourceManager/Sql/ChangeLog.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,17 @@
1818
- Additional information about change #1
1919
-->
2020
## Current Release
21-
* Added -SampleName parameter to New-AzureRmSqlDatabase
21+
* Added -SampleName parameter to New-AzureRmSqlDatabase
22+
* Updates to Failover Group cmdlets
23+
- Remove 'Tag' parameters
24+
- Remove 'PartnerResourceGroupName' and 'PartnerServerName' parameters from Remove-AzureRmSqlDatabaseFailoverGroup cmdlet
25+
- Add 'GracePeriodWithDataLossHours' parameter to New- and Set- cmdlets, which shall eventually replace 'GracePeriodWithDataLossHour'
26+
- Documentation has been fleshed out and updated
27+
- Change formatting of returned objects and fix some bugs where fields were not always populated
28+
- Add 'DatabaseNames' and 'PartnerLocation' properties to Failover Group object
29+
- Fix bug causing Switch- cmdlet to return immediately rather than waiting for operation to complete
30+
- Fix integer overflow bug when high grace period values are used
31+
- Adjust grace period to a minimum of 1 hour if a lower one is provided
2232

2333
## Version 2.8.0
2434
* Bug fixes on Azure Failover Group Cmdlets

src/ResourceManager/Sql/Commands.Sql.Test/Commands.Sql.Test.csproj

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -639,6 +639,63 @@
639639
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.ElasticPoolCrudTests\TestElasticPoolUpdate.json">
640640
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
641641
</None>
642+
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests\TestCreateFailoverGroup_AutomaticPolicy.json">
643+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
644+
</None>
645+
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests\TestCreateFailoverGroup_AutomaticPolicyGracePeriodReadOnlyFailover.json">
646+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
647+
</None>
648+
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests\TestCreateFailoverGroup_ManualPolicy.json">
649+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
650+
</None>
651+
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests\TestCreateFailoverGroup_Named.json">
652+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
653+
</None>
654+
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests\TestCreateFailoverGroup_Overflow.json">
655+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
656+
</None>
657+
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests\TestCreateFailoverGroup_Positional.json">
658+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
659+
</None>
660+
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests\TestCreateFailoverGroup_ZeroGracePeriod.json">
661+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
662+
</None>
663+
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests\TestFailoverGroup.json">
664+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
665+
</None>
666+
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests\TestSetFailoverGroup_AutomaticToManual.json">
667+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
668+
</None>
669+
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests\TestSetFailoverGroup_AutomaticWithGracePeriodReadOnlyFailover.json">
670+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
671+
</None>
672+
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests\TestSetFailoverGroup_AutomaticWithGracePeriodZero.json">
673+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
674+
</None>
675+
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests\TestSetFailoverGroup_ManualToAutomaticNoGracePeriod.json">
676+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
677+
</None>
678+
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests\TestSetFailoverGroup_Named.json">
679+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
680+
</None>
681+
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests\TestSetFailoverGroup_Overflow.json">
682+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
683+
</None>
684+
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests\TestSetFailoverGroup_PipeServer.json">
685+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
686+
</None>
687+
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests\TestSetFailoverGroup_Positional.json">
688+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
689+
</None>
690+
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests\TestSwitchFailoverGroup.json">
691+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
692+
</None>
693+
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests\TestSwitchFailoverGroupAllowDataLoss.json">
694+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
695+
</None>
696+
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.FailoverGroupTests\Test_AddRemoveDatabasesToFromFailoverGroup.json">
697+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
698+
</None>
642699
<None Include="SessionRecords\Microsoft.Azure.Commands.Sql.Test.ScenarioTests.IndexRecommendationTests\TestCreateIndex.json">
643700
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
644701
</None>

src/ResourceManager/Sql/Commands.Sql.Test/ScenarioTests/Common.ps1

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,15 @@ function Get-ElasticPoolName
294294
return getAssetName
295295
}
296296

297+
<#
298+
.SYNOPSIS
299+
Gets valid failover group name
300+
#>
301+
function Get-FailoverGroupName
302+
{
303+
return getAssetName
304+
}
305+
297306
<#
298307
.SYNOPSIS
299308
Gets the location for a provider, if not found return East US

src/ResourceManager/Sql/Commands.Sql.Test/ScenarioTests/FailoverGroupTests.cs

Lines changed: 127 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,137 @@ public FailoverGroupTests(ITestOutputHelper output)
2727
XunitTracingInterceptor.AddToContext(new XunitTracingInterceptor(output));
2828
}
2929

30-
// Currently the test runs too long to be marked as a check-in test.
31-
[Fact(Skip = "Hydra TestFramework Issue, cannot login to authenticate in order to record the tests")]
30+
[Fact]
31+
[Trait(Category.AcceptanceType, Category.CheckIn)]
3232
public void TestFailoverGroup()
3333
{
3434
RunPowerShellTest("Test-FailoverGroup");
3535
}
3636

37+
[Fact]
38+
[Trait(Category.AcceptanceType, Category.CheckIn)]
39+
public void TestCreateFailoverGroup_Named()
40+
{
41+
RunPowerShellTest("Test-CreateFailoverGroup-Named");
42+
}
43+
44+
[Fact]
45+
[Trait(Category.AcceptanceType, Category.CheckIn)]
46+
public void TestCreateFailoverGroup_Positional()
47+
{
48+
RunPowerShellTest("Test-CreateFailoverGroup-Positional");
49+
}
50+
51+
[Fact]
52+
[Trait(Category.AcceptanceType, Category.CheckIn)]
53+
public void TestCreateFailoverGroup_AutomaticPolicy()
54+
{
55+
RunPowerShellTest("Test-CreateFailoverGroup-AutomaticPolicy");
56+
}
57+
58+
[Fact]
59+
[Trait(Category.AcceptanceType, Category.CheckIn)]
60+
public void TestCreateFailoverGroup_AutomaticPolicyGracePeriodReadOnlyFailover()
61+
{
62+
RunPowerShellTest("Test-CreateFailoverGroup-AutomaticPolicyGracePeriodReadOnlyFailover");
63+
}
64+
65+
[Fact]
66+
[Trait(Category.AcceptanceType, Category.CheckIn)]
67+
public void TestCreateFailoverGroup_ZeroGracePeriod()
68+
{
69+
RunPowerShellTest("Test-CreateFailoverGroup-ZeroGracePeriod");
70+
}
71+
72+
[Fact]
73+
[Trait(Category.AcceptanceType, Category.CheckIn)]
74+
public void TestCreateFailoverGroup_ManualPolicy()
75+
{
76+
RunPowerShellTest("Test-CreateFailoverGroup-ManualPolicy");
77+
}
78+
79+
[Fact]
80+
[Trait(Category.AcceptanceType, Category.CheckIn)]
81+
public void TestCreateFailoverGroup_Overflow()
82+
{
83+
RunPowerShellTest("Test-CreateFailoverGroup-Overflow");
84+
}
85+
86+
[Fact]
87+
[Trait(Category.AcceptanceType, Category.CheckIn)]
88+
public void TestSetFailoverGroup_Named()
89+
{
90+
RunPowerShellTest("Test-SetFailoverGroup-Named");
91+
}
92+
93+
[Fact]
94+
[Trait(Category.AcceptanceType, Category.CheckIn)]
95+
public void TestSetFailoverGroup_Positional()
96+
{
97+
RunPowerShellTest("Test-SetFailoverGroup-Positional");
98+
}
99+
100+
[Fact]
101+
[Trait(Category.AcceptanceType, Category.CheckIn)]
102+
public void TestSetFailoverGroup_PipeServer()
103+
{
104+
RunPowerShellTest("Test-SetFailoverGroup-PipeServer");
105+
}
106+
107+
[Fact]
108+
[Trait(Category.AcceptanceType, Category.CheckIn)]
109+
public void TestSetFailoverGroup_AutomaticWithGracePeriodReadOnlyFailover()
110+
{
111+
RunPowerShellTest("Test-SetFailoverGroup-AutomaticWithGracePeriodReadOnlyFailover");
112+
}
113+
114+
[Fact]
115+
[Trait(Category.AcceptanceType, Category.CheckIn)]
116+
public void TestSetFailoverGroup_AutomaticWithGracePeriodZero()
117+
{
118+
RunPowerShellTest("Test-SetFailoverGroup-AutomaticWithGracePeriodZero");
119+
}
120+
121+
[Fact]
122+
[Trait(Category.AcceptanceType, Category.CheckIn)]
123+
public void TestSetFailoverGroup_AutomaticToManual()
124+
{
125+
RunPowerShellTest("Test-SetFailoverGroup-AutomaticToManual");
126+
}
127+
128+
[Fact]
129+
[Trait(Category.AcceptanceType, Category.CheckIn)]
130+
public void TestSetFailoverGroup_ManualToAutomaticNoGracePeriod()
131+
{
132+
RunPowerShellTest("Test-SetFailoverGroup-ManualToAutomaticNoGracePeriod");
133+
}
134+
135+
[Fact]
136+
[Trait(Category.AcceptanceType, Category.CheckIn)]
137+
public void TestSetFailoverGroup_Overflow()
138+
{
139+
RunPowerShellTest("Test-SetFailoverGroup-Overflow");
140+
}
141+
142+
[Fact]
143+
[Trait(Category.AcceptanceType, Category.CheckIn)]
144+
public void Test_AddRemoveDatabasesToFromFailoverGroup()
145+
{
146+
RunPowerShellTest("Test-AddRemoveDatabasesToFromFailoverGroup");
147+
}
148+
149+
[Fact]
150+
[Trait(Category.AcceptanceType, Category.CheckIn)]
151+
public void TestSwitchFailoverGroup()
152+
{
153+
RunPowerShellTest("Test-SwitchFailoverGroup");
154+
}
155+
156+
[Fact]
157+
[Trait(Category.AcceptanceType, Category.CheckIn)]
158+
public void TestSwitchFailoverGroupAllowDataLoss()
159+
{
160+
RunPowerShellTest("Test-SwitchFailoverGroupAllowDataLoss");
161+
}
37162
}
38163
}

0 commit comments

Comments
 (0)