From 83c1ed438f1994dead69850ff66829a2768f8716 Mon Sep 17 00:00:00 2001 From: Armon Dadgar Date: Wed, 9 Jul 2014 15:49:57 -0700 Subject: [PATCH] terraform: Fix and test provisioner configs --- terraform/context.go | 4 ++-- terraform/context_test.go | 9 +++++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/terraform/context.go b/terraform/context.go index 8b1b5c21d..e5d3763e6 100644 --- a/terraform/context.go +++ b/terraform/context.go @@ -532,12 +532,12 @@ func (c *Context) applyProvisioners(r *Resource, rs *ResourceState) (*ResourceSt for _, prov := range r.Provisioners { // Interpolate since we may have variables that depend on the // local resource. - if err := r.Config.interpolate(c); err != nil { + if err := prov.Config.interpolate(c); err != nil { return rs, err } // Invoke the Provisioner - rs, err = prov.Provisioner.Apply(rs, r.Config) + rs, err = prov.Provisioner.Apply(rs, prov.Config) if err != nil { return rs, err } diff --git a/terraform/context_test.go b/terraform/context_test.go index 793a9293d..314bf340a 100644 --- a/terraform/context_test.go +++ b/terraform/context_test.go @@ -352,6 +352,10 @@ func TestContextApply_Provisioner_compute(t *testing.T) { p.ApplyFn = testApplyFn p.DiffFn = testDiffFn pr.ApplyFn = func(rs *ResourceState, c *ResourceConfig) (*ResourceState, error) { + val, ok := c.Config["foo"] + if !ok || val != "computed_dynamical" { + t.Fatalf("bad value for foo: %v %#v", val, c) + } return rs, nil } ctx := testContext(t, &ContextOpts{ @@ -362,14 +366,15 @@ func TestContextApply_Provisioner_compute(t *testing.T) { Provisioners: map[string]ResourceProvisionerFactory{ "shell": testProvisionerFuncFixed(pr), }, + Variables: map[string]string{ + "value": "1", + }, }) if _, err := ctx.Plan(nil); err != nil { t.Fatalf("err: %s", err) } - ctx.variables = map[string]string{"value": "1"} - state, err := ctx.Apply() if err != nil { t.Fatalf("err: %s", err)