From 83ba038423710414e631892bd4a1f415d3900fa1 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Tue, 22 Jul 2014 08:18:53 -0700 Subject: [PATCH] terraform: mapping overrides work --- terraform/context.go | 7 +++++++ terraform/context_test.go | 3 ++- terraform/terraform_test.go | 1 + terraform/test-fixtures/apply-vars/main.tf | 1 + 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/terraform/context.go b/terraform/context.go index 5555f2e98..af508f8c0 100644 --- a/terraform/context.go +++ b/terraform/context.go @@ -332,6 +332,13 @@ func (c *Context) computeVars(raw *config.RawConfig) error { val, ok := c.variables[v.Name] if ok { vs[n] = val + continue + } + + for k, val := range c.variables { + if strings.HasPrefix(k, v.Name+".") { + vs["var."+k] = val + } } } } diff --git a/terraform/context_test.go b/terraform/context_test.go index 504941b64..ec49e5a90 100644 --- a/terraform/context_test.go +++ b/terraform/context_test.go @@ -1045,7 +1045,8 @@ func TestContextApply_vars(t *testing.T) { "aws": testProviderFuncFixed(p), }, Variables: map[string]string{ - "foo": "us-west-2", + "foo": "us-west-2", + "amis.us-east-1": "override", }, }) diff --git a/terraform/terraform_test.go b/terraform/terraform_test.go index 747ed3ead..24e780f9e 100644 --- a/terraform/terraform_test.go +++ b/terraform/terraform_test.go @@ -222,6 +222,7 @@ const testTerraformApplyVarsStr = ` aws_instance.bar: ID = foo bar = foo + baz = override foo = us-west-2 type = aws_instance aws_instance.foo: diff --git a/terraform/test-fixtures/apply-vars/main.tf b/terraform/test-fixtures/apply-vars/main.tf index 997f1ffe7..e250d0f98 100644 --- a/terraform/test-fixtures/apply-vars/main.tf +++ b/terraform/test-fixtures/apply-vars/main.tf @@ -17,4 +17,5 @@ resource "aws_instance" "foo" { resource "aws_instance" "bar" { foo = "${var.foo}" bar = "${lookup(var.amis, var.foo)}" + baz = "${var.amis.us-east-1}" }