Skip to content

Commit 9ec147d

Browse files
Enabling GPv2 in powershell (#24880)
* Enabling MI GPv2 powershell * Nit fixes * suppressing static analysis * Documentation nits, parameter set fixes, and changelog description * nit fix * adding tests * Update ChangeLog.md --------- Co-authored-by: Yabo Hu <[email protected]>
1 parent fc7678e commit 9ec147d

File tree

15 files changed

+10834
-30
lines changed

15 files changed

+10834
-30
lines changed

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1009,6 +1009,16 @@ function Get-DefaultManagedInstanceParametersV2()
10091009
}
10101010
}
10111011

1012+
function Get-DefaultManagedInstanceParametersHermesTesting()
1013+
{
1014+
return @{
1015+
rg = "hermes-powershell-testing-resourcegroup-wcus";
1016+
location = "westcentralus";
1017+
subnet = "/subscriptions/62e48210-5e43-423e-889b-c277f3e08c39/resourceGroups/hermes-powershell-testing-resourcegroup-wcus/providers/Microsoft.Network/virtualNetworks/hermes-powershell-testing-virtualnetwork-wcus/subnets/hermes-powershell-testing-subnet-wcus";
1018+
subscriptionId = "62e48210-5e43-423e-889b-c277f3e08c39";
1019+
}
1020+
}
1021+
10121022
<#
10131023
.SYNOPSIS
10141024
Creates the test environment needed to perform the Sql managed instance CRUD tests

src/Sql/Sql.Test/ScenarioTests/ManagedInstanceCrudScenarioTests.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,20 @@ public void TestCreateManagedInstance()
3535
TestRunner.RunTestScript("Test-CreateManagedInstance");
3636
}
3737

38+
[Fact]
39+
[Trait(Category.AcceptanceType, Category.CheckIn)]
40+
public void TestCreateManagedInstanceHermesTesting()
41+
{
42+
TestRunner.RunTestScript("Test-CreateManagedInstance-HermesTesting");
43+
}
44+
45+
[Fact]
46+
[Trait(Category.AcceptanceType, Category.CheckIn)]
47+
public void TestSetManagedInstanceHermesTesting()
48+
{
49+
TestRunner.RunTestScript("Test-SetManagedInstance-HermesTesting");
50+
}
51+
3852
[Fact]
3953
[Trait(Category.AcceptanceType, Category.CheckIn)]
4054
public void TestSetManagedInstance()

src/Sql/Sql.Test/ScenarioTests/ManagedInstanceCrudScenarioTests.ps1

Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,148 @@ function Test-CreateManagedInstance
116116
}
117117
}
118118

119+
<#
120+
.SYNOPSIS
121+
Tests creating a managed instance while using Hermes related parameters
122+
.DESCRIPTION
123+
SmokeTest
124+
#>
125+
function Test-CreateManagedInstance-HermesTesting
126+
{
127+
$defaultParams = Get-DefaultManagedInstanceParametersHermesTesting
128+
$credentials = Get-ServerCredential
129+
$vCore = 8
130+
$storageSizeInGB = 32
131+
132+
# Tests with SKU name specified and with true IsGeneralPurposeV2 specified
133+
$managedInstanceName = "createmanagedinstance-hermestesting-he"
134+
$skuName = "GP_Gen5"
135+
$isGeneralPurposeV2 = $true
136+
$storageIOps = 2000
137+
138+
$job = New-AzSqlInstance -ResourceGroupName $defaultParams.rg -Name $managedInstanceName `
139+
-Location $defaultParams.location -AdministratorCredential $credentials -SubnetId $defaultParams.subnet `
140+
-StorageSizeInGB $storageSizeInGB -Vcore $vCore -SkuName $skuName `
141+
-IsGeneralPurposeV2 $isGeneralPurposeV2 -StorageIOps $storageIOps -AsJob
142+
$job | Wait-Job
143+
$managedInstance = $job.Output
144+
145+
Assert-AreEqual $managedInstance.ManagedInstanceName $managedInstanceName
146+
Assert-AreEqual $managedInstance.Sku.Name $skuName
147+
Assert-AreEqual $managedInstance.IsGeneralPurposeV2 $isGeneralPurposeV2
148+
Assert-AreEqual $managedInstance.VCores $vCore
149+
Assert-AreEqual $managedInstance.StorageSizeInGB $storageSizeInGB
150+
Assert-AreEqual $managedInstance.StorageIOps $storageIOps
151+
152+
# Tests with SKU name specified and without IsGeneralPurposeV2 specified
153+
$managedInstanceName = "createmanagedinstance-hermestesting-gp-noflag"
154+
$skuName = "GP_Gen5"
155+
$isGeneralPurposeV2 = $false
156+
$storageIOps = $null
157+
158+
$job = New-AzSqlInstance -ResourceGroupName $defaultParams.rg -Name $managedInstanceName `
159+
-Location $defaultParams.location -AdministratorCredential $credentials -SubnetId $defaultParams.subnet `
160+
-StorageSizeInGB $storageSizeInGB -Vcore $vCore -SkuName $skuName -AsJob
161+
$job | Wait-Job
162+
$managedInstance = $job.Output
163+
164+
Assert-AreEqual $managedInstance.ManagedInstanceName $managedInstanceName
165+
Assert-AreEqual $managedInstance.Sku.Name $skuName
166+
Assert-AreEqual $managedInstance.IsGeneralPurposeV2 $isGeneralPurposeV2
167+
Assert-AreEqual $managedInstance.VCores $vCore
168+
Assert-AreEqual $managedInstance.StorageSizeInGB $storageSizeInGB
169+
Assert-AreEqual $managedInstance.StorageIOps $storageIOps
170+
171+
# Tests with SKU name specified and with false IsGeneralPurposeV2 specified
172+
$managedInstanceName = "createmanagedinstance-hermestesting-gp-falseflag"
173+
$skuName = "GP_Gen5"
174+
$isGeneralPurposeV2 = $false
175+
$storageIOps = $null
176+
177+
$job = New-AzSqlInstance -ResourceGroupName $defaultParams.rg -Name $managedInstanceName `
178+
-Location $defaultParams.location -AdministratorCredential $credentials -SubnetId $defaultParams.subnet `
179+
-StorageSizeInGB $storageSizeInGB -Vcore $vCore -SkuName $skuName `
180+
-IsGeneralPurposeV2 $isGeneralPurposeV2 -AsJob
181+
$job | Wait-Job
182+
$managedInstance = $job.Output
183+
184+
Assert-AreEqual $managedInstance.ManagedInstanceName $managedInstanceName
185+
Assert-AreEqual $managedInstance.Sku.Name $skuName
186+
Assert-AreEqual $managedInstance.IsGeneralPurposeV2 $isGeneralPurposeV2
187+
Assert-AreEqual $managedInstance.VCores $vCore
188+
Assert-AreEqual $managedInstance.StorageSizeInGB $storageSizeInGB
189+
Assert-AreEqual $managedInstance.StorageIOps $storageIOps
190+
}
191+
192+
<#
193+
.SYNOPSIS
194+
Tests setting a Managed Instance while using Hermes related parameters
195+
.DESCRIPTION
196+
SmokeTest
197+
#>
198+
function Test-SetManagedInstance-HermesTesting
199+
{
200+
$defaultParams = Get-DefaultManagedInstanceParametersHermesTesting
201+
$credentials = Get-ServerCredential
202+
$managedInstanceName = "setmanagedinstance-hermestesting"
203+
$vCore = 8
204+
205+
# Create GP MI
206+
$skuName = "GP_Gen5"
207+
$isGeneralPurposeV2 = $false
208+
$storageSizeInGB = 32
209+
$storageIOps = $null
210+
211+
$job = New-AzSqlInstance -ResourceGroupName $defaultParams.rg -Name $managedInstanceName `
212+
-Location $defaultParams.location -AdministratorCredential $credentials -SubnetId $defaultParams.subnet `
213+
-StorageSizeInGB $storageSizeInGB -Vcore $vCore -SkuName $skuName -AsJob
214+
$job | Wait-Job
215+
$managedInstance = $job.Output
216+
217+
Assert-AreEqual $managedInstance.ManagedInstanceName $managedInstanceName
218+
Assert-AreEqual $managedInstance.Sku.Name $skuName
219+
Assert-AreEqual $managedInstance.IsGeneralPurposeV2 $isGeneralPurposeV2
220+
Assert-AreEqual $managedInstance.VCores $vCore
221+
Assert-AreEqual $managedInstance.StorageSizeInGB $storageSizeInGB
222+
Assert-AreEqual $managedInstance.StorageIOps $storageIOps
223+
224+
# Update to HE MI
225+
$edition = "GeneralPurpose"
226+
$computeGeneration = "Gen5"
227+
$isGeneralPurposeV2 = $true
228+
$storageSizeInGB = 64
229+
$storageIOps = 2000
230+
231+
$managedInstance = Set-AzSqlInstance -ResourceGroupName $defaultParams.rg -Name $managedInstanceName `
232+
-StorageSizeInGB $storageSizeInGB -Edition $edition -ComputeGeneration $computeGeneration `
233+
-IsGeneralPurposeV2 $isGeneralPurposeV2 -StorageIOps $storageIOps -Force
234+
235+
Assert-AreEqual $managedInstance.ManagedInstanceName $managedInstanceName
236+
Assert-AreEqual $managedInstance.Sku.Name $skuName
237+
Assert-AreEqual $managedInstance.IsGeneralPurposeV2 $isGeneralPurposeV2
238+
Assert-AreEqual $managedInstance.VCores $vCore
239+
Assert-AreEqual $managedInstance.StorageSizeInGB $storageSizeInGB
240+
Assert-AreEqual $managedInstance.StorageIOps $storageIOps
241+
242+
# Update to GP MI
243+
$edition = "GeneralPurpose"
244+
$computeGeneration = "Gen5"
245+
$isGeneralPurposeV2 = $false
246+
$storageSizeInGB = 64
247+
$storageIOps = $null
248+
249+
$managedInstance = Set-AzSqlInstance -ResourceGroupName $defaultParams.rg -Name $managedInstanceName `
250+
-StorageSizeInGB $storageSizeInGB -Edition $edition -ComputeGeneration $computeGeneration `
251+
-IsGeneralPurposeV2 $isGeneralPurposeV2 -Force
252+
253+
Assert-AreEqual $managedInstance.ManagedInstanceName $managedInstanceName
254+
Assert-AreEqual $managedInstance.Sku.Name $skuName
255+
Assert-AreEqual $managedInstance.IsGeneralPurposeV2 $isGeneralPurposeV2
256+
Assert-AreEqual $managedInstance.VCores $vCore
257+
Assert-AreEqual $managedInstance.StorageSizeInGB $storageSizeInGB
258+
Assert-AreEqual $managedInstance.StorageIOps $storageIOps
259+
}
260+
119261
<#
120262
.SYNOPSIS
121263
Tests setting a Managed Instance

0 commit comments

Comments
 (0)