From 0039f70d0600e97bb87fb9bc90eb4bacd6e28f62 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Thu, 26 Jan 2017 19:57:46 -0800 Subject: [PATCH] terraform: remove config transformer old --- terraform/transform_config_old.go | 95 ----------------- terraform/transform_config_old_test.go | 136 ------------------------- 2 files changed, 231 deletions(-) delete mode 100644 terraform/transform_config_old_test.go diff --git a/terraform/transform_config_old.go b/terraform/transform_config_old.go index 94e4ce6cd..ec4125822 100644 --- a/terraform/transform_config_old.go +++ b/terraform/transform_config_old.go @@ -1,106 +1,11 @@ package terraform import ( - "errors" "fmt" - "github.com/hashicorp/go-multierror" "github.com/hashicorp/terraform/config" - "github.com/hashicorp/terraform/config/module" ) -// ConfigTransformerOld is a GraphTransformer that adds the configuration -// to the graph. The module used to configure this transformer must be -// the root module. We'll look up the child module by the Path in the -// Graph. -type ConfigTransformerOld struct { - Module *module.Tree -} - -func (t *ConfigTransformerOld) Transform(g *Graph) error { - // A module is required and also must be completely loaded. - if t.Module == nil { - return errors.New("module must not be nil") - } - if !t.Module.Loaded() { - return errors.New("module must be loaded") - } - - // Get the module we care about - module := t.Module.Child(g.Path[1:]) - if module == nil { - return nil - } - - // Get the configuration for this module - config := module.Config() - - // Create the node list we'll use for the graph - nodes := make([]graphNodeConfig, 0, - (len(config.Variables)+ - len(config.ProviderConfigs)+ - len(config.Modules)+ - len(config.Resources)+ - len(config.Outputs))*2) - - // Write all the variables out - for _, v := range config.Variables { - nodes = append(nodes, &GraphNodeConfigVariable{ - Variable: v, - ModuleTree: t.Module, - ModulePath: g.Path, - }) - } - - // Write all the provider configs out - for _, pc := range config.ProviderConfigs { - nodes = append(nodes, &GraphNodeConfigProvider{Provider: pc}) - } - - // Write all the resources out - for _, r := range config.Resources { - nodes = append(nodes, &GraphNodeConfigResource{ - Resource: r, - Path: g.Path, - }) - } - - // Write all the modules out - children := module.Children() - for _, m := range config.Modules { - path := make([]string, len(g.Path), len(g.Path)+1) - copy(path, g.Path) - path = append(path, m.Name) - - nodes = append(nodes, &GraphNodeConfigModule{ - Path: path, - Module: m, - Tree: children[m.Name], - }) - } - - // Err is where the final error value will go if there is one - var err error - - // Build the graph vertices - for _, n := range nodes { - g.Add(n) - } - - // Build up the dependencies. We have to do this outside of the above - // loop since the nodes need to be in place for us to build the deps. - for _, n := range nodes { - if missing := g.ConnectDependent(n); len(missing) > 0 { - for _, m := range missing { - err = multierror.Append(err, fmt.Errorf( - "%s: missing dependency: %s", n.Name(), m)) - } - } - } - - return err -} - // varNameForVar returns the VarName value for an interpolated variable. // This value is compared to the VarName() value for the nodes within the // graph to build the graph edges. diff --git a/terraform/transform_config_old_test.go b/terraform/transform_config_old_test.go deleted file mode 100644 index 8ef840d42..000000000 --- a/terraform/transform_config_old_test.go +++ /dev/null @@ -1,136 +0,0 @@ -package terraform - -import ( - "path/filepath" - "strings" - "testing" - - "github.com/hashicorp/terraform/config/module" -) - -func TestConfigTransformerOld_nilModule(t *testing.T) { - g := Graph{Path: RootModulePath} - tf := &ConfigTransformerOld{} - if err := tf.Transform(&g); err == nil { - t.Fatal("should error") - } -} - -func TestConfigTransformerOld_unloadedModule(t *testing.T) { - mod, err := module.NewTreeModule( - "", filepath.Join(fixtureDir, "graph-basic")) - if err != nil { - t.Fatalf("err: %s", err) - } - - g := Graph{Path: RootModulePath} - tf := &ConfigTransformerOld{Module: mod} - if err := tf.Transform(&g); err == nil { - t.Fatal("should error") - } -} - -func TestConfigTransformerOld(t *testing.T) { - g := Graph{Path: RootModulePath} - tf := &ConfigTransformerOld{Module: testModule(t, "graph-basic")} - if err := tf.Transform(&g); err != nil { - t.Fatalf("err: %s", err) - } - - actual := strings.TrimSpace(g.String()) - expected := strings.TrimSpace(testGraphBasicStr) - if actual != expected { - t.Fatalf("bad:\n\n%s", actual) - } -} - -func TestConfigTransformerOld_dependsOn(t *testing.T) { - g := Graph{Path: RootModulePath} - tf := &ConfigTransformerOld{Module: testModule(t, "graph-depends-on")} - if err := tf.Transform(&g); err != nil { - t.Fatalf("err: %s", err) - } - - actual := strings.TrimSpace(g.String()) - expected := strings.TrimSpace(testGraphDependsOnStr) - if actual != expected { - t.Fatalf("bad:\n\n%s", actual) - } -} - -func TestConfigTransformerOld_modules(t *testing.T) { - g := Graph{Path: RootModulePath} - tf := &ConfigTransformerOld{Module: testModule(t, "graph-modules")} - if err := tf.Transform(&g); err != nil { - t.Fatalf("err: %s", err) - } - - actual := strings.TrimSpace(g.String()) - expected := strings.TrimSpace(testGraphModulesStr) - if actual != expected { - t.Fatalf("bad:\n\n%s", actual) - } -} - -func TestConfigTransformerOld_providerAlias(t *testing.T) { - g := Graph{Path: RootModulePath} - tf := &ConfigTransformerOld{Module: testModule(t, "graph-provider-alias")} - if err := tf.Transform(&g); err != nil { - t.Fatalf("err: %s", err) - } - - actual := strings.TrimSpace(g.String()) - expected := strings.TrimSpace(testGraphProviderAliasStr) - if actual != expected { - t.Fatalf("bad:\n\n%s", actual) - } -} - -func TestConfigTransformerOld_errMissingDeps(t *testing.T) { - g := Graph{Path: RootModulePath} - tf := &ConfigTransformerOld{Module: testModule(t, "graph-missing-deps")} - if err := tf.Transform(&g); err == nil { - t.Fatalf("err: %s", err) - } -} - -const testGraphBasicStr = ` -aws_instance.web - aws_security_group.firewall - var.foo -aws_load_balancer.weblb - aws_instance.web -aws_security_group.firewall -openstack_floating_ip.random -provider.aws - openstack_floating_ip.random -var.foo -` - -const testGraphDependsOnStr = ` -aws_instance.db - aws_instance.web -aws_instance.web -` - -const testGraphModulesStr = ` -aws_instance.web - aws_security_group.firewall - module.consul -aws_security_group.firewall -module.consul - aws_security_group.firewall -provider.aws -` - -const testGraphOutputsStr = ` -aws_instance.foo -output.foo - aws_instance.foo -` - -const testGraphProviderAliasStr = ` -provider.aws -provider.aws.bar -provider.aws.foo -`