package terraform import ( "log" "github.com/hashicorp/terraform/configs" "github.com/hashicorp/terraform/states" ) // RemovedModuleTransformer implements GraphTransformer to add nodes indicating // when a module was removed from the configuration. type RemovedModuleTransformer struct { Config *configs.Config // root node in the config tree State *states.State } func (t *RemovedModuleTransformer) Transform(g *Graph) error { // nothing to remove if there's no state! if t.State == nil { return nil } for _, m := range t.State.Modules { cc := t.Config.DescendentForInstance(m.Addr) if cc != nil { continue } log.Printf("[DEBUG] %s is no longer in configuration\n", m.Addr) g.Add(&NodeModuleRemoved{Addr: m.Addr}) } return nil }