terraform: depends_on with count creates proper graph [GH-244]

This commit is contained in:
Mitchell Hashimoto 2014-08-30 16:08:50 -07:00
parent 7cfad67920
commit 28a2e7b979
4 changed files with 38 additions and 1 deletions

View File

@ -9,6 +9,7 @@ IMPROVEMENTS:
BUG FIXES: BUG FIXES:
* core: Configuration parses when identifier and '=' have no space. [GH-243] * core: Configuration parses when identifier and '=' have no space. [GH-243]
* core: `depends_on` with `count` generates the proper graph. [GH-244]
## 0.2.0 (August 28, 2014) ## 0.2.0 (August 28, 2014)

View File

@ -413,7 +413,7 @@ func graphAddExplicitDeps(g *depgraph.Graph) {
continue continue
} }
rs[rn.Config.Id()] = n rs[rn.Resource.Id] = n
if len(rn.Config.DependsOn) > 0 { if len(rn.Config.DependsOn) > 0 {
depends = true depends = true
} }

View File

@ -66,6 +66,21 @@ func TestGraph_dependsOn(t *testing.T) {
} }
} }
func TestGraph_dependsOnCount(t *testing.T) {
config := testConfig(t, "graph-depends-on-count")
g, err := Graph(&GraphOpts{Config: config})
if err != nil {
t.Fatalf("err: %s", err)
}
actual := strings.TrimSpace(g.String())
expected := strings.TrimSpace(testTerraformGraphDependsCountStr)
if actual != expected {
t.Fatalf("bad:\n\n%s", actual)
}
}
func TestGraph_state(t *testing.T) { func TestGraph_state(t *testing.T) {
config := testConfig(t, "graph-basic") config := testConfig(t, "graph-basic")
state := &State{ state := &State{
@ -372,6 +387,21 @@ root
root -> aws_instance.web root -> aws_instance.web
` `
const testTerraformGraphDependsCountStr = `
root: root
aws_instance.db
aws_instance.db -> aws_instance.db.0
aws_instance.db -> aws_instance.db.1
aws_instance.db.0
aws_instance.db.0 -> aws_instance.web
aws_instance.db.1
aws_instance.db.1 -> aws_instance.web
aws_instance.web
root
root -> aws_instance.db
root -> aws_instance.web
`
const testTerraformGraphDiffStr = ` const testTerraformGraphDiffStr = `
root: root root: root
aws_instance.foo aws_instance.foo

View File

@ -0,0 +1,6 @@
resource "aws_instance" "web" {}
resource "aws_instance" "db" {
depends_on = ["aws_instance.web"]
count = 2
}