Skip to content

Commit 7838b87

Browse files
committed
updated tests; renamed parameters for consistency; adjusted backups API to be more user-friendly; added session recording for LTR MI Policy
1 parent 9b0f2b5 commit 7838b87

11 files changed

+920
-100
lines changed

src/Sql/Sql.Test/ScenarioTests/ManagedDatabaseBackupTests.ps1

Lines changed: 43 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -181,21 +181,19 @@ function Test-ManagedDeletedDatabaseShortTermRetentionPolicy
181181
function Test-ManagedInstanceLongTermRetentionPolicy($location = "southeastasia")
182182
{
183183
# Setup
184-
$resourceGroup = Create-ResourceGroupForTest
185-
$resourceGroupName = $resourceGroup.ResourceGroupName
186-
$managedInstance = Create-ManagedInstanceForTest
187-
$managedInstanceName = $managedInstance.ManagedInstanceName
184+
$resourceGroupName = "cl_stage_sea_cv"
185+
$managedInstanceName = "seageodr-gen5-gp"
188186
$weeklyRetention = "P1W"
189187
$zeroRetention = "PT0S"
190188

191189
try
192190
{
193191
# create test database
194-
$databaseName = "test_ltr_policy_database"
195-
$database = New-AzSqlInstanceDatabase -ResourceGroupName $resourceGroupName -ManagedInstanceName $managedInstanceName -DatabaseName $databaseName
192+
$databaseName = "test-$(New-Guid)"
193+
$database = New-AzSqlInstanceDatabase -ResourceGroupName $resourceGroupName -InstanceName $managedInstanceName -Name $databaseName
196194

197-
Set-AzSqlInstanceDatabaseBackupLongTermRetentionPolicy -ResourceGroupName $resourceGroupName -ManagedInstanceName $managedInstanceName -DatabaseName $databaseName -WeeklyRetention $weeklyRetention
198-
$policy = Get-AzSqlInstanceDatabaseBackupLongTermRetentionPolicy -ResourceGroup $rg.ResourceGroupName -ServerName $server.ServerName -DatabaseName $databaseName
195+
Set-AzSqlInstanceDatabaseBackupLongTermRetentionPolicy -ResourceGroupName $resourceGroupName -InstanceName $managedInstanceName -DatabaseName $databaseName -WeeklyRetention $weeklyRetention
196+
$policy = Get-AzSqlInstanceDatabaseBackupLongTermRetentionPolicy -ResourceGroup $resourceGroupName -InstanceName $managedInstanceName -DatabaseName $databaseName
199197
Assert-AreEqual $policy.WeeklyRetention $weeklyRetention
200198
Assert-AreEqual $policy.MonthlyRetention $zeroRetention
201199
Assert-AreEqual $policy.YearlyRetention $zeroRetention
@@ -218,53 +216,56 @@ function Test-ManagedInstanceLongTermRetentionBackup
218216
# Set the weekly retention on the database so that the first backup gets picked up, for example:
219217
# Set-AzSqlInstanceDatabaseBackupLongTermRetentionPolicy -ResourceGroup $resourceGroup -ServerName $serverName -DatabaseName $databaseName -WeeklyRetention P1W
220218
# Wait about 18 hours until it gets properly copied and you see the backup when run get backups, for example:
221-
# Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -ManagedinstanceName $managedInstanceName -DatabaeName $databaseName
219+
# Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -InstanceName $managedInstanceName -DatabaeName $databaseName
222220
$resourceGroup = "cl_stage_sea_cv"
223221
$locationName = "southeastasia"
224222
$managedInstanceName = "seageodr-gen5-gp"
225-
$databaseName = "test"
226-
$weeklyRetention1 = "P1W"
227-
$weeklyRetention2 = "P2W"
228-
$restoredDatabase = "ps_test_restore"
229-
$databaseWithRemovableBackup = "target1";
223+
$databaseName = "target1"
224+
$databaseWithRemovableBackup = "sqlcrudtest-8305";
230225

231226
# Basic Get Tests
232227
$backups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName
233228
Assert-AreNotEqual $backups.Count 0
234-
$backups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -ManagedInstanceName $managedInstanceName
229+
$backups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -InstanceName $managedInstanceName
235230
Assert-AreNotEqual $backups.Count 0
236-
$backups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -ManagedInstanceName $managedInstanceName -DatabaseName $databaseName
231+
$backups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -InstanceName $managedInstanceName -DatabaseName $databaseName
237232
Assert-AreNotEqual $backups.Count 0
238-
$backups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -ManagedInstanceName $managedInstanceName -DatabaseName $databaseName -BackupName $backups[0].BackupName
233+
$backups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -InstanceName $managedInstanceName -DatabaseName $databaseName -BackupName $backups[0].BackupName
239234
Assert-AreNotEqual $backups.Count 0
240235

241236
# Test Get Piping
242-
$backups = Get-AzSqlInstanceDatabase -ResourceGroup $resourceGroup -ManagedInstanceName $managedInstanceName -DatabaseName $databaseName | Get-AzSqlInstanceDatabaseLongTermRetentionBackup
237+
$backups = Get-AzSqlInstanceDatabase -ResourceGroup $resourceGroup -InstanceName $managedInstanceName -Name $databaseName | Get-AzSqlInstanceDatabaseLongTermRetentionBackup
243238
Assert-AreNotEqual $backups.Count 0
244-
$backups = Get-AzSqlInstanceDatabase -ResourceGroup $resourceGroup -ManagedInstanceName $managedInstanceName -DatabaseName $databaseName | Get-AzSqlInstanceDatabaseLongTermRetentionBackup -BackupName $backups[0].BackupName
239+
$backups = Get-AzSqlInstanceDatabase -ResourceGroup $resourceGroup -InstanceName $managedInstanceName -Name $databaseName | Get-AzSqlInstanceDatabaseLongTermRetentionBackup -BackupName $backups[0].BackupName
245240
Assert-AreNotEqual $backups.Count 0
246241

247242
# Test Get Optional Parameters
248-
$backups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -ManagedInstanceName $managedInstanceName -DatabaseName $databaseName -OnlyLatestPerDatabase -DatabaseState All
243+
$backups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -InstanceName $managedInstanceName -DatabaseName $databaseName -OnlyLatestPerDatabase
244+
Assert-AreNotEqual $backups.Count 0
245+
$backups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -InstanceName $managedInstanceName -OnlyLatestPerDatabase -DatabaseState All
249246
Assert-AreNotEqual $backups.Count 0
250247

251248
# Test Get Piping with Optional Parameters
252-
$backups = Get-AzSqlInstanceDatabase -ResourceGroup $resourceGroup -ManagedInstanceName $managedInstanceName -DatabaseName $databaseName | Get-AzSqlInstanceDatabaseLongTermRetentionBackup -OnlyLatestPerDatabase
249+
$backups = Get-AzSqlInstanceDatabase -ResourceGroup $resourceGroup -InstanceName $managedInstanceName -Name $databaseName | Get-AzSqlInstanceDatabaseLongTermRetentionBackup -OnlyLatestPerDatabase
253250
Assert-AreNotEqual $backups.Count 0
254251

255252
# Restore Test
256253
$backups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName
257-
$db = Restore-AzSqlInstanceDatabase -FromLongTermRetentionBackup -ResourceId $backups[0].ResourceId -ResourceGroupName $resourceGroup -ManagedInstanceName $managedInstanceName -TargetDatabaseName $restoredDatabase
258-
Assert-AreEqual $db.DatabaseName $restoredDatabase
259-
260-
# Test Remove with Piping
261-
Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -ManagedInstanceName $serverName -DatabaseName $databaseWithRemovableBackup -BackupName $backups[0].BackupName | Remove-AzSqlInstanceDatabaseLongTermRetentionBackup
262-
$backups = Get-AzSqlInstanceDatabase -ResourceGroup $resourceGroup -ManagedInstanceName $managedInstanceName -DatabaseName $databaseWithRemovableBackup | Get-AzSqlInstanceDatabaseLongTermRetentionBackup -OnlyLatestPerDatabase
263-
Assert-AreEqual $backups.Count 0
254+
$restoredDatabase = "ps-test-restore-$(New-Guid)"
255+
$db = Restore-AzSqlInstanceDatabase -FromLongTermRetentionBackup -ResourceId $backups[0].ResourceId -TargetResourceGroupName $resourceGroup -TargetInstanceName $managedInstanceName -TargetInstanceDatabaseName $restoredDatabase
256+
Assert-AreEqual $db.Name $restoredDatabase
257+
258+
# Test Remove
259+
$backups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -InstanceName $managedInstanceName -DatabaseName $databaseWithRemovableBackup
260+
$initialBackups = $backups.Count
261+
Remove-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -InstanceName $managedInstanceName -DatabaseName $databaseWithRemovableBackup -BackupName $backups[0].BackupName -Force
262+
$backups = Get-AzSqlInstanceDatabase -ResourceGroup $resourceGroup -InstanceName $managedInstanceName -Name $databaseWithRemovableBackup | Get-AzSqlInstanceDatabaseLongTermRetentionBackup
263+
$expectedBackups = $initialBackups-1
264+
Assert-AreEqual $expectedBackups $backups.Count
264265

265266
# drop the restored db
266-
Remove-AzSqlInstanceDatabase -ResourceGroup $resourceGroup -ManagedInstanceName $managedInstanceName -DatabaseName $restoredDatabase
267-
}
267+
Remove-AzSqlInstanceDatabase -ResourceGroupName $resourceGroup -InstanceName $managedInstanceName -Name $restoredDatabase -Force
268+
}
268269

269270
<#
270271
.SYNOPSIS
@@ -282,42 +283,40 @@ function Test-ManagedInstanceLongTermRetentionResourceGroupBasedBackup
282283
$locationName = "southeastasia"
283284
$managedInstanceName = "seageodr-gen5-gp"
284285
$databaseName = "test"
285-
$restoredDatabase = "ps_test_restore_rg"
286286
$databaseWithRemovableBackup = "test";
287287

288288
# Basic Get Tests
289289
$backups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -ResourceGroupName $resourceGroup
290290
Assert-AreNotEqual $backups.Count 0
291-
$backups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -ManagedInstanceName $managedInstanceName -ResourceGroupName $resourceGroup
291+
$backups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -InstanceName $managedInstanceName -ResourceGroupName $resourceGroup
292292
Assert-AreNotEqual $backups.Count 0
293-
$backups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -ManagedInstanceName $managedInstanceName -DatabaseName $databaseName -ResourceGroupName $resourceGroup
293+
$backups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -InstanceName $managedInstanceName -DatabaseName $databaseName -ResourceGroupName $resourceGroup
294294
Assert-AreNotEqual $backups.Count 0
295-
$backups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -ManagedInstanceName $managedInstanceName -DatabaseName $databaseName -BackupName $backups[0].BackupName -ResourceGroupName $resourceGroup
295+
$backups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -InstanceName $managedInstanceName -DatabaseName $databaseName -BackupName $backups[0].BackupName -ResourceGroupName $resourceGroup
296296
Assert-AreNotEqual $backups.Count 0
297297

298298
# Test Get Piping
299-
$backups = Get-AzSqlInstanceDatabase -ResourceGroup $resourceGroup -ManagedInstanceName $managedInstanceName -DatabaseName $databaseName | Get-AzSqlInstanceDatabaseLongTermRetentionBackup
299+
$backups = Get-AzSqlInstanceDatabase -ResourceGroup $resourceGroup -InstanceName $managedInstanceName -Name $databaseName | Get-AzSqlInstanceDatabaseLongTermRetentionBackup
300300
Assert-AreNotEqual $backups.Count 0
301-
$backups = Get-AzSqlInstanceDatabase -ResourceGroup $resourceGroup -ManagedInstanceName $managedInstanceName -DatabaseName $databaseName | Get-AzSqlInstanceDatabaseLongTermRetentionBackup -BackupName $backups[0].BackupName
301+
$backups = Get-AzSqlInstanceDatabase -ResourceGroup $resourceGroup -InstanceName $managedInstanceName -Name $databaseName | Get-AzSqlInstanceDatabaseLongTermRetentionBackup -BackupName $backups[0].BackupName
302302
Assert-AreNotEqual $backups.Count 0
303303

304304
# Test Get Optional Parameters
305-
$backups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -ManagedInstanceName $managedInstanceName -DatabaseName $databaseName -ResourceGroupName $resourceGroup -OnlyLatestPerDatabase -DatabaseState All
305+
$backups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -InstanceName $managedInstanceName -DatabaseName $databaseName -ResourceGroupName $resourceGroup -OnlyLatestPerDatabase
306+
$backups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -InstanceName $managedInstanceName -ResourceGroupName $resourceGroup -DatabaseState All
306307
Assert-AreNotEqual $backups.Count 0
307308

308309
# Test Get Piping with Optional Parameters
309-
$backups = Get-AzSqlInstanceDatabase -ResourceGroup $resourceGroup -ManagedInstanceName $managedInstanceName -DatabaseName $databaseName | Get-AzSqlInstanceDatabaseLongTermRetentionBackup -OnlyLatestPerDatabase
310+
$backups = Get-AzSqlInstanceDatabase -ResourceGroup $resourceGroup -InstanceName $managedInstanceName -Name $databaseName | Get-AzSqlInstanceDatabaseLongTermRetentionBackup -OnlyLatestPerDatabase
310311
Assert-AreNotEqual $backups.Count 0
311312

312313
# Restore Test
314+
$restoredDatabase = "ps-test-rest-rg-$(New-Guid)"
313315
$backups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -ResourceGroupName $resourceGroup
314-
$db = Restore-AzSqlInstanceDatabase -FromLongTermRetentionBackup -ResourceId $backups[0].ResourceId -ResourceGroupName $resourceGroup -ManagedInstanceName $managedInstanceName -TargetDatabaseName $restoredDatabase
315-
Assert-AreEqual $db.DatabaseName $restoredDatabase
316-
317-
# Test Remove with Piping
318-
Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $locationName -ManagedInstanceName $managedInstanceName -DatabaseName $databaseWithRemovableBackup -BackupName $backups[0].BackupName -ResourceGroupName $resourceGroup | Remove-AzSqlInstanceDatabaseLongTermRetentionBackup -Force
316+
$db = Restore-AzSqlInstanceDatabase -FromLongTermRetentionBackup -ResourceId $backups[0].ResourceId -ResourceGroupName $resourceGroup -InstanceName $managedInstanceName -TargetDatabaseName $restoredDatabase
317+
Assert-AreEqual $db.Name $restoredDatabase
319318

320319
# drop the restored db
321-
Remove-AzSqlInstanceDatabase -ResourceGroup $resourceGroup -ManagedInstanceName $managedInstanceName -DatabaseName $restoredDatabase -Force
320+
Remove-AzSqlInstanceDatabase -ResourceGroupName $resourceGroup -InstanceName $managedInstanceName -Name $restoredDatabase -Force
322321
}
323322

0 commit comments

Comments
 (0)