diff --git a/terraform/context.go b/terraform/context.go index 6635f8287..fbc71bfe1 100644 --- a/terraform/context.go +++ b/terraform/context.go @@ -889,13 +889,12 @@ func (c *Context) refreshWalkFn() depgraph.WalkFunc { } c.sl.Lock() - - // TODO: Handle other moduels + // TODO: Handle other modules mod := c.state.RootModule() if len(r.State.Tainted) == 0 && (is == nil || is.ID == "") { delete(mod.Resources, r.Id) } else { - mod.Resources[r.Id] = r.State + mod.Resources[r.Id].Primary = is } c.sl.Unlock() diff --git a/terraform/context_test.go b/terraform/context_test.go index 8a64fda59..7eda3899c 100644 --- a/terraform/context_test.go +++ b/terraform/context_test.go @@ -2162,14 +2162,15 @@ func TestContextRefresh_state(t *testing.T) { if err != nil { t.Fatalf("err: %s", err) } + originalMod := state.RootModule() mod := s.RootModule() if !p.RefreshCalled { t.Fatal("refresh should be called") } - if !reflect.DeepEqual(p.RefreshState, mod.Resources["aws_instance.web"]) { + if !reflect.DeepEqual(p.RefreshState, originalMod.Resources["aws_instance.web"].Primary) { t.Fatalf("bad: %#v", p.RefreshState) } - if !reflect.DeepEqual(mod.Resources["aws_instance.web"], p.RefreshReturn) { + if !reflect.DeepEqual(mod.Resources["aws_instance.web"].Primary, p.RefreshReturn) { t.Fatalf("bad: %#v", mod.Resources) } } @@ -2216,7 +2217,7 @@ func TestContextRefresh_vars(t *testing.T) { if p.RefreshState.ID != "foo" { t.Fatalf("bad: %#v", p.RefreshState) } - if !reflect.DeepEqual(mod.Resources["aws_instance.web"], p.RefreshReturn) { + if !reflect.DeepEqual(mod.Resources["aws_instance.web"].Primary, p.RefreshReturn) { t.Fatalf("bad: %#v", mod.Resources["aws_instance.web"]) }