tools/e2etesting/DetermineKeyVaultName.ps1 (40 lines of code) (raw):

param($ResourceGroupName) # Stop execution when an error occurs. $ErrorActionPreference = "Stop" if (!$ResourceGroupName) { Write-Error "ResourceGroupName is empty." return } $keyVaultVariableName = "KeyVaultName" Write-Host "Looking for KeyVault in Resource group '$($ResourceGroupName)'" $resourceGroup = Get-AzResourceGroup -Name $ResourceGroupName if (!$resourceGroup) { Write-Host "##vso[task.complete result=Failed]Could not get Resource Group with name '$($ResourceGroupName)', exiting...'" } $keyVaults = Get-AzKeyVault -ResourceGroupName $resourceGroup.ResourceGroupName if (!$keyVaults) { Write-Host "##vso[task.complete result=Failed]Could not find any KeyVault on Resource Group '$($ResourceGroupName)'." } if ($keyVaults.Count -eq 1) { $applicationKeyVault = $keyVaults.VaultName } else { $application = $resourceGroup.Tags["application"] if (!$application) { Write-Host "##vso[task.complete result=Failed]Application-Tag on Resource Group does not exist or is empty. Please make sure that the Resource Group contains a valid IIoT Deployment." } foreach ($keyVault in $keyVaults) { $kvApplication = $keyVault.Tags["application"] if ($kvApplication -ne $application) { continue } else { $applicationKeyVault = $keyVault.VaultName break } } } if (!$applicationKeyVault) { Write-Host "##vso[task.complete result=Failed]Could not locate KeyVault with Tag 'application = $($application)' in Resource Group '$($ResourceGroupName)'." } Write-Host "Setting variable '$($keyVaultVariableName)' to '$($applicationKeyVault)'." Write-Host "##vso[task.setvariable variable=$($keyVaultVariableName)]$($applicationKeyVault)"