Skip to content

Commit

Permalink
config: depends on cannot contain interpolations [hashicorpGH-985]
Browse files Browse the repository at this point in the history
  • Loading branch information
mitchellh authored and Yahya Poonawala committed Mar 13, 2015
1 parent f64221f commit 7f92c78
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 0 deletions.
11 changes: 11 additions & 0 deletions config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -379,6 +379,17 @@ func (c *Config) Validate() error {

// Verify depends on points to resources that all exist
for _, d := range r.DependsOn {
// Check if we contain interpolations
rc, err := NewRawConfig(map[string]interface{}{
"value": d,
})
if err == nil && len(rc.Variables) > 0 {
errs = append(errs, fmt.Errorf(
"%s: depends on value cannot contain interpolations: %s",
n, d))
continue
}

if _, ok := resources[d]; !ok {
errs = append(errs, fmt.Errorf(
"%s: resource depends on non-existent resource '%s'",
Expand Down
7 changes: 7 additions & 0 deletions config/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,13 @@ func TestConfigValidate_countVarInvalid(t *testing.T) {
}
}

func TestConfigValidate_dependsOnVar(t *testing.T) {
c := testConfig(t, "validate-depends-on-var")
if err := c.Validate(); err == nil {
t.Fatal("should not be valid")
}
}

func TestConfigValidate_dupModule(t *testing.T) {
c := testConfig(t, "validate-dup-module")
if err := c.Validate(); err == nil {
Expand Down
7 changes: 7 additions & 0 deletions config/test-fixtures/validate-depends-on-var/main.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
variable "foo" {
description = "bar"
}

resource aws_instance "web" {
depends_on = ["${var.foo}"]
}

0 comments on commit 7f92c78

Please sign in to comment.