diff --git a/terraform/terraform.go b/terraform/terraform.go index e335927da..282ee53ee 100644 --- a/terraform/terraform.go +++ b/terraform/terraform.go @@ -13,7 +13,6 @@ import ( // all resources, a resource tree, a specific resource, etc. type Terraform struct { config *config.Config - graph *depgraph.Graph mapping map[*config.Resource]*terraformProvider variables map[string]string } @@ -97,21 +96,30 @@ func New(c *Config) (*Terraform, error) { return &Terraform{ config: c.Config, - graph: graph, mapping: mapping, variables: c.Variables, }, nil } func (t *Terraform) Apply(p *Plan) (*State, error) { + graph := t.config.Graph() + if err := graph.Validate(); err != nil { + panic(fmt.Sprintf("Graph invalid after prior validation: %s", err)) + } + result := new(State) - err := t.graph.Walk(t.applyWalkFn(p, result)) + err := graph.Walk(t.applyWalkFn(p, result)) return result, err } func (t *Terraform) Plan(s *State) (*Plan, error) { + graph := t.config.Graph() + if err := graph.Validate(); err != nil { + panic(fmt.Sprintf("Graph invalid after prior validation: %s", err)) + } + result := new(Plan) - err := t.graph.Walk(t.planWalkFn(s, result)) + err := graph.Walk(t.planWalkFn(s, result)) if err != nil { return nil, err }