From 23dd2a0ee5d1bd1bc10230edd00465ccd9e279c3 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Thu, 16 Mar 2017 23:03:11 -0700 Subject: [PATCH] backend/atlas: accept ATLAS_ADDRESS env var for address This is required for on-premise TFE. --- backend/atlas/backend.go | 2 +- backend/atlas/backend_test.go | 37 +++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/backend/atlas/backend.go b/backend/atlas/backend.go index f6ce3ea51..660327ae0 100644 --- a/backend/atlas/backend.go +++ b/backend/atlas/backend.go @@ -110,8 +110,8 @@ func (b *Backend) init() { "address": &schema.Schema{ Type: schema.TypeString, Optional: true, - Default: defaultAtlasServer, Description: schemaDescriptions["address"], + DefaultFunc: schema.EnvDefaultFunc("ATLAS_ADDRESS", defaultAtlasServer), }, }, diff --git a/backend/atlas/backend_test.go b/backend/atlas/backend_test.go index 14c8d1f9e..313a528d2 100644 --- a/backend/atlas/backend_test.go +++ b/backend/atlas/backend_test.go @@ -1,12 +1,49 @@ package atlas import ( + "os" "testing" "github.com/hashicorp/terraform/backend" + "github.com/hashicorp/terraform/config" + "github.com/hashicorp/terraform/terraform" ) func TestImpl(t *testing.T) { var _ backend.Backend = new(Backend) var _ backend.CLI = new(Backend) } + +func TestConfigure_envAddr(t *testing.T) { + defer os.Setenv("ATLAS_ADDRESS", os.Getenv("ATLAS_ADDRESS")) + os.Setenv("ATLAS_ADDRESS", "http://foo.com") + + b := &Backend{} + err := b.Configure(terraform.NewResourceConfig(config.TestRawConfig(t, map[string]interface{}{ + "name": "foo/bar", + }))) + if err != nil { + t.Fatalf("err: %s", err) + } + + if b.stateClient.Server != "http://foo.com" { + t.Fatalf("bad: %#v", b.stateClient) + } +} + +func TestConfigure_envToken(t *testing.T) { + defer os.Setenv("ATLAS_TOKEN", os.Getenv("ATLAS_TOKEN")) + os.Setenv("ATLAS_TOKEN", "foo") + + b := &Backend{} + err := b.Configure(terraform.NewResourceConfig(config.TestRawConfig(t, map[string]interface{}{ + "name": "foo/bar", + }))) + if err != nil { + t.Fatalf("err: %s", err) + } + + if b.stateClient.AccessToken != "foo" { + t.Fatalf("bad: %#v", b.stateClient) + } +}