Skip to content

Commit 3231eb8

Browse files
author
Nicholas King
committed
Fix the exposed credential in GetWebAppSnapshot test, and remove the pre-created resource requirements for RestorewebAppSnapshot test
1 parent 20c7d17 commit 3231eb8

File tree

3 files changed

+7546
-431
lines changed

3 files changed

+7546
-431
lines changed

src/Websites/Websites.Test/ScenarioTests/WebAppBackupRestoreTests.ps1

Lines changed: 122 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,6 @@
1212
# limitations under the License.
1313
# ----------------------------------------------------------------------------------
1414

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-
2115
# !!! Storage keys and SAS URIs will be stored in the backup test recordings !!!
2216
# To find them, open the json files in a text editor and search for "listkeys"
2317
# to find the storage keys. Search for StorageAccountUrl to find the SAS URIs.
@@ -335,48 +329,134 @@ function Test-EditAndGetWebAppBackupConfigurationPiping
335329

336330
function Test-GetWebAppSnapshot
337331
{
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+
}
366396
}
367397

368398
function Test-RestoreWebAppSnapshot
369399
{
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')
373408

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
376415

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+
}
380460
}
381461

382462
function Test-GetDeletedWebApp

src/Websites/Websites.Test/SessionRecords/Microsoft.Azure.Commands.Websites.Test.ScenarioTests.WebAppBackupRestoreTests/TestGetWebAppSnapshot.json

Lines changed: 3058 additions & 112 deletions
Large diffs are not rendered by default.

src/Websites/Websites.Test/SessionRecords/Microsoft.Azure.Commands.Websites.Test.ScenarioTests.WebAppBackupRestoreTests/TestRestoreWebAppSnapshot.json

Lines changed: 4366 additions & 277 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)