From 2ad4b83ba50924f8d0c98999e693fa4faad806e2 Mon Sep 17 00:00:00 2001 From: LucasYao93 <53558334+LucasYao93@users.noreply.github.com> Date: Mon, 18 Jan 2021 11:05:15 +0800 Subject: [PATCH] Modified SmokeTest/RmCoreSmokeTests.ps1. (#13883) Force merge it due to Macos out of time. * Modified SmokeTest/RmCoreSmokeTests.ps1. * updated file SmokeTest/RmCoreSmokeTests.ps1. * Remove comment in SmokeTest/RmCoreSmokeTests.ps1. * Removed logic of the Az.Resources [Cleanup] in SmokeTest/RmCoreSmokeTests.ps1. * throw exception when the storage clean up failed in SmokeTest/RmCoreSmokeTests.ps1. * Remove break code after throw code in SmokeTest/RmCoreSmokeTests.ps1. * Add Retry-AzCommand function in SmokeTest/RmCoreSmokeTests.ps1 --- tools/Test/SmokeTest/RmCoreSmokeTests.ps1 | 133 ++++++++++++++-------- 1 file changed, 84 insertions(+), 49 deletions(-) diff --git a/tools/Test/SmokeTest/RmCoreSmokeTests.ps1 b/tools/Test/SmokeTest/RmCoreSmokeTests.ps1 index 78a019125526..429dfe79c645 100644 --- a/tools/Test/SmokeTest/RmCoreSmokeTests.ps1 +++ b/tools/Test/SmokeTest/RmCoreSmokeTests.ps1 @@ -31,89 +31,124 @@ for($i=0; $i -lt 9; $i++) { $randomValue += $strarray[(Get-Random -Maximum $strarray.Length)] } + +# Retry azure powershell command. +function Retry-AzCommand { + [CmdletBinding()] + param ( + [string] + $Command, + + [int] + $RetryCount, + + # Seconds between retries + [int] + $Sleep + ) + $loopLimit = 0 + do { + try { + &([scriptblock]::Create($Command)) + break + } + catch { + $commandName = ($Command -split ' ')[0] + if (++$loopLimit -gt $RetryCount) + { + throw "Failed to invoke $commandName. $_" + } else { + Write-Warning "Retry $commandName after $Sleep seconds" + Start-Sleep -Seconds $Sleep + } + } + } while ($true) +} + # The name of resource group is 1~90 charactors complying with ^[-\w\._\(\)]+$ $resourceGroupName = "azpssmokerg$randomValue" # The name of storage account should be 3~24 lowercase letters and numbers. $storageAccountName = "azpssmokesa$randomValue" $resourceSetUpCommands=@( - @{Name = "Az.Resources"; Command = {New-AzureRmResourceGroup -Name $resourceGroupName -Location westus -ErrorAction Stop}} + @{Name = "Az.Resources"; Command = {New-AzResourceGroup -Name $resourceGroupName -Location westus -ErrorAction Stop}} ) + $resourceCleanUpCommands = @( - @{Name = "Az.Storage [Cleanup]"; Command = {Remove-AzureRmStorageAccount -Name $storageAccountName -ResourceGroupName $resourceGroupName -Force -ErrorAction Stop}}, - @{Name = "Az.Resources [Cleanup]"; Command = {Remove-AzureRmResourceGroup -Name $resourceGroupName -Force -ErrorAction Stop}} + @{Name = "Az.Storage [Cleanup]"; Command = {Retry-AzCommand -Command "Remove-AzStorageAccount -Name $storageAccountName -ResourceGroupName $resourceGroupName -Force -ErrorAction Stop" -RetryCount 30 -Sleep 30}}, + @{Name = "Az.Resources [Cleanup]"; Command = {Remove-AzResourceGroup -Name $resourceGroupName -Force -ErrorAction Stop}} ) + $resourceTestCommands = @( - @{Name = "Az.Storage [Management]"; Command = {New-AzureRmStorageAccount -Name $storageAccountName -SkuName Standard_LRS -Location westus -ResourceGroupName $resourceGroupName -ErrorAction Stop}}, - @{Name = "Az.Storage [Data]"; Command = {New-AzureStorageContext -StorageAccountName $storageAccountName -StorageAccountKey 12345678 -ErrorAction Stop}}, + @{Name = "Az.Storage [Management]"; Command = {New-AzStorageAccount -Name $storageAccountName -SkuName Standard_LRS -Location westus -ResourceGroupName $resourceGroupName -ErrorAction Stop}}, + @{Name = "Az.Storage [Data]"; Command = {New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey 12345678 -ErrorAction Stop}}, @{Name = "Az.Accounts"; Command = {Get-AzDomain -ErrorAction Stop}}, @{Name = "Az.Advisor"; Command = {Get-AzAdvisorConfiguration -ErrorAction Stop}}, @{Name = "Az.Aks"; Command = {Get-AzAksCluster -ErrorAction Stop}}, - @{Name = "Az.AnalysisServices"; Command = {Get-AzureRmAnalysisServicesServer -ErrorAction Stop}}, - @{Name = "Az.ApiManagement"; Command = {Get-AzureRmApiManagement -ErrorAction Stop}}, - @{Name = "Az.ApplicationInsights"; Command = {Get-AzureRmApplicationInsights -ErrorAction Stop}}, - @{Name = "Az.Automation"; Command = {Get-AzureRmAutomationAccount -ErrorAction Stop}}, - @{Name = "Az.Batch"; Command = {Get-AzureRmBatchAccount -ErrorAction Stop}}, - @{Name = "Az.Billing"; Command = {Get-AzureRmBillingInvoice -ErrorAction Stop}}, - @{Name = "Az.Billing [Consumption]"; Command = {try {Get-AzureRmConsumptionUsageDetail -ErrorAction Stop} catch {if ($_.ToString() -notlike "*422*" -and $_.ToString() -notlike "*UnprocessableEntity*" -and $_.ToString() -notlike "*BadRequest*") {throw $_}}}}, - @{Name = "Az.Cdn"; Command = {Get-AzureRmCdnProfile -ErrorAction Stop}}, - @{Name = "Az.CognitiveServices"; Command = {Get-AzureRmCognitiveServicesAccount -ErrorAction Stop}}, - @{Name = "Az.Compute"; Command = {Get-AzureRmVM -ErrorAction Stop}}, - @{Name = "Az.ContainerInstance"; Command = {Get-AzureRmContainerGroup -ErrorAction Stop}}, - @{Name = "Az.ContainerRegistry"; Command = {Get-AzureRmContainerRegistry -ErrorAction Stop}}, + @{Name = "Az.AnalysisServices"; Command = {Get-AzAnalysisServicesServer -ErrorAction Stop}}, + @{Name = "Az.ApiManagement"; Command = {Get-AzApiManagement -ErrorAction Stop}}, + @{Name = "Az.ApplicationInsights"; Command = {Get-AzApplicationInsights -ErrorAction Stop}}, + @{Name = "Az.Automation"; Command = {Get-AzAutomationAccount -ErrorAction Stop}}, + @{Name = "Az.Batch"; Command = {Get-AzBatchAccount -ErrorAction Stop}}, + @{Name = "Az.Billing"; Command = {Get-AzBillingInvoice -ErrorAction Stop}}, + @{Name = "Az.Billing [Consumption]"; Command = {try {Get-AzConsumptionUsageDetail -ErrorAction Stop} catch {if ($_.ToString() -notlike "*422*" -and $_.ToString() -notlike "*UnprocessableEntity*" -and $_.ToString() -notlike "*BadRequest*") {throw $_}}}}, + @{Name = "Az.Cdn"; Command = {Get-AzCdnProfile -ErrorAction Stop}}, + @{Name = "Az.CognitiveServices"; Command = {Get-AzCognitiveServicesAccount -ErrorAction Stop}}, + @{Name = "Az.Compute"; Command = {Get-AzVM -ErrorAction Stop}}, + @{Name = "Az.ContainerInstance"; Command = {Get-AzContainerGroup -ErrorAction Stop}}, + @{Name = "Az.ContainerRegistry"; Command = {Get-AzContainerRegistry -ErrorAction Stop}}, @{Name = "Az.DataBoxEdge"; Command = {Get-AzDataBoxEdgeDevice -ResourceGroupName $resourceGroupName -ErrorAction Stop}}, @{Name = "Az.Databricks"; Command = {Get-AzDatabricksWorkspace -ResourceGroupName $resourceGroupName -ErrorAction Stop}}, - @{Name = "Az.DataFactory [V1]"; Command = {Get-AzureRmDataFactory -ResourceGroupName $resourceGroupName -ErrorAction Stop}}, - @{Name = "Az.DataFactoryV2 [V2]"; Command = {Get-AzureRmDataFactoryV2 -ErrorAction Stop}}, - @{Name = "Az.DataLakeAnalytics"; Command = {Get-AzureRmDataLakeAnalyticsAccount -ErrorAction Stop}}, - @{Name = "Az.DataLakeStore"; Command = {Get-AzureRmDataLakeStoreAccount -ErrorAction Stop}}, + @{Name = "Az.DataFactory [V1]"; Command = {Get-AzDataFactory -ResourceGroupName $resourceGroupName -ErrorAction Stop}}, + @{Name = "Az.DataFactoryV2 [V2]"; Command = {Get-AzDataFactoryV2 -ErrorAction Stop}}, + @{Name = "Az.DataLakeAnalytics"; Command = {Get-AzDataLakeAnalyticsAccount -ErrorAction Stop}}, + @{Name = "Az.DataLakeStore"; Command = {Get-AzDataLakeStoreAccount -ErrorAction Stop}}, @{Name = "Az.DataShare"; Command = {Get-AzDataShareAccount -ResourceGroupName $resourceGroupName -ErrorAction Stop}}, # Waiting for an issue fix: https://github.com/Azure/azure-powershell/issues/13522#issuecomment-728659457 # @{Name = "Az.DeploymentManager"; Command = {try {Get-AzDeploymentManagerArtifactSource -ResourceGroupName $resourceGroupName -ErrorAction Stop}catch {if ($_.ToString() -notlike "*not found*") {throw $_}}}}, - # Waiting for api '2020-11-02-preview' ready - # @{Name = "Az.DesktopVirtualization"; Command = {Get-AzWvdApplicationGroup -ResourceGroupName $resourceGroupName -ErrorAction Stop}}, + @{Name = "Az.DesktopVirtualization"; Command = {Get-AzWvdApplicationGroup -ResourceGroupName $resourceGroupName -ErrorAction Stop}}, @{Name = "Az.DevTestLabs "; Command = {try {Get-AzDtlAllowedVMSizesPolicy -LabName nonexistent -ResourceGroupName nonexistent -ErrorAction Stop} catch {if ($_.ToString() -notlike "*'nonexistent' could not be found.") {throw $_}}}}, - @{Name = "Az.Dns"; Command = {Get-AzureRmDnsZone -ErrorAction Stop}}, - @{Name = "Az.EventGrid"; Command = {Get-AzureRmEventGridTopic -ErrorAction Stop}}, - @{Name = "Az.EventHub"; Command = {Get-AzureRmEventHubNamespace -ErrorAction Stop}}, + @{Name = "Az.Dns"; Command = {Get-AzDnsZone -ErrorAction Stop}}, + @{Name = "Az.EventGrid"; Command = {Get-AzEventGridTopic -ErrorAction Stop}}, + @{Name = "Az.EventHub"; Command = {Get-AzEventHubNamespace -ErrorAction Stop}}, @{Name = "Az.FrontDoor"; Command = {Get-AzFrontDoor -ErrorAction Stop}}, @{Name = "Az.Functions"; Command = {Get-AzFunctionApp -ErrorAction Stop}}, @{Name = "Az.HDInsight "; Command = {Get-AzHDInsightCluster -ErrorAction Stop}}, @{Name = "Az.HealthcareApis"; Command = {Get-AzHealthcareApisService -ErrorAction Stop}}, - @{Name = "Az.IotHub"; Command = {Get-AzureRmIotHub -ErrorAction Stop}}, - @{Name = "Az.KeyVault"; Command = {Get-AzureRmKeyVault -ErrorAction Stop}}, + @{Name = "Az.IotHub"; Command = {Get-AzIotHub -ErrorAction Stop}}, + @{Name = "Az.KeyVault"; Command = {Get-AzKeyVault -ErrorAction Stop}}, @{Name = "Az.Kusto"; Command = {Get-AzKustoCluster -ErrorAction Stop}}, - @{Name = "Az.LogicApp"; Command = {Get-AzureRmIntegrationAccount -ErrorAction Stop}}, - @{Name = "Az.MachineLearning"; Command = {Get-AzureRmMlWebService -ErrorAction Stop}}, + @{Name = "Az.LogicApp"; Command = {Get-AzIntegrationAccount -ErrorAction Stop}}, + @{Name = "Az.MachineLearning"; Command = {Get-AzMlWebService -ErrorAction Stop}}, @{Name = "Az.Maintenance"; Command = {Get-AzMaintenanceConfiguration -ErrorAction Stop}}, @{Name = "Az.ManagedServices"; Command = {Get-AzManagedServicesAssignment -ErrorAction Stop}}, # Machine learning compute cmdlets are removed. The following line are to be commented until they are brought back - # @{Name = "Az.MachineLearning [Compute]"; Command = {Get-AzureRmMlOpCluster -ErrorAction Stop}}, + # @{Name = "Az.MachineLearning [Compute]"; Command = {Get-AzMlOpCluster -ErrorAction Stop}}, @{Name = "Az.MarketplaceOrdering"; Command = {try {Get-AzMarketplaceTerms -Publisher nonexistent -Product nonexistent -Name nonexistent -ErrorAction Stop} catch {if ($_.ToString() -notlike "*not found*") {throw $_}}}}, - @{Name = "Az.Media"; Command = {Get-AzureRmMediaService -ResourceGroupName $resourceGroupName -ErrorAction Stop}}, - @{Name = "Az.Monitor"; Command = {Get-AzureRmLogProfile -ErrorAction Stop}}, - @{Name = "Az.Network"; Command = {Get-AzureRmNetworkInterface -ErrorAction Stop}}, - @{Name = "Az.NotificationHubs"; Command = {Get-AzureRmNotificationHubsNamespace -ErrorAction Stop}}, - @{Name = "Az.OperationalInsights"; Command = {Get-AzureRmOperationalInsightsWorkspace -ErrorAction Stop}}, + @{Name = "Az.Media"; Command = {Get-AzMediaService -ResourceGroupName $resourceGroupName -ErrorAction Stop}}, + @{Name = "Az.Monitor"; Command = {Get-AzLogProfile -ErrorAction Stop}}, + @{Name = "Az.Network"; Command = {Get-AzNetworkInterface -ErrorAction Stop}}, + @{Name = "Az.NotificationHubs"; Command = {Get-AzNotificationHubsNamespace -ErrorAction Stop}}, + @{Name = "Az.OperationalInsights"; Command = {Get-AzOperationalInsightsWorkspace -ErrorAction Stop}}, @{Name = "Az.PolicyInsights"; Command = {Get-AzPolicyEvent -ErrorAction Stop}}, @{Name = "Az.PowerBIEmbedded"; Command = {Get-AzPowerBIEmbeddedCapacity -ErrorAction Stop}}, - @{Name = "Az.PowerBIUEmbedded"; Command = {Get-AzureRmPowerBIWorkspaceCollection -ErrorAction Stop}}, + @{Name = "Az.PowerBIUEmbedded"; Command = {Get-AzPowerBIWorkspaceCollection -ErrorAction Stop}}, @{Name = "Az.PrivateDns"; Command = {Get-AzPrivateDnsZone -ErrorAction Stop}}, @{Name = "Az.RecoveryServices"; Command = {Get-AzRecoveryServicesVault -ErrorAction Stop}}, - @{Name = "Az.RedisCache"; Command = {Get-AzureRmRedisCache -ErrorAction Stop}}, - @{Name = "Az.Relay"; Command = {Get-AzureRmRelayNamespace -ErrorAction Stop}}, - @{Name = "Az.ServiceBus"; Command = {Get-AzureRmServiceBusNamespace -ErrorAction Stop}}, - @{Name = "Az.ServiceFabric"; Command = {Get-AzureRmServiceFabricCluster -ErrorAction Stop}}, + @{Name = "Az.RedisCache"; Command = {Get-AzRedisCache -ErrorAction Stop}}, + @{Name = "Az.Relay"; Command = {Get-AzRelayNamespace -ErrorAction Stop}}, + @{Name = "Az.ServiceBus"; Command = {Get-AzServiceBusNamespace -ErrorAction Stop}}, + @{Name = "Az.ServiceFabric"; Command = {Get-AzServiceFabricCluster -ErrorAction Stop}}, @{Name = "Az.SignalR"; Command = {Get-AzSignalR -ErrorAction Stop}}, - @{Name = "Az.Sql"; Command = {Get-AzureRmSqlServer -ErrorAction Stop}}, + @{Name = "Az.Sql"; Command = {Get-AzSqlServer -ErrorAction Stop}}, @{Name = "Az.SqlVirtualMachine"; Command = {Get-AzSqlVM -ErrorAction Stop}}, - @{Name = "Az.StreamAnalytics"; Command = {Get-AzureRmStreamAnalyticsJob -ErrorAction Stop}}, + @{Name = "Az.StreamAnalytics"; Command = {Get-AzStreamAnalyticsJob -ErrorAction Stop}}, @{Name = "Az.StorageSync"; Command = {Get-AzStorageSyncService -ErrorAction Stop}}, - @{Name = "Az.Support"; Command = {Get-AzSupportTicket -ErrorAction Stop}} - @{Name = "Az.Resources [Tags]"; Command = {Get-AzureRmTag -ErrorAction Stop}}, - @{Name = "Az.TrafficManager"; Command = {Get-AzureRmTrafficManagerProfile -ErrorAction Stop}}, + @{Name = "Az.Support"; Command = {Get-AzSupportTicket -ErrorAction Stop}}, + @{Name = "Az.Resources [Tags]"; Command = {Get-AzTag -ErrorAction Stop}}, + @{Name = "Az.TrafficManager"; Command = {Get-AzTrafficManagerProfile -ErrorAction Stop}}, @{Name = "Az.Billing [UsageAggregates]"; Command = {Get-UsageAggregates -ReportedStartTime '1/1/2018' -ReportedEndTime '1/2/2018' -ErrorAction Stop}}, - @{Name = "Az.Websites"; Command = {Get-AzureRmWebApp -ErrorAction Stop}} + @{Name = "Az.Websites"; Command = {Get-AzWebApp -ErrorAction Stop}} ) if($Reverse.IsPresent){ @@ -137,7 +172,7 @@ $resourceCommands | ForEach-Object { catch { Write-Error $_.Exception - $detail = Resolve-AzureRmError -Last + $detail = Resolve-AzError -Last $testInfo.FailureDetails += (New-Object PSObject -Property @{Name = $testName; Details = $detail}) $testInfo.FailedTests += $testName } @@ -172,6 +207,6 @@ if ($testInfo.FailedTests.Count -gt 0) throw ("Test run failed with " + $testInfo.FailedTests.Count + " failures.") } -# Resolve-AzureRmError +# Resolve-AzError # $DebugPreference = $oldDebug # $VerbosePreference = $oldVerbose \ No newline at end of file