Skip to content

Commit 67b66d3

Browse files
Merge pull request Azure#8493 from lixiachena/master
Geo-Restore Instance database cmdlet
2 parents 22b4253 + ed685c1 commit 67b66d3

19 files changed

+4479
-22
lines changed

src/Sql/Sql.Test/ScenarioTests/ManagedDatabaseCrudScenarioTests.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,5 +63,19 @@ public void TestRestoreManagedDatabase()
6363
{
6464
RunPowerShellTest("Test-RestoreManagedDatabase");
6565
}
66+
67+
[Fact]
68+
[Trait(Category.AcceptanceType, Category.CheckIn)]
69+
public void TestGetManagedDatabaseGeoBackup()
70+
{
71+
RunPowerShellTest("Test-GetManagedDatabaseGeoBackup");
72+
}
73+
74+
[Fact]
75+
[Trait(Category.AcceptanceType, Category.CheckIn)]
76+
public void TestGeoRestoreManagedDatabase()
77+
{
78+
RunPowerShellTest("Test-GeoRestoreManagedDatabase");
79+
}
6680
}
6781
}

src/Sql/Sql.Test/ScenarioTests/ManagedDatabaseCrudScenarioTests.ps1

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,4 +240,92 @@ function Test-RestoreManagedDatabase
240240
{
241241
Remove-ResourceGroupForTest $rg
242242
}
243+
}
244+
245+
<#
246+
.SYNOPSIS
247+
Tests Getting a managed database geo-redundant backups
248+
#>
249+
function Test-GetManagedDatabaseGeoBackup
250+
{
251+
# Setup
252+
$rgName = "restore-rg"
253+
$managedInstanceName = "testbrinstance"
254+
$managedDatabaseName = "sourcedb"
255+
256+
# Test Get using all parameters
257+
$gdb1 = Get-AzSqlInstanceDatabaseGeoBackup -ResourceGroupName $rgName -InstanceName $managedInstanceName -Name $managedDatabaseName
258+
Assert-NotNull $gdb1
259+
Assert-AreEqual $managedDatabaseName $gdb1.Name
260+
261+
# Test Get using ResourceGroupName and InstanceName
262+
$all = Get-AzSqlInstanceDatabaseGeoBackup -ResourceGroupName $rgName -InstanceName $managedInstanceName
263+
264+
Assert-NotNull $all
265+
if($all.Count -le 1)
266+
{
267+
throw "Should get more than 1 backup geo-redundant backups"
268+
}
269+
}
270+
271+
<#
272+
.SYNOPSIS
273+
Tests geo-restoring a managed database
274+
#>
275+
function Test-GeoRestoreManagedDatabase
276+
{
277+
# Setup
278+
$rgName = "restore-rg"
279+
$managedInstanceName = "testbrinstance"
280+
$managedDatabaseName = "sourcedb"
281+
282+
$targetRgName = "restore-rg"
283+
$targetInstanceName = "testbrinstance"
284+
try
285+
{
286+
$sourceDbGeoBackup = Get-AzSqlInstanceDatabaseGeoBackup -ResourceGroupName $rgName -InstanceName $managedInstanceName -Name $managedDatabaseName
287+
288+
Assert-NotNull $sourceDbGeoBackup
289+
290+
$targetManagedDatabaseName1 = Get-ManagedDatabaseName
291+
$targetManagedDatabaseName2 = Get-ManagedDatabaseName
292+
$targetManagedDatabaseName3 = Get-ManagedDatabaseName
293+
$targetManagedDatabaseName4 = Get-ManagedDatabaseName
294+
295+
# geo-restore managed database using resourceID
296+
$restoredDb1 = Restore-AzSqlInstanceDatabase -FromGeoBackup -ResourceId $sourceDbGeoBackup.RecoverableDatabaseId -TargetInstanceDatabaseName $targetManagedDatabaseName1 -TargetInstanceName $targetInstanceName -TargetResourceGroupName $targetRgName
297+
Assert-NotNull $restoredDb1
298+
Assert-AreEqual $restoredDb1.Name $targetManagedDatabaseName1
299+
Assert-AreEqual $restoredDb1.ResourceGroupName $targetRgName
300+
Assert-AreEqual $restoredDb1.ManagedInstanceName $targetInstanceName
301+
302+
# geo-restore managed database using name, instance and resource group name
303+
$restoredDb2 = Restore-AzSqlInstanceDatabase -FromGeoBackup -ResourceGroupName $rgName -InstanceName $managedInstanceName -Name $managedDatabaseName -TargetInstanceDatabaseName $targetManagedDatabaseName2 -TargetInstanceName $targetInstanceName -TargetResourceGroupName $targetRgName
304+
Assert-NotNull $restoredDb2
305+
Assert-AreEqual $restoredDb2.Name $targetManagedDatabaseName2
306+
Assert-AreEqual $restoredDb2.ResourceGroupName $targetRgName
307+
Assert-AreEqual $restoredDb2.ManagedInstanceName $targetInstanceName
308+
309+
# geo-restore managed database using GeoBackupObject
310+
$restoredDb3 = Restore-AzSqlInstanceDatabase -FromGeoBackup -GeoBackupObject $sourceDbGeoBackup -TargetInstanceDatabaseName $targetManagedDatabaseName3 -TargetInstanceName $targetInstanceName -TargetResourceGroupName $targetRgName
311+
Assert-NotNull $restoredDb3
312+
Assert-AreEqual $restoredDb3.Name $targetManagedDatabaseName3
313+
Assert-AreEqual $restoredDb3.ResourceGroupName $targetRgName
314+
Assert-AreEqual $restoredDb3.ManagedInstanceName $targetInstanceName
315+
316+
# geo-restore managed database using piping
317+
$restoredDb4 = $sourceDbGeoBackup | Restore-AzSqlInstanceDatabase -FromGeoBackup -TargetInstanceDatabaseName $targetManagedDatabaseName4 -TargetInstanceName $targetInstanceName -TargetResourceGroupName $targetRgName
318+
Assert-NotNull $restoredDb4
319+
Assert-AreEqual $restoredDb4.Name $targetManagedDatabaseName4
320+
Assert-AreEqual $restoredDb4.ResourceGroupName $targetRgName
321+
Assert-AreEqual $restoredDb4.ManagedInstanceName $targetInstanceName
322+
323+
}
324+
finally
325+
{
326+
$restoredDb1 | Remove-AzSqlInstanceDatabase -Force
327+
$restoredDb2 | Remove-AzSqlInstanceDatabase -Force
328+
$restoredDb3 | Remove-AzSqlInstanceDatabase -Force
329+
$restoredDb4 | Remove-AzSqlInstanceDatabase -Force
330+
}
243331
}

0 commit comments

Comments
 (0)