|
12 | 12 | # limitations under the License.
|
13 | 13 | # ----------------------------------------------------------------------------------
|
14 | 14 |
|
15 |
| -# Snapshots require a Premium app to exist for several hours. |
16 |
| -# Deploy a Premium app and update these global variables to re-record the snapshots tests. |
17 |
| -$snapshotRgName = 'web2' |
18 |
| -$snapshotAppName = 'nkprem' |
19 |
| -$snapshotAppSlot = 'staging' |
20 |
| - |
21 | 15 | # !!! Storage keys and SAS URIs will be stored in the backup test recordings !!!
|
22 | 16 | # To find them, open the json files in a text editor and search for "listkeys"
|
23 | 17 | # to find the storage keys. Search for StorageAccountUrl to find the SAS URIs.
|
@@ -335,48 +329,134 @@ function Test-EditAndGetWebAppBackupConfigurationPiping
|
335 | 329 |
|
336 | 330 | function Test-GetWebAppSnapshot
|
337 | 331 | {
|
338 |
| - # Test named parameters |
339 |
| - $snapshots = Get-AzWebAppSnapshot -ResourceGroupName $snapshotRgName -Name $snapshotAppName -UseDisasterRecovery |
340 |
| - Assert-True { $snapshots.Length -gt 0 } |
341 |
| - Assert-NotNull $snapshots[0] |
342 |
| - Assert-NotNull $snapshots[0].SnapshotTime |
343 |
| - Assert-AreEqual 'Production' $snapshots[0].Slot |
344 |
| - |
345 |
| - # Test positional parameters |
346 |
| - $snapshots = Get-AzWebAppSnapshot $snapshotRgName $snapshotAppName |
347 |
| - Assert-True { $snapshots.Length -gt 0 } |
348 |
| - Assert-NotNull $snapshots[0] |
349 |
| - Assert-NotNull $snapshots[0].SnapshotTime |
350 |
| - Assert-AreEqual 'Production' $snapshots[0].Slot |
351 |
| - |
352 |
| - # Test snapshots for slots |
353 |
| - $snapshots = Get-AzWebAppSnapshot -ResourceGroupName $snapshotRgName -Name $snapshotAppName -Slot $snapshotAppSlot |
354 |
| - Assert-True { $snapshots.Length -gt 0 } |
355 |
| - Assert-NotNull $snapshots[0] |
356 |
| - Assert-NotNull $snapshots[0].SnapshotTime |
357 |
| - Assert-AreEqual $snapshotAppSlot $snapshots[0].Slot |
358 |
| - |
359 |
| - # Test piping |
360 |
| - $app = Get-AzWebApp -ResourceGroupName $snapshotRgName -Name $snapshotAppName |
361 |
| - $snapshots = $app | Get-AzWebAppSnapshot |
362 |
| - Assert-True { $snapshots.Length -gt 0 } |
363 |
| - Assert-NotNull $snapshots[0] |
364 |
| - Assert-NotNull $snapshots[0].SnapshotTime |
365 |
| - Assert-AreEqual 'Production' $snapshots[0].Slot |
| 332 | + # Setup |
| 333 | + $rgname = Get-ResourceGroupName |
| 334 | + $wname = Get-WebsiteName |
| 335 | + $slotName = "staging" |
| 336 | + $location = Get-WebLocation |
| 337 | + $whpName = Get-WebHostPlanName |
| 338 | + $tier = "Premium" |
| 339 | + $isRecordMode = ((Get-WebsitesTestMode) -ne 'Playback') |
| 340 | + |
| 341 | + try |
| 342 | + { |
| 343 | + New-AzResourceGroup -Name $rgname -Location $location |
| 344 | + New-AzAppServicePlan -ResourceGroupName $rgname -Name $whpName -Location $location -Tier $tier |
| 345 | + $app = New-AzWebApp -ResourceGroupName $rgname -Name $wname -Location $location -AppServicePlan $whpName |
| 346 | + New-AzWebAppSlot -ResourceGroupName $rgname -Name $wname -Slot $slotName |
| 347 | + |
| 348 | + # Wait for at least 1 snapshot to exist |
| 349 | + while ($snap -eq $null) |
| 350 | + { |
| 351 | + $snap = Get-AzWebAppSnapshot $app |
| 352 | + if ($isRecordMode) |
| 353 | + { |
| 354 | + Start-Sleep -Seconds 60 |
| 355 | + } |
| 356 | + } |
| 357 | + |
| 358 | + # Test named parameters |
| 359 | + $snapshots = Get-AzWebAppSnapshot -ResourceGroupName $rgname -Name $wname -UseDisasterRecovery |
| 360 | + Assert-True { $snapshots.Length -gt 0 } |
| 361 | + Assert-NotNull $snapshots[0] |
| 362 | + Assert-NotNull $snapshots[0].SnapshotTime |
| 363 | + Assert-AreEqual 'Production' $snapshots[0].Slot |
| 364 | + |
| 365 | + # Test positional parameters |
| 366 | + $snapshots = Get-AzWebAppSnapshot $rgname $wname |
| 367 | + Assert-True { $snapshots.Length -gt 0 } |
| 368 | + Assert-NotNull $snapshots[0] |
| 369 | + Assert-NotNull $snapshots[0].SnapshotTime |
| 370 | + Assert-AreEqual 'Production' $snapshots[0].Slot |
| 371 | + |
| 372 | + # Test snapshots for slots |
| 373 | + $snapshots = Get-AzWebAppSnapshot -ResourceGroupName $rgname -Name $wname -Slot $slotName |
| 374 | + Assert-True { $snapshots.Length -gt 0 } |
| 375 | + Assert-NotNull $snapshots[0] |
| 376 | + Assert-NotNull $snapshots[0].SnapshotTime |
| 377 | + Assert-AreEqual $slotName $snapshots[0].Slot |
| 378 | + |
| 379 | + # Test piping |
| 380 | + $app = Get-AzWebApp -ResourceGroupName $rgname -Name $wname |
| 381 | + $snapshots = $app | Get-AzWebAppSnapshot |
| 382 | + Assert-True { $snapshots.Length -gt 0 } |
| 383 | + Assert-NotNull $snapshots[0] |
| 384 | + Assert-NotNull $snapshots[0].SnapshotTime |
| 385 | + Assert-AreEqual 'Production' $snapshots[0].Slot |
| 386 | + |
| 387 | + } |
| 388 | + finally |
| 389 | + { |
| 390 | + # Cleanup |
| 391 | + Remove-AzWebAppSlot -ResourceGroupName $rgname -Name $wname -Slot $slotName -Force |
| 392 | + Remove-AzWebApp -ResourceGroupName $rgname -Name $wname -Force |
| 393 | + Remove-AzAppServicePlan -ResourceGroupName $rgname -Name $whpName -Force |
| 394 | + Remove-AzResourceGroup -Name $rgname -Force |
| 395 | + } |
366 | 396 | }
|
367 | 397 |
|
368 | 398 | function Test-RestoreWebAppSnapshot
|
369 | 399 | {
|
370 |
| - # Test overwrite |
371 |
| - $snapshot = (Get-AzWebAppSnapshot $snapshotRgName $snapshotAppName)[0] |
372 |
| - Restore-AzWebAppSnapshot -ResourceGroupName $snapshotRgName -Name $snapshotAppName -InputObject $snapshot -Force -RecoverConfiguration |
| 400 | + # Setup |
| 401 | + $rgname = Get-ResourceGroupName |
| 402 | + $wname = Get-WebsiteName |
| 403 | + $slotName = "staging" |
| 404 | + $location = Get-WebLocation |
| 405 | + $whpName = Get-WebHostPlanName |
| 406 | + $tier = "Premium" |
| 407 | + $isRecordMode = ((Get-WebsitesTestMode) -ne 'Playback') |
373 | 408 |
|
374 |
| - # Test restore to target slot |
375 |
| - Restore-AzWebAppSnapshot $snapshotRgName $snapshotAppName $snapshotAppSlot $snapshot -RecoverConfiguration -UseDisasterRecovery -Force |
| 409 | + try |
| 410 | + { |
| 411 | + New-AzResourceGroup -Name $rgname -Location $location |
| 412 | + New-AzAppServicePlan -ResourceGroupName $rgname -Name $whpName -Location $location -Tier $tier |
| 413 | + $app = New-AzWebApp -ResourceGroupName $rgname -Name $wname -Location $location -AppServicePlan $whpName |
| 414 | + New-AzWebAppSlot -ResourceGroupName $rgname -Name $wname -Slot $slotName |
376 | 415 |
|
377 |
| - # Test piping and background job |
378 |
| - $job = $snapshot | Restore-AzWebAppSnapshot -Force -AsJob |
379 |
| - $job | Wait-Job |
| 416 | + # Wait for at least 1 snapshot to exist |
| 417 | + while ($snap -eq $null) |
| 418 | + { |
| 419 | + $snap = Get-AzWebAppSnapshot $app |
| 420 | + if ($isRecordMode) |
| 421 | + { |
| 422 | + Start-Sleep -Seconds 60 |
| 423 | + } |
| 424 | + } |
| 425 | + |
| 426 | + # Test overwrite |
| 427 | + $snapshot = (Get-AzWebAppSnapshot $rgname $wname)[0] |
| 428 | + Restore-AzWebAppSnapshot -ResourceGroupName $rgname -Name $wname -InputObject $snapshot -Force -RecoverConfiguration |
| 429 | + |
| 430 | + if ($isRecordMode) |
| 431 | + { |
| 432 | + Start-Sleep -Seconds 600 |
| 433 | + } |
| 434 | + |
| 435 | + # Test restore to target slot |
| 436 | + Restore-AzWebAppSnapshot $rgname $wname $slotName $snapshot -RecoverConfiguration -UseDisasterRecovery -Force |
| 437 | + |
| 438 | + if ($isRecordMode) |
| 439 | + { |
| 440 | + Start-Sleep -Seconds 600 |
| 441 | + } |
| 442 | + |
| 443 | + # Test piping and background job |
| 444 | + $job = $snapshot | Restore-AzWebAppSnapshot -Force -AsJob |
| 445 | + $job | Wait-Job |
| 446 | + |
| 447 | + if ($isRecordMode) |
| 448 | + { |
| 449 | + Start-Sleep -Seconds 600 |
| 450 | + } |
| 451 | + } |
| 452 | + finally |
| 453 | + { |
| 454 | + # Cleanup |
| 455 | + Remove-AzWebAppSlot -ResourceGroupName $rgname -Name $wname -Slot $slotName -Force |
| 456 | + Remove-AzWebApp -ResourceGroupName $rgname -Name $wname -Force |
| 457 | + Remove-AzAppServicePlan -ResourceGroupName $rgname -Name $whpName -Force |
| 458 | + Remove-AzResourceGroup -Name $rgname -Force |
| 459 | + } |
380 | 460 | }
|
381 | 461 |
|
382 | 462 | function Test-GetDeletedWebApp
|
|
0 commit comments