package terraform import ( "github.com/hashicorp/terraform/configs" "github.com/hashicorp/terraform/dag" ) // CountBoundaryTransformer adds a node that depends on everything else // so that it runs last in order to clean up the state for nodes that // are on the "count boundary": "foo.0" when only one exists becomes "foo" type CountBoundaryTransformer struct { Config *configs.Config } func (t *CountBoundaryTransformer) Transform(g *Graph) error { node := &NodeCountBoundary{ Config: t.Config, } g.Add(node) // Depends on everything for _, v := range g.Vertices() { // Don't connect to ourselves if v == node { continue } // Connect! g.Connect(dag.BasicEdge(node, v)) } return nil }