terraform/terraform/transform_count_boundary.go

34 lines
717 B
Go
Raw Normal View History

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
}