]> git.immae.eu Git - github/fretlink/terraform-provider-statuscake.git/blobdiff - vendor/github.com/hashicorp/terraform/terraform/evaltree_provider.go
Upgrade to 0.12
[github/fretlink/terraform-provider-statuscake.git] / vendor / github.com / hashicorp / terraform / terraform / evaltree_provider.go
index 0c3da48f0d9d003993cb1912fb9f6dfffc7cc15f..6b4df67aafa7cfdd093a0504fe9f30dd9c827368 100644 (file)
@@ -1,48 +1,34 @@
 package terraform
 
 import (
-       "strings"
-
-       "github.com/hashicorp/terraform/config"
+       "github.com/hashicorp/terraform/addrs"
+       "github.com/hashicorp/terraform/configs"
+       "github.com/hashicorp/terraform/providers"
 )
 
 // ProviderEvalTree returns the evaluation tree for initializing and
 // configuring providers.
-func ProviderEvalTree(n *NodeApplyableProvider, config *config.ProviderConfig) EvalNode {
-       var provider ResourceProvider
-       var resourceConfig *ResourceConfig
+func ProviderEvalTree(n *NodeApplyableProvider, config *configs.Provider) EvalNode {
+       var provider providers.Interface
 
-       typeName := strings.SplitN(n.NameValue, ".", 2)[0]
+       addr := n.Addr
+       relAddr := addr.ProviderConfig
 
        seq := make([]EvalNode, 0, 5)
        seq = append(seq, &EvalInitProvider{
-               TypeName: typeName,
-               Name:     n.Name(),
+               TypeName: relAddr.Type,
+               Addr:     addr.ProviderConfig,
        })
 
        // Input stuff
        seq = append(seq, &EvalOpFilter{
-               Ops: []walkOperation{walkInput, walkImport},
+               Ops: []walkOperation{walkImport},
                Node: &EvalSequence{
                        Nodes: []EvalNode{
                                &EvalGetProvider{
-                                       Name:   n.Name(),
+                                       Addr:   addr,
                                        Output: &provider,
                                },
-                               &EvalInterpolateProvider{
-                                       Config: config,
-                                       Output: &resourceConfig,
-                               },
-                               &EvalBuildProviderConfig{
-                                       Provider: n.NameValue,
-                                       Config:   &resourceConfig,
-                                       Output:   &resourceConfig,
-                               },
-                               &EvalInputProvider{
-                                       Name:     n.NameValue,
-                                       Provider: &provider,
-                                       Config:   &resourceConfig,
-                               },
                        },
                },
        })
@@ -52,21 +38,13 @@ func ProviderEvalTree(n *NodeApplyableProvider, config *config.ProviderConfig) E
                Node: &EvalSequence{
                        Nodes: []EvalNode{
                                &EvalGetProvider{
-                                       Name:   n.Name(),
+                                       Addr:   addr,
                                        Output: &provider,
                                },
-                               &EvalInterpolateProvider{
-                                       Config: config,
-                                       Output: &resourceConfig,
-                               },
-                               &EvalBuildProviderConfig{
-                                       Provider: n.NameValue,
-                                       Config:   &resourceConfig,
-                                       Output:   &resourceConfig,
-                               },
                                &EvalValidateProvider{
+                                       Addr:     relAddr,
                                        Provider: &provider,
-                                       Config:   &resourceConfig,
+                                       Config:   config,
                                },
                        },
                },
@@ -78,18 +56,9 @@ func ProviderEvalTree(n *NodeApplyableProvider, config *config.ProviderConfig) E
                Node: &EvalSequence{
                        Nodes: []EvalNode{
                                &EvalGetProvider{
-                                       Name:   n.Name(),
+                                       Addr:   addr,
                                        Output: &provider,
                                },
-                               &EvalInterpolateProvider{
-                                       Config: config,
-                                       Output: &resourceConfig,
-                               },
-                               &EvalBuildProviderConfig{
-                                       Provider: n.NameValue,
-                                       Config:   &resourceConfig,
-                                       Output:   &resourceConfig,
-                               },
                        },
                },
        })
@@ -101,8 +70,9 @@ func ProviderEvalTree(n *NodeApplyableProvider, config *config.ProviderConfig) E
                Node: &EvalSequence{
                        Nodes: []EvalNode{
                                &EvalConfigProvider{
-                                       Provider: n.Name(),
-                                       Config:   &resourceConfig,
+                                       Addr:     relAddr,
+                                       Provider: &provider,
+                                       Config:   config,
                                },
                        },
                },
@@ -113,6 +83,6 @@ func ProviderEvalTree(n *NodeApplyableProvider, config *config.ProviderConfig) E
 
 // CloseProviderEvalTree returns the evaluation tree for closing
 // provider connections that aren't needed anymore.
-func CloseProviderEvalTree(n string) EvalNode {
-       return &EvalCloseProvider{Name: n}
+func CloseProviderEvalTree(addr addrs.AbsProviderConfig) EvalNode {
+       return &EvalCloseProvider{Addr: addr.ProviderConfig}
 }