aboutsummaryrefslogtreecommitdiffhomepage
path: root/vendor/github.com/hashicorp/terraform/terraform/transform_import_state.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/hashicorp/terraform/terraform/transform_import_state.go')
-rw-r--r--vendor/github.com/hashicorp/terraform/terraform/transform_import_state.go45
1 files changed, 26 insertions, 19 deletions
diff --git a/vendor/github.com/hashicorp/terraform/terraform/transform_import_state.go b/vendor/github.com/hashicorp/terraform/terraform/transform_import_state.go
index 081df2f..fcbff65 100644
--- a/vendor/github.com/hashicorp/terraform/terraform/transform_import_state.go
+++ b/vendor/github.com/hashicorp/terraform/terraform/transform_import_state.go
@@ -21,9 +21,9 @@ func (t *ImportStateTransformer) Transform(g *Graph) error {
21 } 21 }
22 22
23 nodes = append(nodes, &graphNodeImportState{ 23 nodes = append(nodes, &graphNodeImportState{
24 Addr: addr, 24 Addr: addr,
25 ID: target.ID, 25 ID: target.ID,
26 Provider: target.Provider, 26 ProviderName: target.Provider,
27 }) 27 })
28 } 28 }
29 29
@@ -36,9 +36,10 @@ func (t *ImportStateTransformer) Transform(g *Graph) error {
36} 36}
37 37
38type graphNodeImportState struct { 38type graphNodeImportState struct {
39 Addr *ResourceAddress // Addr is the resource address to import to 39 Addr *ResourceAddress // Addr is the resource address to import to
40 ID string // ID is the ID to import as 40 ID string // ID is the ID to import as
41 Provider string // Provider string 41 ProviderName string // Provider string
42 ResolvedProvider string // provider node address
42 43
43 states []*InstanceState 44 states []*InstanceState
44} 45}
@@ -47,8 +48,12 @@ func (n *graphNodeImportState) Name() string {
47 return fmt.Sprintf("%s (import id: %s)", n.Addr, n.ID) 48 return fmt.Sprintf("%s (import id: %s)", n.Addr, n.ID)
48} 49}
49 50
50func (n *graphNodeImportState) ProvidedBy() []string { 51func (n *graphNodeImportState) ProvidedBy() string {
51 return []string{resourceProvider(n.Addr.Type, n.Provider)} 52 return resourceProvider(n.Addr.Type, n.ProviderName)
53}
54
55func (n *graphNodeImportState) SetProvider(p string) {
56 n.ResolvedProvider = p
52} 57}
53 58
54// GraphNodeSubPath 59// GraphNodeSubPath
@@ -72,7 +77,7 @@ func (n *graphNodeImportState) EvalTree() EvalNode {
72 return &EvalSequence{ 77 return &EvalSequence{
73 Nodes: []EvalNode{ 78 Nodes: []EvalNode{
74 &EvalGetProvider{ 79 &EvalGetProvider{
75 Name: n.ProvidedBy()[0], 80 Name: n.ResolvedProvider,
76 Output: &provider, 81 Output: &provider,
77 }, 82 },
78 &EvalImportState{ 83 &EvalImportState{
@@ -149,10 +154,11 @@ func (n *graphNodeImportState) DynamicExpand(ctx EvalContext) (*Graph, error) {
149 // is safe. 154 // is safe.
150 for i, state := range n.states { 155 for i, state := range n.states {
151 g.Add(&graphNodeImportStateSub{ 156 g.Add(&graphNodeImportStateSub{
152 Target: addrs[i], 157 Target: addrs[i],
153 Path_: n.Path(), 158 Path_: n.Path(),
154 State: state, 159 State: state,
155 Provider: n.Provider, 160 ProviderName: n.ProviderName,
161 ResolvedProvider: n.ResolvedProvider,
156 }) 162 })
157 } 163 }
158 164
@@ -170,10 +176,11 @@ func (n *graphNodeImportState) DynamicExpand(ctx EvalContext) (*Graph, error) {
170// and is part of the subgraph. This node is responsible for refreshing 176// and is part of the subgraph. This node is responsible for refreshing
171// and adding a resource to the state once it is imported. 177// and adding a resource to the state once it is imported.
172type graphNodeImportStateSub struct { 178type graphNodeImportStateSub struct {
173 Target *ResourceAddress 179 Target *ResourceAddress
174 State *InstanceState 180 State *InstanceState
175 Path_ []string 181 Path_ []string
176 Provider string 182 ProviderName string
183 ResolvedProvider string
177} 184}
178 185
179func (n *graphNodeImportStateSub) Name() string { 186func (n *graphNodeImportStateSub) Name() string {
@@ -216,7 +223,7 @@ func (n *graphNodeImportStateSub) EvalTree() EvalNode {
216 return &EvalSequence{ 223 return &EvalSequence{
217 Nodes: []EvalNode{ 224 Nodes: []EvalNode{
218 &EvalGetProvider{ 225 &EvalGetProvider{
219 Name: resourceProvider(info.Type, n.Provider), 226 Name: n.ResolvedProvider,
220 Output: &provider, 227 Output: &provider,
221 }, 228 },
222 &EvalRefresh{ 229 &EvalRefresh{
@@ -233,7 +240,7 @@ func (n *graphNodeImportStateSub) EvalTree() EvalNode {
233 &EvalWriteState{ 240 &EvalWriteState{
234 Name: key.String(), 241 Name: key.String(),
235 ResourceType: info.Type, 242 ResourceType: info.Type,
236 Provider: resourceProvider(info.Type, n.Provider), 243 Provider: n.ResolvedProvider,
237 State: &state, 244 State: &state,
238 }, 245 },
239 }, 246 },