From f51792a0ce25ab5c0ae1b0095cf889fe6e66e8f2 Mon Sep 17 00:00:00 2001 From: Jared Holgate Date: Thu, 27 Feb 2025 15:53:08 +0000 Subject: [PATCH 1/2] fix: terraform tool download --- src/ALZ/Private/Tools/Get-TerraformTool.ps1 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ALZ/Private/Tools/Get-TerraformTool.ps1 b/src/ALZ/Private/Tools/Get-TerraformTool.ps1 index aa8526b2..eb180588 100644 --- a/src/ALZ/Private/Tools/Get-TerraformTool.ps1 +++ b/src/ALZ/Private/Tools/Get-TerraformTool.ps1 @@ -13,6 +13,8 @@ function Get-TerraformTool { throw "Unable to query Terraform version, please check your internet connection and try again..." } $version = ($versionResponse).Content | ConvertFrom-Json | Select-Object -ExpandProperty current_version + $version = $version.TrimStart("v") + Write-Verbose "Latest version of Terraform is $version" } Write-Verbose "Required version of Terraform is $version" From 0aa1cb20e7cea1f0f14fe734ae51de83ac376e43 Mon Sep 17 00:00:00 2001 From: Jared Holgate Date: Thu, 27 Feb 2025 16:25:12 +0000 Subject: [PATCH 2/2] USe different API --- src/ALZ/Private/Tools/Get-TerraformTool.ps1 | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/ALZ/Private/Tools/Get-TerraformTool.ps1 b/src/ALZ/Private/Tools/Get-TerraformTool.ps1 index eb180588..52584f0f 100644 --- a/src/ALZ/Private/Tools/Get-TerraformTool.ps1 +++ b/src/ALZ/Private/Tools/Get-TerraformTool.ps1 @@ -7,14 +7,23 @@ function Get-TerraformTool { [string]$toolsPath = ".\terraform" ) + $release = $null + if($version -eq "latest") { - $versionResponse = Invoke-WebRequest -Uri "https://checkpoint-api.hashicorp.com/v1/check/terraform" + $versionResponse = Invoke-WebRequest -Uri "https://api.releases.hashicorp.com/v1/releases/terraform?limit=20" if($versionResponse.StatusCode -ne "200") { throw "Unable to query Terraform version, please check your internet connection and try again..." } - $version = ($versionResponse).Content | ConvertFrom-Json | Select-Object -ExpandProperty current_version - $version = $version.TrimStart("v") + $releases = ($versionResponse).Content | ConvertFrom-Json | Where-Object -Property is_prerelease -EQ $false + $release = $releases[0] + $version = $releases[0].version Write-Verbose "Latest version of Terraform is $version" + } else { + $versionResponse = Invoke-WebRequest -Uri "https://api.releases.hashicorp.com/v1/releases/terraform/$($version)" + if($versionResponse.StatusCode -ne "200") { + throw "Unable to query Terraform version, please check the supplied version and try again..." + } + $release = ($versionResponse).Content } Write-Verbose "Required version of Terraform is $version" @@ -45,7 +54,7 @@ function Get-TerraformTool { $zipfilePath = "$unzipdir.zip" - $url = "https://releases.hashicorp.com/terraform/$($version)/terraform_$($version)_$($osArchitecture.osAndArchitecture).zip" + $url = $release.builds | Where-Object { $_.arch -eq $osArchitecture.architecture -and $_.os -eq $osArchitecture.os } | Select-Object -First 1 -ExpandProperty url if(!(Test-Path $toolsPath)) { New-Item -ItemType Directory -Path $toolsPath| Out-String | Write-Verbose