diff --git a/builtin/providers/atlas/provider.go b/builtin/providers/atlas/provider.go index e7034a7cd..14928de63 100644 --- a/builtin/providers/atlas/provider.go +++ b/builtin/providers/atlas/provider.go @@ -52,7 +52,7 @@ func providerConfigure(d *schema.ResourceData) (interface{}, error) { return nil, err } } - client.DefaultHeader.Set(terraform.VersionHeader, terraform.Version) + client.DefaultHeader.Set(terraform.VersionHeader, terraform.VersionString()) client.Token = d.Get("token").(string) return client, nil diff --git a/builtin/providers/aws/config.go b/builtin/providers/aws/config.go index ab50b8ae2..85f1f30ea 100644 --- a/builtin/providers/aws/config.go +++ b/builtin/providers/aws/config.go @@ -397,7 +397,7 @@ func (c *Config) ValidateAccountId(accountId string) error { var addTerraformVersionToUserAgent = request.NamedHandler{ Name: "terraform.TerraformVersionUserAgentHandler", Fn: request.MakeAddToUserAgentHandler( - "terraform", terraform.Version, terraform.VersionPrerelease), + "terraform", terraform.VersionString()), } type awsLogger struct{} diff --git a/builtin/providers/azurerm/config.go b/builtin/providers/azurerm/config.go index 50e9c89f4..e44a9222a 100644 --- a/builtin/providers/azurerm/config.go +++ b/builtin/providers/azurerm/config.go @@ -92,13 +92,7 @@ func withRequestLogging() autorest.SendDecorator { } func setUserAgent(client *autorest.Client) { - var version string - if terraform.VersionPrerelease != "" { - version = fmt.Sprintf("%s-%s", terraform.Version, terraform.VersionPrerelease) - } else { - version = terraform.Version - } - + version := terraform.VersionString() client.UserAgent = fmt.Sprintf("HashiCorp-Terraform-v%s", version) } diff --git a/builtin/providers/google/config.go b/builtin/providers/google/config.go index 159a57e09..c824c9ee6 100644 --- a/builtin/providers/google/config.go +++ b/builtin/providers/google/config.go @@ -85,11 +85,7 @@ func (c *Config) loadAndValidate() error { } } - versionString := terraform.Version - prerelease := terraform.VersionPrerelease - if len(prerelease) > 0 { - versionString = fmt.Sprintf("%s-%s", versionString, prerelease) - } + versionString := terraform.VersionString() userAgent := fmt.Sprintf( "(%s %s) Terraform/%s", runtime.GOOS, runtime.GOARCH, versionString) diff --git a/terraform/version.go b/terraform/version.go index 7462a3c67..d753ff8e7 100644 --- a/terraform/version.go +++ b/terraform/version.go @@ -1,6 +1,8 @@ package terraform import ( + "fmt" + "github.com/hashicorp/go-version" ) @@ -20,3 +22,10 @@ var SemVersion = version.Must(version.NewVersion(Version)) // VersionHeader is the header name used to send the current terraform version // in http requests. const VersionHeader = "Terraform-Version" + +func VersionString() string { + if VersionPrerelease != "" { + return fmt.Sprintf("%s-%s", Version, VersionPrerelease) + } + return Version +}