diff --git a/terraform/context_apply_test.go b/terraform/context_apply_test.go index aef5848d67..25e37f4b0c 100644 --- a/terraform/context_apply_test.go +++ b/terraform/context_apply_test.go @@ -5121,8 +5121,10 @@ func TestContext2Apply_targetedModuleDep(t *testing.T) { Targets: []string{"aws_instance.foo"}, }) - if _, err := ctx.Plan(); err != nil { + if p, err := ctx.Plan(); err != nil { t.Fatalf("err: %s", err) + } else { + t.Logf("Diff: %s", p) } state, err := ctx.Apply() diff --git a/terraform/graph_builder_plan.go b/terraform/graph_builder_plan.go index 0bef6750d9..43e709f7fb 100644 --- a/terraform/graph_builder_plan.go +++ b/terraform/graph_builder_plan.go @@ -81,15 +81,19 @@ func (b *PlanGraphBuilder) Steps() []GraphTransformer { Module: b.Module, }, - // Target - &TargetsTransformer{Targets: b.Targets}, - // Attach the configuration to any resources &AttachResourceConfigTransformer{Module: b.Module}, // Attach the state &AttachStateTransformer{State: b.State}, + // Connect so that the references are ready for targeting. We'll + // have to connect again later for providers and so on. + &ReferenceTransformer{}, + + // Target + &TargetsTransformer{Targets: b.Targets}, + // Create all the providers &MissingProviderTransformer{Providers: b.Providers, Factory: providerFactory}, &ProviderTransformer{}, @@ -103,7 +107,8 @@ func (b *PlanGraphBuilder) Steps() []GraphTransformer { // Add module variables &ModuleVariableTransformer{Module: b.Module}, - // Connect references so ordering is correct + // Connect references again to connect the providers, module variables, + // etc. This is idempotent. &ReferenceTransformer{}, // Single root