3 import "github.com/hashicorp/terraform/dag"
5 const rootNodeName = "root"
7 // RootTransformer is a GraphTransformer that adds a root to the graph.
8 type RootTransformer struct{}
10 func (t *RootTransformer) Transform(g *Graph) error {
11 // If we already have a good root, we're done
12 if _, err := g.Root(); err == nil {
17 var root graphNodeRoot
20 // Connect the root to all the edges that need it
21 for _, v := range g.Vertices() {
26 if g.UpEdges(v).Len() == 0 {
27 g.Connect(dag.BasicEdge(root, v))
34 type graphNodeRoot struct{}
36 func (n graphNodeRoot) Name() string {