From e46f180cdc5a7f7acf2f8d5ae7e7d5350f64e7f2 Mon Sep 17 00:00:00 2001 From: Shital Savekar Date: Fri, 17 Nov 2017 20:44:16 +0530 Subject: [PATCH] Added option to ForceDeleteResources. --- AzureAutomationManager.ps1 | 8 ++- TestLibs/ARMLibrary.psm1 | 25 +++++--- TestLibs/RDFELibs.psm1 | 125 ++++++++++++++++++++----------------- 3 files changed, 90 insertions(+), 68 deletions(-) diff --git a/AzureAutomationManager.ps1 b/AzureAutomationManager.ps1 index 7ce4401..973f3cd 100644 --- a/AzureAutomationManager.ps1 +++ b/AzureAutomationManager.ps1 @@ -32,7 +32,8 @@ param ( [string] $customKernel, [string] $customLIS, [string] $customLISBranch, -[string] $resizeVMsAfterDeployment +[string] $resizeVMsAfterDeployment, +[switch] $ForceDeleteResources ) Import-Module .\TestLibs\AzureWinUtils.psm1 -Force -Scope Global @@ -62,6 +63,10 @@ if($EnableAcceleratedNetworking) { Set-Variable -Name EnableAcceleratedNetworking -Value $true -Scope Global } +if($ForceDeleteResources) +{ + Set-Variable -Name ForceDeleteResources -Value $true -Scope Global +} if($resizeVMsAfterDeployment) { Set-Variable -Name resizeVMsAfterDeployment -Value $resizeVMsAfterDeployment -Scope Global @@ -87,6 +92,7 @@ if ( $RunSelectedTests ) { Set-Variable -Name RunSelectedTests -Value $RunSelectedTests -Scope Global } + if ( $xmlConfig.config.Azure.General.StorageAccount -imatch "NewStorage_" ) { $NewASMStorageAccountType = ($xmlConfig.config.Azure.General.StorageAccount).Replace("NewStorage_","") diff --git a/TestLibs/ARMLibrary.psm1 b/TestLibs/ARMLibrary.psm1 index 97c95d4..730d48c 100644 --- a/TestLibs/ARMLibrary.psm1 +++ b/TestLibs/ARMLibrary.psm1 @@ -593,18 +593,27 @@ Function CreateResourceGroupDeployment([string]$RGName, $location, $setupType, $ } else { - LogErr "Failed to Resource Group." $retValue = $false - $VMsCreated = Get-AzureRmVM -ResourceGroupName $RGName - if ( $VMsCreated ) + LogErr "Failed to create Resource Group - $RGName." + if ($ForceDeleteResources) { - LogMsg "Keeping Failed resource group, as we found $($VMsCreated.Count) VM(s) deployed." - } - else - { - LogMsg "Removing Failed resource group, as we found 0 VM(s) deployed." + LogMsg "-ForceDeleteResources is Set. Deleting $RGName." DeleteResourceGroup -RGName $RGName + } + else + { + $VMsCreated = Get-AzureRmVM -ResourceGroupName $RGName + if ( $VMsCreated ) + { + LogMsg "Keeping Failed resource group, as we found $($VMsCreated.Count) VM(s) deployed." + } + else + { + LogMsg "Removing Failed resource group, as we found 0 VM(s) deployed." + DeleteResourceGroup -RGName $RGName + } + } } } catch diff --git a/TestLibs/RDFELibs.psm1 b/TestLibs/RDFELibs.psm1 index cfa302e..e3a36ab 100644 --- a/TestLibs/RDFELibs.psm1 +++ b/TestLibs/RDFELibs.psm1 @@ -2705,76 +2705,83 @@ Function DoTestCleanUp($result, $testName, $DeployedServices, $ResourceGroups, [ $isVMLogsCollected = $false foreach ($group in $ResourceGroups) { - if($result -eq "PASS") + if ($ForceDeleteResources) { - if($EconomyMode -and (-not $IsLastCaseInCycle)) + LogMsg "-ForceDeleteResources is Set. Deleting $group." + } + else + { + if($result -eq "PASS") { - LogMsg "Skipping cleanup of Resource Group : $group." - if(!$keepUserDirectory) + if($EconomyMode -and (-not $IsLastCaseInCycle)) { - RemoveAllFilesFromHomeDirectory -allDeployedVMs $allVMData + LogMsg "Skipping cleanup of Resource Group : $group." + if(!$keepUserDirectory) + { + RemoveAllFilesFromHomeDirectory -allDeployedVMs $allVMData + } + } + else + { + $RGdetails = Get-AzureRmResourceGroup -Name $group + if ( $RGdetails.Tags ) + { + if ( ( $RGdetails.Tags[0].Name -eq $preserveKeyword ) -and ( $RGdetails.Tags[0].Value -eq "yes" )) + { + LogMsg "Skipping Cleanup of preserved resource group." + LogMsg "Collecting VM logs.." + if ( !$isVMLogsCollected) + { + GetVMLogs -allVMData $allVMData + } + $isVMLogsCollected = $true + } + } + else + { + if ( $keepReproInact ) + { + LogMsg "Skipping cleanup due to 'keepReproInact' flag is set." + } + else + { + LogMsg "Cleaning up deployed test virtual machines." + $isClened = DeleteResourceGroup -RGName $group + if (!$isClened) + { + LogMsg "CleanUP unsuccessful for $group.. Please delete the services manually." + } + else + { + LogMsg "CleanUP Successful for $group.." + } + } + } } } else { - $RGdetails = Get-AzureRmResourceGroup -Name $group - if ( $RGdetails.Tags ) - { - if ( ( $RGdetails.Tags[0].Name -eq $preserveKeyword ) -and ( $RGdetails.Tags[0].Value -eq "yes" )) - { - LogMsg "Skipping Cleanup of preserved resource group." - LogMsg "Collecting VM logs.." - if ( !$isVMLogsCollected) - { - GetVMLogs -allVMData $allVMData - } - $isVMLogsCollected = $true - } - } - else + LogMsg "Preserving the Resource Group(s) $group" + LogMsg "Setting tags : preserve = yes; testName = $testName" + $hash = @{} + $hash.Add($preserveKeyword,"yes") + $hash.Add("testName","$testName") + $out = Set-AzureRmResourceGroup -Name $group -Tag $hash + LogMsg "Collecting VM logs.." + if ( !$isVMLogsCollected) { - if ( $keepReproInact ) - { - LogMsg "Skipping cleanup due to 'keepReproInact' flag is set." - } - else - { - LogMsg "Cleaning up deployed test virtual machines." - $isClened = DeleteResourceGroup -RGName $group - if (!$isClened) - { - LogMsg "CleanUP unsuccessful for $group.. Please delete the services manually." - } - else - { - LogMsg "CleanUP Successful for $group.." - } - } + GetVMLogs -allVMData $allVMData } - } - } - else - { - LogMsg "Preserving the Resource Group(s) $group" - LogMsg "Setting tags : preserve = yes; testName = $testName" - $hash = @{} - $hash.Add($preserveKeyword,"yes") - $hash.Add("testName","$testName") - $out = Set-AzureRmResourceGroup -Name $group -Tag $hash - LogMsg "Collecting VM logs.." - if ( !$isVMLogsCollected) - { - GetVMLogs -allVMData $allVMData - } - $isVMLogsCollected = $true - if(!$keepUserDirectory -and !$keepReproInact -and $EconomyMode) + $isVMLogsCollected = $true + if(!$keepUserDirectory -and !$keepReproInact -and $EconomyMode) + { + RemoveAllFilesFromHomeDirectory -allDeployedVMs $allVMData + } + if($keepReproInact) { - RemoveAllFilesFromHomeDirectory -allDeployedVMs $allVMData + $xmlConfig.config.Azure.Deployment.$setupType.isDeployed = "NO" } - if($keepReproInact) - { - $xmlConfig.config.Azure.Deployment.$setupType.isDeployed = "NO" - } + } } } }