]>
Commit | Line | Data |
---|---|---|
15c0b25d AP |
1 | package terraform |
2 | ||
3 | import ( | |
4 | "log" | |
5 | ||
6 | "github.com/hashicorp/terraform/config/module" | |
7 | ) | |
8 | ||
9 | // RemoveModuleTransformer implements GraphTransformer to add nodes indicating | |
10 | // when a module was removed from the configuration. | |
11 | type RemovedModuleTransformer struct { | |
12 | Module *module.Tree // root module | |
13 | State *State | |
14 | } | |
15 | ||
16 | func (t *RemovedModuleTransformer) Transform(g *Graph) error { | |
17 | // nothing to remove if there's no state! | |
18 | if t.State == nil { | |
19 | return nil | |
20 | } | |
21 | ||
22 | for _, m := range t.State.Modules { | |
23 | c := t.Module.Child(m.Path[1:]) | |
24 | if c != nil { | |
25 | continue | |
26 | } | |
27 | ||
28 | log.Printf("[DEBUG] module %s no longer in config\n", modulePrefixStr(m.Path)) | |
29 | g.Add(&NodeModuleRemoved{PathValue: m.Path}) | |
30 | } | |
31 | return nil | |
32 | } |