Skip to content

[Synapse] - Enhance existing cmdlets to support the next generation of SQL pool (so called Gen3 or v3) #15403

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

Merged
merged 15 commits into from
Jul 7, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,7 @@ function Remove-DataClassificationTestEnvironment ($testSuffix)
.SYNOPSIS
Creates the test environment needed to perform the tests
#>
function Create-SqlDataClassificationTestEnvironment ($testSuffix, $location = "West Central US")
function Create-SqlDataClassificationTestEnvironment ($testSuffix, $location = "canadacentral")
{
$params = Get-DataClassificationTestEnvironmentParameters $testSuffix

Expand Down
2 changes: 1 addition & 1 deletion src/Synapse/Synapse.Test/ScenarioTests/FirewallTests.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ function Get-FirewallRuleTestEnvironmentParameters ($testSuffix)
fileSystemName = "fwcmdletfs" + $testSuffix;
loginName = "testlogin";
pwd = "testp@ssMakingIt1007Longer";
location = "westcentralus";
location = "canadacentral";
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ function Get-WorkspaceTestEnvironmentParameters ($testSuffix)
fileSystemName = "wscmdletfs" + $testSuffix;
loginName = "testlogin";
pwd = "testp@ssMakingIt1007Longer";
location = "westcentralus";
location = "canadacentral";
}
}

Expand Down
2 changes: 1 addition & 1 deletion src/Synapse/Synapse.Test/ScenarioTests/SparkPoolTests.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ function Get-WorkspaceTestEnvironmentParameters ($testSuffix)
fileSystemName = "wscmdletfs" + $testSuffix;
loginName = "testlogin";
pwd = "testp@ssMakingIt1007Longer";
location = "westcentralus";
location = "canadacentral";
sparkPoolName = "spool" + $testSuffix;
}
}
Expand Down
17 changes: 1 addition & 16 deletions src/Synapse/Synapse.Test/ScenarioTests/SqlDatabaseTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,24 +32,9 @@ public SqlDatabaseTests(Xunit.Abstractions.ITestOutputHelper output)
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestSynapseSqlDatabase()
{
string testResourceGroupName = SynapseTestBase.TestResourceGroupName;
if (string.IsNullOrEmpty(testResourceGroupName))
{
testResourceGroupName = nameof(TestResourceGroupName);
}

string testWorkspaceName = SynapseTestBase.TestWorkspaceName;
if (string.IsNullOrEmpty(testWorkspaceName))
{
testWorkspaceName = nameof(TestWorkspaceName);
}

SynapseTestBase.NewInstance.RunPsTest(
_logger,
string.Format(
"Test-SynapseSqlDatabase -resourceGroupName '{0}' -workspaceName '{1}'",
testResourceGroupName,
testWorkspaceName));
"Test-SynapseSqlDatabase");
}
}
}
60 changes: 48 additions & 12 deletions src/Synapse/Synapse.Test/ScenarioTests/SqlDatabaseTests.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,18 @@ Tests Synapse SqlDatabase Lifecycle (Create, Update, Get, List, Delete).
#>
function Test-SynapseSqlDatabase
{
param
(
$resourceGroupName = (Get-ResourceGroupName),
$workspaceName = (Get-SynapseWorkspaceName),
$SqlDatabaseName = (Get-SynapseSqlDatabaseName)
)
# Setup
$testSuffix = getAssetName
Create-SqlPoolV3TestEnvironment $testSuffix
$params = Get-SqlPoolV3TestEnvironmentParameters $testSuffix


try
{
$resourceGroupName = [Microsoft.Azure.Test.HttpRecorder.HttpMockServer]::GetVariable("resourceGroupName", $resourceGroupName)
$workspaceName = [Microsoft.Azure.Test.HttpRecorder.HttpMockServer]::GetVariable("workspaceName", $workspaceName)
$workspace = Get-AzSynapseWorkspace -resourceGroupName $resourceGroupName -Name $workspaceName
$location = $workspace.Location
$resourceGroupName = $params.rgname
$workspaceName = $params.WorkspaceName
$location = $params.location
$sqlDatabaseName = $params.sqlDatabaseName

# Test to make sure the SqlDatabase doesn't exist
Assert-False {Test-AzSynapseSqlDatabase -ResourceGroupName $resourceGroupName -WorkspaceName $workspaceName -Name $SqlDatabaseName}
Expand Down Expand Up @@ -67,7 +66,44 @@ function Test-SynapseSqlDatabase
}
finally
{
# cleanup the SQL pool that was used in case it still exists. This is a best effort task, we ignore failures here.
Invoke-HandledCmdlet -Command {Remove-AzSynapseSqlDatabase -ResourceGroupName $resourceGroupName -WorkspaceName $workspaceName -Name $SqlDatabaseName -ErrorAction SilentlyContinue -Force} -IgnoreFailures
# Cleanup
Remove-SqlPoolV3TestEnvironment $testSuffix
}
}

<#
.SYNOPSIS
Creates the test environment needed to perform the tests
#>
function Create-SqlPoolV3TestEnvironment ($testSuffix)
{
$params = Get-SqlPoolV3TestEnvironmentParameters $testSuffix
Create-TestEnvironmentWithParams $params $params.location
}

<#
.SYNOPSIS
Gets the values of the parameters used at the tests
#>
function Get-SqlPoolV3TestEnvironmentParameters ($testSuffix)
{
return @{ rgname = "sql-cmdlet-test-rg" +$testSuffix;
workspaceName = "sqlws" +$testSuffix;
sqlDatabaseName = "sqldb" + $testSuffix;
storageAccountName = "sqlstorage" + $testSuffix;
fileSystemName = "sqlcmdletfs" + $testSuffix;
loginName = "testlogin";
pwd = "testp@ssMakingIt1007Longer";
location = "eastus2euap";
}
}

<#
.SYNOPSIS
Removes the test environment that was needed to perform the tests
#>
function Remove-SqlPoolV3TestEnvironment ($testSuffix)
{
$params = Get-SqlPoolV3TestEnvironmentParameters $testSuffix
Remove-AzResourceGroup -Name $params.rgname -Force
}
2 changes: 1 addition & 1 deletion src/Synapse/Synapse.Test/ScenarioTests/SqlPoolTests.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,7 @@ function Get-SqlPoolTestEnvironmentParameters ($testSuffix)
loginName = "testlogin";
pwd = "testp@ssMakingIt1007Longer";
perfLevel = 'DW200c';
location = "westcentralus";
location = "canadacentral";
}
}

Expand Down
17 changes: 1 addition & 16 deletions src/Synapse/Synapse.Test/ScenarioTests/SqlPoolV3Tests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,24 +32,9 @@ public SqlPoolV3Tests(Xunit.Abstractions.ITestOutputHelper output)
[Trait(Category.AcceptanceType, Category.CheckIn)]
public void TestSynapseSqlPoolV3()
{
string testResourceGroupName = SynapseTestBase.TestResourceGroupName;
if (string.IsNullOrEmpty(testResourceGroupName))
{
testResourceGroupName = nameof(TestResourceGroupName);
}

string testWorkspaceName = SynapseTestBase.TestWorkspaceName;
if (string.IsNullOrEmpty(testWorkspaceName))
{
testWorkspaceName = nameof(TestWorkspaceName);
}

SynapseTestBase.NewInstance.RunPsTest(
_logger,
string.Format(
"Test-SynapseSqlPoolV3 -resourceGroupName '{0}' -workspaceName '{1}'",
testResourceGroupName,
testWorkspaceName));
"Test-SynapseSqlPoolV3");
}
}
}
71 changes: 58 additions & 13 deletions src/Synapse/Synapse.Test/ScenarioTests/SqlPoolV3Tests.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,18 @@ Tests Synapse SqlPool Lifecycle (Create, Update, Get, List, Delete).
#>
function Test-SynapseSqlPoolV3
{
param
(
$resourceGroupName = (Get-ResourceGroupName),
$workspaceName = (Get-SynapseWorkspaceName),
$sqlPoolName = (Get-SynapseSqlPoolName),
$sqlPoolPerformanceLevel = 'DW500f'
)
# Setup
$testSuffix = getAssetName
Create-SqlPoolV3TestEnvironment $testSuffix
$params = Get-SqlPoolV3TestEnvironmentParameters $testSuffix

try
{
$resourceGroupName = [Microsoft.Azure.Test.HttpRecorder.HttpMockServer]::GetVariable("resourceGroupName", $resourceGroupName)
$workspaceName = [Microsoft.Azure.Test.HttpRecorder.HttpMockServer]::GetVariable("workspaceName", $workspaceName)
$workspace = Get-AzSynapseWorkspace -resourceGroupName $resourceGroupName -Name $workspaceName
$location = $workspace.Location
$resourceGroupName = $params.rgname
$workspaceName = $params.WorkspaceName
$location = $params.location
$sqlPoolName = $params.sqlPoolName
$sqlPoolPerformanceLevel = 'DW500f'

# Test to make sure the SqlPool doesn't exist
Assert-False {Test-AzSynapseSqlPool -ResourceGroupName $resourceGroupName -WorkspaceName $workspaceName -Name $sqlPoolName -Version 3}
Expand Down Expand Up @@ -85,6 +83,16 @@ function Test-SynapseSqlPoolV3
}
Assert-True {$found -eq 1} "SqlPool created earlier is not found when listing all in resource group: $resourceGroupName."

# Suspend SqlPool
$sqlPoolSuspended = Suspend-AzSynapseSqlPool -ResourceGroupName $resourceGroupName -WorkspaceName $workspaceName -Name $sqlPoolName -Version 3

Assert-AreEqual "Paused" $sqlPoolSuspended.Status

# Resume SqlPool
$sqlPoolResumed = Resume-AzSynapseSqlPool -ResourceGroupName $resourceGroupName -WorkspaceName $workspaceName -Name $sqlPoolName -Version 3

Assert-AreEqual "Online" $sqlPoolResumed.Status

# Delete SqlPool
Assert-True {Remove-AzSynapseSqlPool -ResourceGroupName $resourceGroupName -WorkspaceName $workspaceName -Name $sqlPoolName -Version 3 -PassThru -Force} "Remove SqlPool failed."

Expand All @@ -95,7 +103,44 @@ function Test-SynapseSqlPoolV3
}
finally
{
# cleanup the SQL pool that was used in case it still exists. This is a best effort task, we ignore failures here.
Invoke-HandledCmdlet -Command {Remove-AzSynapseSqlPool -ResourceGroupName $resourceGroupName -WorkspaceName $workspaceName -Name $sqlPoolName -Version 3 -ErrorAction SilentlyContinue -Force} -IgnoreFailures
# Cleanup
Remove-SqlPoolV3TestEnvironment $testSuffix
}
}

<#
.SYNOPSIS
Creates the test environment needed to perform the tests
#>
function Create-SqlPoolV3TestEnvironment ($testSuffix)
{
$params = Get-SqlPoolV3TestEnvironmentParameters $testSuffix
Create-TestEnvironmentWithParams $params $params.location
}

<#
.SYNOPSIS
Gets the values of the parameters used at the tests
#>
function Get-SqlPoolV3TestEnvironmentParameters ($testSuffix)
{
return @{ rgname = "sql-cmdlet-test-rg" +$testSuffix;
workspaceName = "sqlws" +$testSuffix;
sqlPoolName = "sqlpoolv3" + $testSuffix;
storageAccountName = "sqlstorage" + $testSuffix;
fileSystemName = "sqlcmdletfs" + $testSuffix;
loginName = "testlogin";
pwd = "testp@ssMakingIt1007Longer";
location = "eastus2euap";
}
}

<#
.SYNOPSIS
Removes the test environment that was needed to perform the tests
#>
function Remove-SqlPoolV3TestEnvironment ($testSuffix)
{
$params = Get-SqlPoolV3TestEnvironmentParameters $testSuffix
Remove-AzResourceGroup -Name $params.rgname -Force
}
33 changes: 5 additions & 28 deletions src/Synapse/Synapse.Test/ScenarioTests/WorkspaceTests.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -91,29 +91,6 @@ function Test-SynapseWorkspace
}
Assert-True {$found -eq 1} "Workspace created earlier is not found when listing all in resource group: $resourceGroupName."

# Unable to deserialize results in `Get-AzSynapseWorkspace`
# TODO: Update test after SDK upgrade

# List all Workspaces in subscription

# [array]$workspacesInSubscription = Get-AzSynapseWorkspace
# Assert-True {$workspacesInSubscription.Count -ge 1}
# Assert-True {$workspacesInSubscription.Count -ge $workspacesInResourceGroup.Count}
#
# $found = 0
# for ($i = 0; $i -lt $workspacesInSubscription.Count; $i++)
# {
# if ($workspacesInSubscription[$i].Name -eq $workspaceName)
# {
# $found = 1
# Assert-AreEqual $location $workspacesInSubscription[$i].Location
# Assert-AreEqual "Microsoft.Synapse/workspaces" $workspacesInSubscription[$i].Type
# Assert-True {$workspacesInSubscription[$i].Id -like "*$resourceGroupName*"}
# break
# }
# }
# Assert-True {$found -eq 1} "Workspace created earlier is not found when listing all in subscription."

# Delete workspace
Assert-True {Remove-AzSynapseWorkspace -ResourceGroupName $resourceGroupName -Name $workspaceName -PassThru -Force} "Remove Workspace failed."

Expand Down Expand Up @@ -211,12 +188,12 @@ function Test-SynapseWorkspaceSecurity
Assert-AreEqual $auditing.StorageAccountResourceId $account.id

# Enable SQL Data Security
$dataSecurityEnable = Enable-AzSynapseSqlAdvancedDataSecurity -WorkspaceName $workspaceName -DoNotConfigureVulnerabilityAssessment
$dataSecurityEnable = Enable-AzSynapseSqlAdvancedDataSecurity -ResourceGroupName $resourceGroupName -WorkspaceName $workspaceName -DoNotConfigureVulnerabilityAssessment

Assert-True {$dataSecurityEnable.IsEnabled}

# Get SQL Data Security Policy
$dataSecurityGet = Get-AzSynapseSqlAdvancedDataSecurityPolicy -WorkspaceName $workspaceName
$dataSecurityGet = Get-AzSynapseSqlAdvancedDataSecurityPolicy -ResourceGroupName $resourceGroupName -WorkspaceName $workspaceName

Assert-True {$dataSecurityGet.IsEnabled}

Expand Down Expand Up @@ -251,7 +228,7 @@ function Test-SynapseWorkspaceSecurity
Assert-AreEqual $threatProtectionGet.ThreatDetectionState Disabled

# Disable SQL Data Security
$dataSecurityDisable = Disable-AzSynapseSqlAdvancedDataSecurity -WorkspaceName $workspaceName
$dataSecurityDisable = Disable-AzSynapseSqlAdvancedDataSecurity -ResourceGroupName $resourceGroupName -WorkspaceName $workspaceName

Assert-False {$dataSecurityDisable.IsEnabled}

Expand Down Expand Up @@ -470,7 +447,7 @@ function Get-WorkspaceEncryptionTestEnvironmentParameters ($testSuffix)
fileSystemName = "wscmdletfs" + $testSuffix;
loginName = "testlogin";
pwd = "testp@ssMakingIt1007Longer";
location = "eastus2euap";
location = "canadacentral";
encryptionKeyIdentifier = "<your-encryptionKeyIdentifier>";
}
}
Expand Down Expand Up @@ -539,7 +516,7 @@ function Get-WorkspaceTestEnvironmentParameters ($testSuffix)
fileSystemName = "wscmdletfs" + $testSuffix;
loginName = "testlogin";
pwd = "testp@ssMakingIt1007Longer";
location = "eastus2euap";
location = "canadacentral";
}
}

Expand Down
Loading