From 088a4c85db565639b8eac526151fbb826063edde Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Fri, 6 Nov 2020 10:03:07 -0800 Subject: [PATCH] Make sure we always log in as app or provisioner (#908) This also adds previously-required parameters back into @PSBoundParameters to pass down to pre- and post-scripts. Co-authored-by: Heath Stewart --- .../TestResources/New-TestResources.ps1 | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/eng/common/TestResources/New-TestResources.ps1 b/eng/common/TestResources/New-TestResources.ps1 index 1fbb27309..8de70b50d 100644 --- a/eng/common/TestResources/New-TestResources.ps1 +++ b/eng/common/TestResources/New-TestResources.ps1 @@ -141,6 +141,9 @@ $UserName = if ($env:USER) { $env:USER } else { "${env:USERNAME}" } if (!$BaseName) { $BaseName = "$UserName$ServiceDirectory" + # Make sure pre- and post-scripts are passed formerly required arguments. + $PSBoundParameters['BaseName'] = $BaseName + Log "BaseName was not set. Using default base name: '$BaseName'" } @@ -167,8 +170,7 @@ if (!$Location) { Write-Verbose "Location was not set. Using default location for environment: '$Location'" } -# If no test application ID is specified during an interactive session, create a new service principal. -if (!$CI -and !$TestApplicationId) { +if (!$CI) { # Make sure the user is logged in to create a service principal. $context = Get-AzContext; @@ -177,13 +179,20 @@ if (!$CI -and !$TestApplicationId) { $context = (Connect-AzAccount -Subscription $defaultSubscription).Context } - Log "TestApplicationId was not specified; creating a new service principal" - $servicePrincipal = New-AzADServicePrincipal -Role Owner + # If no test application ID is specified during an interactive session, create a new service principal. + if (!$TestApplicationId) { + Log "TestApplicationId was not specified; creating a new service principal" + $servicePrincipal = New-AzADServicePrincipal -Role Owner - $TestApplicationId = $servicePrincipal.ApplicationId - $TestApplicationSecret = (ConvertFrom-SecureString $servicePrincipal.Secret -AsPlainText); + $TestApplicationId = $servicePrincipal.ApplicationId + $TestApplicationSecret = (ConvertFrom-SecureString $servicePrincipal.Secret -AsPlainText); - Log "Created service principal '$TestApplicationId'" + # Make sure pre- and post-scripts are passed formerly required arguments. + $PSBoundParameters['TestApplicationId'] = $TestApplicationId + $PSBoundParameters['TestApplicationSecret'] = $TestApplicationSecret + + Log "Created service principal '$TestApplicationId'" + } if (!$ProvisionerApplicationId) { $ProvisionerApplicationId = $TestApplicationId