Skip to content

Commit 0b8a9d2

Browse files
idear1203Dongwei Wang
andauthored
[Synapse] - Enhance existing cmdlets to support the next generation of SQL pool (so called Gen3 or v3) (#15403)
* add auto pause and auto resume * [Synapse] - change autoresume to bool * Add support for storage redundancy and manual pause,resume * Update-AzSynapseSqlDatabase now doesn't support storage redundancy * Now sqlpool v3 update command supports remove keywords * Upgrade to the public SDK * Refresh session records * Refresh database and sql pool v3 session records * Refresh database and sql pool v3 session records * Update help doc * Correct help doc * Refresh workspace test session records * Update change log * Add BreakingChangeIssues.csv * Update changelog Co-authored-by: Dongwei Wang <[email protected]>
1 parent 7468a27 commit 0b8a9d2

File tree

60 files changed

+28665
-21898
lines changed

Some content is hidden

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

60 files changed

+28665
-21898
lines changed

src/Synapse/Synapse.Test/ScenarioTests/DataClassificationTests.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ function Remove-DataClassificationTestEnvironment ($testSuffix)
205205
.SYNOPSIS
206206
Creates the test environment needed to perform the tests
207207
#>
208-
function Create-SqlDataClassificationTestEnvironment ($testSuffix, $location = "West Central US")
208+
function Create-SqlDataClassificationTestEnvironment ($testSuffix, $location = "canadacentral")
209209
{
210210
$params = Get-DataClassificationTestEnvironmentParameters $testSuffix
211211

src/Synapse/Synapse.Test/ScenarioTests/FirewallTests.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ function Get-FirewallRuleTestEnvironmentParameters ($testSuffix)
8787
fileSystemName = "fwcmdletfs" + $testSuffix;
8888
loginName = "testlogin";
8989
pwd = "testp@ssMakingIt1007Longer";
90-
location = "westcentralus";
90+
location = "canadacentral";
9191
}
9292
}
9393

src/Synapse/Synapse.Test/ScenarioTests/IntegrationRuntimeTests.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ function Get-WorkspaceTestEnvironmentParameters ($testSuffix)
162162
fileSystemName = "wscmdletfs" + $testSuffix;
163163
loginName = "testlogin";
164164
pwd = "testp@ssMakingIt1007Longer";
165-
location = "westcentralus";
165+
location = "canadacentral";
166166
}
167167
}
168168

src/Synapse/Synapse.Test/ScenarioTests/SparkPoolTests.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ function Get-WorkspaceTestEnvironmentParameters ($testSuffix)
172172
fileSystemName = "wscmdletfs" + $testSuffix;
173173
loginName = "testlogin";
174174
pwd = "testp@ssMakingIt1007Longer";
175-
location = "westcentralus";
175+
location = "canadacentral";
176176
sparkPoolName = "spool" + $testSuffix;
177177
}
178178
}

src/Synapse/Synapse.Test/ScenarioTests/SqlDatabaseTests.cs

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -32,24 +32,9 @@ public SqlDatabaseTests(Xunit.Abstractions.ITestOutputHelper output)
3232
[Trait(Category.AcceptanceType, Category.CheckIn)]
3333
public void TestSynapseSqlDatabase()
3434
{
35-
string testResourceGroupName = SynapseTestBase.TestResourceGroupName;
36-
if (string.IsNullOrEmpty(testResourceGroupName))
37-
{
38-
testResourceGroupName = nameof(TestResourceGroupName);
39-
}
40-
41-
string testWorkspaceName = SynapseTestBase.TestWorkspaceName;
42-
if (string.IsNullOrEmpty(testWorkspaceName))
43-
{
44-
testWorkspaceName = nameof(TestWorkspaceName);
45-
}
46-
4735
SynapseTestBase.NewInstance.RunPsTest(
4836
_logger,
49-
string.Format(
50-
"Test-SynapseSqlDatabase -resourceGroupName '{0}' -workspaceName '{1}'",
51-
testResourceGroupName,
52-
testWorkspaceName));
37+
"Test-SynapseSqlDatabase");
5338
}
5439
}
5540
}

src/Synapse/Synapse.Test/ScenarioTests/SqlDatabaseTests.ps1

Lines changed: 48 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,18 @@ Tests Synapse SqlDatabase Lifecycle (Create, Update, Get, List, Delete).
44
#>
55
function Test-SynapseSqlDatabase
66
{
7-
param
8-
(
9-
$resourceGroupName = (Get-ResourceGroupName),
10-
$workspaceName = (Get-SynapseWorkspaceName),
11-
$SqlDatabaseName = (Get-SynapseSqlDatabaseName)
12-
)
7+
# Setup
8+
$testSuffix = getAssetName
9+
Create-SqlPoolV3TestEnvironment $testSuffix
10+
$params = Get-SqlPoolV3TestEnvironmentParameters $testSuffix
11+
1312

1413
try
1514
{
16-
$resourceGroupName = [Microsoft.Azure.Test.HttpRecorder.HttpMockServer]::GetVariable("resourceGroupName", $resourceGroupName)
17-
$workspaceName = [Microsoft.Azure.Test.HttpRecorder.HttpMockServer]::GetVariable("workspaceName", $workspaceName)
18-
$workspace = Get-AzSynapseWorkspace -resourceGroupName $resourceGroupName -Name $workspaceName
19-
$location = $workspace.Location
15+
$resourceGroupName = $params.rgname
16+
$workspaceName = $params.WorkspaceName
17+
$location = $params.location
18+
$sqlDatabaseName = $params.sqlDatabaseName
2019

2120
# Test to make sure the SqlDatabase doesn't exist
2221
Assert-False {Test-AzSynapseSqlDatabase -ResourceGroupName $resourceGroupName -WorkspaceName $workspaceName -Name $SqlDatabaseName}
@@ -67,7 +66,44 @@ function Test-SynapseSqlDatabase
6766
}
6867
finally
6968
{
70-
# cleanup the SQL pool that was used in case it still exists. This is a best effort task, we ignore failures here.
71-
Invoke-HandledCmdlet -Command {Remove-AzSynapseSqlDatabase -ResourceGroupName $resourceGroupName -WorkspaceName $workspaceName -Name $SqlDatabaseName -ErrorAction SilentlyContinue -Force} -IgnoreFailures
69+
# Cleanup
70+
Remove-SqlPoolV3TestEnvironment $testSuffix
7271
}
7372
}
73+
74+
<#
75+
.SYNOPSIS
76+
Creates the test environment needed to perform the tests
77+
#>
78+
function Create-SqlPoolV3TestEnvironment ($testSuffix)
79+
{
80+
$params = Get-SqlPoolV3TestEnvironmentParameters $testSuffix
81+
Create-TestEnvironmentWithParams $params $params.location
82+
}
83+
84+
<#
85+
.SYNOPSIS
86+
Gets the values of the parameters used at the tests
87+
#>
88+
function Get-SqlPoolV3TestEnvironmentParameters ($testSuffix)
89+
{
90+
return @{ rgname = "sql-cmdlet-test-rg" +$testSuffix;
91+
workspaceName = "sqlws" +$testSuffix;
92+
sqlDatabaseName = "sqldb" + $testSuffix;
93+
storageAccountName = "sqlstorage" + $testSuffix;
94+
fileSystemName = "sqlcmdletfs" + $testSuffix;
95+
loginName = "testlogin";
96+
pwd = "testp@ssMakingIt1007Longer";
97+
location = "eastus2euap";
98+
}
99+
}
100+
101+
<#
102+
.SYNOPSIS
103+
Removes the test environment that was needed to perform the tests
104+
#>
105+
function Remove-SqlPoolV3TestEnvironment ($testSuffix)
106+
{
107+
$params = Get-SqlPoolV3TestEnvironmentParameters $testSuffix
108+
Remove-AzResourceGroup -Name $params.rgname -Force
109+
}

src/Synapse/Synapse.Test/ScenarioTests/SqlPoolTests.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ function Get-SqlPoolTestEnvironmentParameters ($testSuffix)
207207
loginName = "testlogin";
208208
pwd = "testp@ssMakingIt1007Longer";
209209
perfLevel = 'DW200c';
210-
location = "westcentralus";
210+
location = "canadacentral";
211211
}
212212
}
213213

src/Synapse/Synapse.Test/ScenarioTests/SqlPoolV3Tests.cs

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -32,24 +32,9 @@ public SqlPoolV3Tests(Xunit.Abstractions.ITestOutputHelper output)
3232
[Trait(Category.AcceptanceType, Category.CheckIn)]
3333
public void TestSynapseSqlPoolV3()
3434
{
35-
string testResourceGroupName = SynapseTestBase.TestResourceGroupName;
36-
if (string.IsNullOrEmpty(testResourceGroupName))
37-
{
38-
testResourceGroupName = nameof(TestResourceGroupName);
39-
}
40-
41-
string testWorkspaceName = SynapseTestBase.TestWorkspaceName;
42-
if (string.IsNullOrEmpty(testWorkspaceName))
43-
{
44-
testWorkspaceName = nameof(TestWorkspaceName);
45-
}
46-
4735
SynapseTestBase.NewInstance.RunPsTest(
4836
_logger,
49-
string.Format(
50-
"Test-SynapseSqlPoolV3 -resourceGroupName '{0}' -workspaceName '{1}'",
51-
testResourceGroupName,
52-
testWorkspaceName));
37+
"Test-SynapseSqlPoolV3");
5338
}
5439
}
5540
}

src/Synapse/Synapse.Test/ScenarioTests/SqlPoolV3Tests.ps1

Lines changed: 58 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,18 @@ Tests Synapse SqlPool Lifecycle (Create, Update, Get, List, Delete).
44
#>
55
function Test-SynapseSqlPoolV3
66
{
7-
param
8-
(
9-
$resourceGroupName = (Get-ResourceGroupName),
10-
$workspaceName = (Get-SynapseWorkspaceName),
11-
$sqlPoolName = (Get-SynapseSqlPoolName),
12-
$sqlPoolPerformanceLevel = 'DW500f'
13-
)
7+
# Setup
8+
$testSuffix = getAssetName
9+
Create-SqlPoolV3TestEnvironment $testSuffix
10+
$params = Get-SqlPoolV3TestEnvironmentParameters $testSuffix
1411

1512
try
1613
{
17-
$resourceGroupName = [Microsoft.Azure.Test.HttpRecorder.HttpMockServer]::GetVariable("resourceGroupName", $resourceGroupName)
18-
$workspaceName = [Microsoft.Azure.Test.HttpRecorder.HttpMockServer]::GetVariable("workspaceName", $workspaceName)
19-
$workspace = Get-AzSynapseWorkspace -resourceGroupName $resourceGroupName -Name $workspaceName
20-
$location = $workspace.Location
14+
$resourceGroupName = $params.rgname
15+
$workspaceName = $params.WorkspaceName
16+
$location = $params.location
17+
$sqlPoolName = $params.sqlPoolName
18+
$sqlPoolPerformanceLevel = 'DW500f'
2119

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

86+
# Suspend SqlPool
87+
$sqlPoolSuspended = Suspend-AzSynapseSqlPool -ResourceGroupName $resourceGroupName -WorkspaceName $workspaceName -Name $sqlPoolName -Version 3
88+
89+
Assert-AreEqual "Paused" $sqlPoolSuspended.Status
90+
91+
# Resume SqlPool
92+
$sqlPoolResumed = Resume-AzSynapseSqlPool -ResourceGroupName $resourceGroupName -WorkspaceName $workspaceName -Name $sqlPoolName -Version 3
93+
94+
Assert-AreEqual "Online" $sqlPoolResumed.Status
95+
8896
# Delete SqlPool
8997
Assert-True {Remove-AzSynapseSqlPool -ResourceGroupName $resourceGroupName -WorkspaceName $workspaceName -Name $sqlPoolName -Version 3 -PassThru -Force} "Remove SqlPool failed."
9098

@@ -95,7 +103,44 @@ function Test-SynapseSqlPoolV3
95103
}
96104
finally
97105
{
98-
# cleanup the SQL pool that was used in case it still exists. This is a best effort task, we ignore failures here.
99-
Invoke-HandledCmdlet -Command {Remove-AzSynapseSqlPool -ResourceGroupName $resourceGroupName -WorkspaceName $workspaceName -Name $sqlPoolName -Version 3 -ErrorAction SilentlyContinue -Force} -IgnoreFailures
106+
# Cleanup
107+
Remove-SqlPoolV3TestEnvironment $testSuffix
100108
}
101109
}
110+
111+
<#
112+
.SYNOPSIS
113+
Creates the test environment needed to perform the tests
114+
#>
115+
function Create-SqlPoolV3TestEnvironment ($testSuffix)
116+
{
117+
$params = Get-SqlPoolV3TestEnvironmentParameters $testSuffix
118+
Create-TestEnvironmentWithParams $params $params.location
119+
}
120+
121+
<#
122+
.SYNOPSIS
123+
Gets the values of the parameters used at the tests
124+
#>
125+
function Get-SqlPoolV3TestEnvironmentParameters ($testSuffix)
126+
{
127+
return @{ rgname = "sql-cmdlet-test-rg" +$testSuffix;
128+
workspaceName = "sqlws" +$testSuffix;
129+
sqlPoolName = "sqlpoolv3" + $testSuffix;
130+
storageAccountName = "sqlstorage" + $testSuffix;
131+
fileSystemName = "sqlcmdletfs" + $testSuffix;
132+
loginName = "testlogin";
133+
pwd = "testp@ssMakingIt1007Longer";
134+
location = "eastus2euap";
135+
}
136+
}
137+
138+
<#
139+
.SYNOPSIS
140+
Removes the test environment that was needed to perform the tests
141+
#>
142+
function Remove-SqlPoolV3TestEnvironment ($testSuffix)
143+
{
144+
$params = Get-SqlPoolV3TestEnvironmentParameters $testSuffix
145+
Remove-AzResourceGroup -Name $params.rgname -Force
146+
}

src/Synapse/Synapse.Test/ScenarioTests/WorkspaceTests.ps1

Lines changed: 5 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -91,29 +91,6 @@ function Test-SynapseWorkspace
9191
}
9292
Assert-True {$found -eq 1} "Workspace created earlier is not found when listing all in resource group: $resourceGroupName."
9393

94-
# Unable to deserialize results in `Get-AzSynapseWorkspace`
95-
# TODO: Update test after SDK upgrade
96-
97-
# List all Workspaces in subscription
98-
99-
# [array]$workspacesInSubscription = Get-AzSynapseWorkspace
100-
# Assert-True {$workspacesInSubscription.Count -ge 1}
101-
# Assert-True {$workspacesInSubscription.Count -ge $workspacesInResourceGroup.Count}
102-
#
103-
# $found = 0
104-
# for ($i = 0; $i -lt $workspacesInSubscription.Count; $i++)
105-
# {
106-
# if ($workspacesInSubscription[$i].Name -eq $workspaceName)
107-
# {
108-
# $found = 1
109-
# Assert-AreEqual $location $workspacesInSubscription[$i].Location
110-
# Assert-AreEqual "Microsoft.Synapse/workspaces" $workspacesInSubscription[$i].Type
111-
# Assert-True {$workspacesInSubscription[$i].Id -like "*$resourceGroupName*"}
112-
# break
113-
# }
114-
# }
115-
# Assert-True {$found -eq 1} "Workspace created earlier is not found when listing all in subscription."
116-
11794
# Delete workspace
11895
Assert-True {Remove-AzSynapseWorkspace -ResourceGroupName $resourceGroupName -Name $workspaceName -PassThru -Force} "Remove Workspace failed."
11996

@@ -211,12 +188,12 @@ function Test-SynapseWorkspaceSecurity
211188
Assert-AreEqual $auditing.StorageAccountResourceId $account.id
212189

213190
# Enable SQL Data Security
214-
$dataSecurityEnable = Enable-AzSynapseSqlAdvancedDataSecurity -WorkspaceName $workspaceName -DoNotConfigureVulnerabilityAssessment
191+
$dataSecurityEnable = Enable-AzSynapseSqlAdvancedDataSecurity -ResourceGroupName $resourceGroupName -WorkspaceName $workspaceName -DoNotConfigureVulnerabilityAssessment
215192

216193
Assert-True {$dataSecurityEnable.IsEnabled}
217194

218195
# Get SQL Data Security Policy
219-
$dataSecurityGet = Get-AzSynapseSqlAdvancedDataSecurityPolicy -WorkspaceName $workspaceName
196+
$dataSecurityGet = Get-AzSynapseSqlAdvancedDataSecurityPolicy -ResourceGroupName $resourceGroupName -WorkspaceName $workspaceName
220197

221198
Assert-True {$dataSecurityGet.IsEnabled}
222199

@@ -251,7 +228,7 @@ function Test-SynapseWorkspaceSecurity
251228
Assert-AreEqual $threatProtectionGet.ThreatDetectionState Disabled
252229

253230
# Disable SQL Data Security
254-
$dataSecurityDisable = Disable-AzSynapseSqlAdvancedDataSecurity -WorkspaceName $workspaceName
231+
$dataSecurityDisable = Disable-AzSynapseSqlAdvancedDataSecurity -ResourceGroupName $resourceGroupName -WorkspaceName $workspaceName
255232

256233
Assert-False {$dataSecurityDisable.IsEnabled}
257234

@@ -470,7 +447,7 @@ function Get-WorkspaceEncryptionTestEnvironmentParameters ($testSuffix)
470447
fileSystemName = "wscmdletfs" + $testSuffix;
471448
loginName = "testlogin";
472449
pwd = "testp@ssMakingIt1007Longer";
473-
location = "eastus2euap";
450+
location = "canadacentral";
474451
encryptionKeyIdentifier = "<your-encryptionKeyIdentifier>";
475452
}
476453
}
@@ -539,7 +516,7 @@ function Get-WorkspaceTestEnvironmentParameters ($testSuffix)
539516
fileSystemName = "wscmdletfs" + $testSuffix;
540517
loginName = "testlogin";
541518
pwd = "testp@ssMakingIt1007Longer";
542-
location = "eastus2euap";
519+
location = "canadacentral";
543520
}
544521
}
545522

0 commit comments

Comments
 (0)