Skip to content

Commit 33040c6

Browse files
authored
[Synapse] Add support for restoring SQL pool from dropped SQL pool (#15944)
* add support for restore sql pool from dropped sql pool * update change log
1 parent 2c5f062 commit 33040c6

File tree

10 files changed

+6073
-12
lines changed

10 files changed

+6073
-12
lines changed

src/Synapse/Synapse.Test/ScenarioTests/SqlPoolBackupTests.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,5 +59,14 @@ public void TestRestoreFromBackup(){
5959
_logger,
6060
"Test-RestoreFromBackup");
6161
}
62+
63+
[Fact]
64+
[Trait(Category.AcceptanceType, Category.CheckIn)]
65+
public void TestRestoreFromDroppedSqlPool()
66+
{
67+
NewInstance.RunPsTest(
68+
_logger,
69+
"Test-RestoreFromDroppedSqlPool");
70+
}
6271
}
6372
}

src/Synapse/Synapse.Test/ScenarioTests/SqlPoolBackupTests.ps1

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -225,10 +225,9 @@ function Test-RestoreFromBackup
225225
{
226226
# Transform Synapse SQL pool resource ID to SQL database ID because
227227
# currently the command only accepts the SQL databse ID
228-
$pool = Get-AzSynapseSqlPool -ResourceGroupName $params.rgname -WorkspaceName $params.workspaceName -Name $params.sqlPoolName
228+
$pool = Get-AzSynapseSqlPoolGeoBackup -ResourceGroupName $params.rgname -WorkspaceName $params.workspaceName -Name $params.sqlPoolName
229229
$databaseId = $pool.Id -replace "Microsoft.Synapse", "Microsoft.Sql" `
230230
-replace "workspaces", "servers" `
231-
-replace "sqlPools", "databases"
232231

233232
# Restore to same workspace with source SQL database
234233
$restoredPool = Restore-AzSynapseSqlPool -FromBackup -TargetSqlPoolName $params.restoredSqlPoolName -ResourceGroupName $params.rgname `
@@ -245,6 +244,43 @@ function Test-RestoreFromBackup
245244
}
246245
}
247246

247+
<#
248+
.SYNOPSIS
249+
Tests for restoring from dropped sql pool
250+
#>
251+
function Test-RestoreFromDroppedSqlPool
252+
{
253+
# Setup
254+
$testSuffix = getAssetName
255+
Create-SqlPoolBackupTestEnvironment $testSuffix
256+
$params = Get-SqlPoolBackupTestEnvironmentParameters $testSuffix
257+
258+
try
259+
{
260+
Remove-AzSynapseSqlPool -ResourceGroupName $params.rgname -WorkspaceName $params.workspaceName -Name $params.sqlPoolName -Force
261+
262+
Wait-Seconds 300
263+
264+
$pool = Get-AzSynapseDroppedSqlPool -ResourceGroupName $params.rgname -WorkspaceName $params.workspaceName -Name $params.sqlPoolName
265+
# Transform Synapse Dropped SQL pool resource ID to SQL pool resource ID
266+
$poolId = $pool.Id.Split(",")[0]
267+
$poolId = $poolId -replace "restorableDroppedSqlPools", "sqlPools"
268+
269+
# Restore to same workspace with source SQL database
270+
$restoredPool = Restore-AzSynapseSqlPool -FromDroppedSqlPool -TargetSqlPoolName $params.restoredSqlPoolName -ResourceGroupName $params.rgname `
271+
-WorkspaceName $params.workspaceName -ResourceId $poolId -DeletionDate $pool.DeletionDate
272+
273+
Assert-AreEqual $params.rgname $restoredPool.ResourceGroupName
274+
Assert-AreEqual $params.workspaceName $restoredPool.WorkspaceName
275+
Assert-AreEqual $params.restoredSqlPoolName $restoredPool.SqlPoolName
276+
}
277+
finally
278+
{
279+
# Cleanup
280+
Remove-SqlPoolBackupTestEnvironment $testSuffix
281+
}
282+
}
283+
248284
<#
249285
.SYNOPSIS
250286
Creates the test environment needed to perform the tests

0 commit comments

Comments
 (0)