From c4e05b799d8481885fe4aaf7b7467d04c5266a56 Mon Sep 17 00:00:00 2001 From: Wes Haggard Date: Fri, 9 Apr 2021 10:37:47 -0700 Subject: [PATCH] Fix BaseName initialization Initializing the BaseName with a ServiceDirectory that contains a "/", because it is a multiple level path, causes the BaseName initialization code to fail because it doesn't support the validation pattern. In all the known cases we already pass the ResourceGroupName explicitly so don't need to set the BaseName so we can skip the initialization in those cases. --- .../TestResources/Remove-TestResources.ps1 | 23 +++++++++---------- .../TestResources/Update-TestResources.ps1 | 20 ++++++++-------- 2 files changed, 21 insertions(+), 22 deletions(-) diff --git a/eng/common/TestResources/Remove-TestResources.ps1 b/eng/common/TestResources/Remove-TestResources.ps1 index ebb8b021ccf9..1fadd3581038 100644 --- a/eng/common/TestResources/Remove-TestResources.ps1 +++ b/eng/common/TestResources/Remove-TestResources.ps1 @@ -37,7 +37,7 @@ param ( [Parameter(ParameterSetName = 'Default+Provisioner', Mandatory = $true)] [Parameter(ParameterSetName = 'ResourceGroup+Provisioner', Mandatory = $true)] [string] $ProvisionerApplicationSecret, - + [Parameter(ParameterSetName = 'Default', Mandatory = $true, Position = 0)] [Parameter(ParameterSetName = 'Default+Provisioner')] [Parameter(ParameterSetName = 'ResourceGroup')] @@ -122,18 +122,17 @@ if ($ProvisionerApplicationId) { $context = Get-AzContext -# Make sure $BaseName is set. -if (!$BaseName) { - - $UserName = if ($env:USER) { $env:USER } else { "${env:USERNAME}" } - # Remove spaces, etc. that may be in $UserName - $UserName = $UserName -replace '\W' - - $BaseName = "$UserName$ServiceDirectory" - Log "BaseName was not set. Using default base name '$BaseName'" -} - if (!$ResourceGroupName) { + # Make sure $BaseName is set. + if (!$BaseName) { + $UserName = if ($env:USER) { $env:USER } else { "${env:USERNAME}" } + # Remove spaces, etc. that may be in $UserName + $UserName = $UserName -replace '\W' + + $BaseName = "$UserName$ServiceDirectory" + Log "BaseName was not set. Using default base name '$BaseName'" + } + # Format the resource group name like in New-TestResources.ps1. $ResourceGroupName = "rg-$BaseName" } diff --git a/eng/common/TestResources/Update-TestResources.ps1 b/eng/common/TestResources/Update-TestResources.ps1 index 64f319e1babb..90e0e6ae1456 100644 --- a/eng/common/TestResources/Update-TestResources.ps1 +++ b/eng/common/TestResources/Update-TestResources.ps1 @@ -67,18 +67,18 @@ $exitActions = @({ } }) -# Make sure $BaseName is set. -if (!$BaseName) { - $UserName = if ($env:USER) { $env:USER } else { "${env:USERNAME}" } - # Remove spaces, etc. that may be in $UserName - $UserName = $UserName -replace '\W' - - $BaseName = "$UserName$ServiceDirectory" - Log "BaseName was not set. Using default base name '$BaseName'" -} - # Make sure $ResourceGroupName is set. if (!$ResourceGroupName) { + # Make sure $BaseName is set. + if (!$BaseName) { + $UserName = if ($env:USER) { $env:USER } else { "${env:USERNAME}" } + # Remove spaces, etc. that may be in $UserName + $UserName = $UserName -replace '\W' + + $BaseName = "$UserName$ServiceDirectory" + Log "BaseName was not set. Using default base name '$BaseName'" + } + $ResourceGroupName = "rg-$BaseName" }