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

Enabling GPv2 in powershell #24880

Merged
merged 11 commits into from
Jul 9, 2024
10 changes: 10 additions & 0 deletions src/Sql/Sql.Test/ScenarioTests/Common.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -1009,6 +1009,16 @@ function Get-DefaultManagedInstanceParametersV2()
}
}

function Get-DefaultManagedInstanceParametersHermesTesting()
{
return @{
rg = "hermes-powershell-testing-resourcegroup-wcus";
location = "westcentralus";
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";
subscriptionId = "62e48210-5e43-423e-889b-c277f3e08c39";
}
}

<#
.SYNOPSIS
Creates the test environment needed to perform the Sql managed instance CRUD tests
Expand Down
14 changes: 14 additions & 0 deletions src/Sql/Sql.Test/ScenarioTests/ManagedInstanceCrudScenarioTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,20 @@ public void TestCreateManagedInstance()
TestRunner.RunTestScript("Test-CreateManagedInstance");
}

[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestCreateManagedInstanceHermesTesting()
{
TestRunner.RunTestScript("Test-CreateManagedInstance-HermesTesting");
}

[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestSetManagedInstanceHermesTesting()
{
TestRunner.RunTestScript("Test-SetManagedInstance-HermesTesting");
}

[Fact]
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestSetManagedInstance()
Expand Down
142 changes: 142 additions & 0 deletions src/Sql/Sql.Test/ScenarioTests/ManagedInstanceCrudScenarioTests.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,148 @@ function Test-CreateManagedInstance
}
}

<#
.SYNOPSIS
Tests creating a managed instance while using Hermes related parameters
.DESCRIPTION
SmokeTest
#>
function Test-CreateManagedInstance-HermesTesting
{
$defaultParams = Get-DefaultManagedInstanceParametersHermesTesting
$credentials = Get-ServerCredential
$vCore = 8
$storageSizeInGB = 32

# Tests with SKU name specified and with true IsGeneralPurposeV2 specified
$managedInstanceName = "createmanagedinstance-hermestesting-he"
$skuName = "GP_Gen5"
$isGeneralPurposeV2 = $true
$storageIOps = 2000

$job = New-AzSqlInstance -ResourceGroupName $defaultParams.rg -Name $managedInstanceName `
-Location $defaultParams.location -AdministratorCredential $credentials -SubnetId $defaultParams.subnet `
-StorageSizeInGB $storageSizeInGB -Vcore $vCore -SkuName $skuName `
-IsGeneralPurposeV2 $isGeneralPurposeV2 -StorageIOps $storageIOps -AsJob
$job | Wait-Job
$managedInstance = $job.Output

Assert-AreEqual $managedInstance.ManagedInstanceName $managedInstanceName
Assert-AreEqual $managedInstance.Sku.Name $skuName
Assert-AreEqual $managedInstance.IsGeneralPurposeV2 $isGeneralPurposeV2
Assert-AreEqual $managedInstance.VCores $vCore
Assert-AreEqual $managedInstance.StorageSizeInGB $storageSizeInGB
Assert-AreEqual $managedInstance.StorageIOps $storageIOps

# Tests with SKU name specified and without IsGeneralPurposeV2 specified
$managedInstanceName = "createmanagedinstance-hermestesting-gp-noflag"
$skuName = "GP_Gen5"
$isGeneralPurposeV2 = $false
$storageIOps = $null

$job = New-AzSqlInstance -ResourceGroupName $defaultParams.rg -Name $managedInstanceName `
-Location $defaultParams.location -AdministratorCredential $credentials -SubnetId $defaultParams.subnet `
-StorageSizeInGB $storageSizeInGB -Vcore $vCore -SkuName $skuName -AsJob
$job | Wait-Job
$managedInstance = $job.Output

Assert-AreEqual $managedInstance.ManagedInstanceName $managedInstanceName
Assert-AreEqual $managedInstance.Sku.Name $skuName
Assert-AreEqual $managedInstance.IsGeneralPurposeV2 $isGeneralPurposeV2
Assert-AreEqual $managedInstance.VCores $vCore
Assert-AreEqual $managedInstance.StorageSizeInGB $storageSizeInGB
Assert-AreEqual $managedInstance.StorageIOps $storageIOps

# Tests with SKU name specified and with false IsGeneralPurposeV2 specified
$managedInstanceName = "createmanagedinstance-hermestesting-gp-falseflag"
$skuName = "GP_Gen5"
$isGeneralPurposeV2 = $false
$storageIOps = $null

$job = New-AzSqlInstance -ResourceGroupName $defaultParams.rg -Name $managedInstanceName `
-Location $defaultParams.location -AdministratorCredential $credentials -SubnetId $defaultParams.subnet `
-StorageSizeInGB $storageSizeInGB -Vcore $vCore -SkuName $skuName `
-IsGeneralPurposeV2 $isGeneralPurposeV2 -AsJob
$job | Wait-Job
$managedInstance = $job.Output

Assert-AreEqual $managedInstance.ManagedInstanceName $managedInstanceName
Assert-AreEqual $managedInstance.Sku.Name $skuName
Assert-AreEqual $managedInstance.IsGeneralPurposeV2 $isGeneralPurposeV2
Assert-AreEqual $managedInstance.VCores $vCore
Assert-AreEqual $managedInstance.StorageSizeInGB $storageSizeInGB
Assert-AreEqual $managedInstance.StorageIOps $storageIOps
}

<#
.SYNOPSIS
Tests setting a Managed Instance while using Hermes related parameters
.DESCRIPTION
SmokeTest
#>
function Test-SetManagedInstance-HermesTesting
{
$defaultParams = Get-DefaultManagedInstanceParametersHermesTesting
$credentials = Get-ServerCredential
$managedInstanceName = "setmanagedinstance-hermestesting"
$vCore = 8

# Create GP MI
$skuName = "GP_Gen5"
$isGeneralPurposeV2 = $false
$storageSizeInGB = 32
$storageIOps = $null

$job = New-AzSqlInstance -ResourceGroupName $defaultParams.rg -Name $managedInstanceName `
-Location $defaultParams.location -AdministratorCredential $credentials -SubnetId $defaultParams.subnet `
-StorageSizeInGB $storageSizeInGB -Vcore $vCore -SkuName $skuName -AsJob
$job | Wait-Job
$managedInstance = $job.Output

Assert-AreEqual $managedInstance.ManagedInstanceName $managedInstanceName
Assert-AreEqual $managedInstance.Sku.Name $skuName
Assert-AreEqual $managedInstance.IsGeneralPurposeV2 $isGeneralPurposeV2
Assert-AreEqual $managedInstance.VCores $vCore
Assert-AreEqual $managedInstance.StorageSizeInGB $storageSizeInGB
Assert-AreEqual $managedInstance.StorageIOps $storageIOps

# Update to HE MI
$edition = "GeneralPurpose"
$computeGeneration = "Gen5"
$isGeneralPurposeV2 = $true
$storageSizeInGB = 64
$storageIOps = 2000

$managedInstance = Set-AzSqlInstance -ResourceGroupName $defaultParams.rg -Name $managedInstanceName `
-StorageSizeInGB $storageSizeInGB -Edition $edition -ComputeGeneration $computeGeneration `
-IsGeneralPurposeV2 $isGeneralPurposeV2 -StorageIOps $storageIOps -Force

Assert-AreEqual $managedInstance.ManagedInstanceName $managedInstanceName
Assert-AreEqual $managedInstance.Sku.Name $skuName
Assert-AreEqual $managedInstance.IsGeneralPurposeV2 $isGeneralPurposeV2
Assert-AreEqual $managedInstance.VCores $vCore
Assert-AreEqual $managedInstance.StorageSizeInGB $storageSizeInGB
Assert-AreEqual $managedInstance.StorageIOps $storageIOps

# Update to GP MI
$edition = "GeneralPurpose"
$computeGeneration = "Gen5"
$isGeneralPurposeV2 = $false
$storageSizeInGB = 64
$storageIOps = $null

$managedInstance = Set-AzSqlInstance -ResourceGroupName $defaultParams.rg -Name $managedInstanceName `
-StorageSizeInGB $storageSizeInGB -Edition $edition -ComputeGeneration $computeGeneration `
-IsGeneralPurposeV2 $isGeneralPurposeV2 -Force

Assert-AreEqual $managedInstance.ManagedInstanceName $managedInstanceName
Assert-AreEqual $managedInstance.Sku.Name $skuName
Assert-AreEqual $managedInstance.IsGeneralPurposeV2 $isGeneralPurposeV2
Assert-AreEqual $managedInstance.VCores $vCore
Assert-AreEqual $managedInstance.StorageSizeInGB $storageSizeInGB
Assert-AreEqual $managedInstance.StorageIOps $storageIOps
}

<#
.SYNOPSIS
Tests setting a Managed Instance
Expand Down
Loading