From 4084ed92349547410273000cd3728480169e0308 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Tue, 24 Jun 2014 10:16:48 -0700 Subject: [PATCH] terraform: no longer store the graph on Terraform itself --- terraform/terraform.go | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) 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 }