]> git.immae.eu Git - github/fretlink/terraform-provider-statuscake.git/blobdiff - vendor/github.com/hashicorp/terraform/terraform/transform_local.go
Upgrade to 0.12
[github/fretlink/terraform-provider-statuscake.git] / vendor / github.com / hashicorp / terraform / terraform / transform_local.go
index 95ecfc0a440a0625a2e4685e07393c6a6e62cec9..84eb26b2609c3112d6f7d689aa5270d5fb54a17b 100644 (file)
@@ -1,37 +1,45 @@
 package terraform
 
 import (
-       "github.com/hashicorp/terraform/config/module"
+       "github.com/hashicorp/terraform/configs"
 )
 
 // LocalTransformer is a GraphTransformer that adds all the local values
 // from the configuration to the graph.
 type LocalTransformer struct {
-       Module *module.Tree
+       Config *configs.Config
 }
 
 func (t *LocalTransformer) Transform(g *Graph) error {
-       return t.transformModule(g, t.Module)
+       return t.transformModule(g, t.Config)
 }
 
-func (t *LocalTransformer) transformModule(g *Graph, m *module.Tree) error {
-       if m == nil {
+func (t *LocalTransformer) transformModule(g *Graph, c *configs.Config) error {
+       if c == nil {
                // Can't have any locals if there's no config
                return nil
        }
 
-       for _, local := range m.Config().Locals {
+       // Our addressing system distinguishes between modules and module instances,
+       // but we're not yet ready to make that distinction here (since we don't
+       // support "count"/"for_each" on modules) and so we just do a naive
+       // transform of the module path into a module instance path, assuming that
+       // no keys are in use. This should be removed when "count" and "for_each"
+       // are implemented for modules.
+       path := c.Path.UnkeyedInstanceShim()
+
+       for _, local := range c.Module.Locals {
+               addr := path.LocalValue(local.Name)
                node := &NodeLocal{
-                       PathValue: normalizeModulePath(m.Path()),
-                       Config:    local,
+                       Addr:   addr,
+                       Config: local,
                }
-
                g.Add(node)
        }
 
        // Also populate locals for child modules
-       for _, c := range m.Children() {
-               if err := t.transformModule(g, c); err != nil {
+       for _, cc := range c.Children {
+               if err := t.transformModule(g, cc); err != nil {
                        return err
                }
        }