diff --git a/terraform/context.go b/terraform/context.go index 91811fc91f..d45420c587 100644 --- a/terraform/context.go +++ b/terraform/context.go @@ -1705,7 +1705,6 @@ func (c *walkContext) computeResourceMultiVariable( } // Get the relevant module - // TODO: Not use only root module module := c.Context.state.ModuleByPath(c.Path) count, err := cr.Count() @@ -1716,8 +1715,8 @@ func (c *walkContext) computeResourceMultiVariable( err) } - // If we have no count, return empty - if count == 0 { + // If we have no module in the state yet or count, return empty + if module == nil || count == 0 { return "", nil } diff --git a/terraform/terraform_test.go b/terraform/terraform_test.go index ac1ac0613b..7956a94d54 100644 --- a/terraform/terraform_test.go +++ b/terraform/terraform_test.go @@ -844,6 +844,9 @@ STATE: const testTerraformPlanModuleMultiVarStr = ` DIFF: +CREATE: aws_instance.parent.0 +CREATE: aws_instance.parent.1 + module.child: CREATE: aws_instance.bar.0 baz: "" => "baz" diff --git a/terraform/test-fixtures/plan-module-multi-var/child/main.tf b/terraform/test-fixtures/plan-module-multi-var/child/main.tf index ca0b9c7ed2..ad8dd6073e 100644 --- a/terraform/test-fixtures/plan-module-multi-var/child/main.tf +++ b/terraform/test-fixtures/plan-module-multi-var/child/main.tf @@ -1,3 +1,5 @@ +variable "things" {} + resource "aws_instance" "bar" { baz = "baz" count = 2 diff --git a/terraform/test-fixtures/plan-module-multi-var/main.tf b/terraform/test-fixtures/plan-module-multi-var/main.tf index 9b9c77f3d1..9fa2330fe1 100644 --- a/terraform/test-fixtures/plan-module-multi-var/main.tf +++ b/terraform/test-fixtures/plan-module-multi-var/main.tf @@ -1,4 +1,9 @@ +resource "aws_instance" "parent" { + count = 2 +} + module "child" { - source = "./child" + source = "./child" + things = "${join(",", aws_instance.bar.*.private_ip)}" }