}
nodes = append(nodes, &graphNodeImportState{
- Addr: addr,
- ID: target.ID,
- Provider: target.Provider,
+ Addr: addr,
+ ID: target.ID,
+ ProviderName: target.Provider,
})
}
}
type graphNodeImportState struct {
- Addr *ResourceAddress // Addr is the resource address to import to
- ID string // ID is the ID to import as
- Provider string // Provider string
+ Addr *ResourceAddress // Addr is the resource address to import to
+ ID string // ID is the ID to import as
+ ProviderName string // Provider string
+ ResolvedProvider string // provider node address
states []*InstanceState
}
return fmt.Sprintf("%s (import id: %s)", n.Addr, n.ID)
}
-func (n *graphNodeImportState) ProvidedBy() []string {
- return []string{resourceProvider(n.Addr.Type, n.Provider)}
+func (n *graphNodeImportState) ProvidedBy() string {
+ return resourceProvider(n.Addr.Type, n.ProviderName)
+}
+
+func (n *graphNodeImportState) SetProvider(p string) {
+ n.ResolvedProvider = p
}
// GraphNodeSubPath
return &EvalSequence{
Nodes: []EvalNode{
&EvalGetProvider{
- Name: n.ProvidedBy()[0],
+ Name: n.ResolvedProvider,
Output: &provider,
},
&EvalImportState{
// is safe.
for i, state := range n.states {
g.Add(&graphNodeImportStateSub{
- Target: addrs[i],
- Path_: n.Path(),
- State: state,
- Provider: n.Provider,
+ Target: addrs[i],
+ Path_: n.Path(),
+ State: state,
+ ProviderName: n.ProviderName,
+ ResolvedProvider: n.ResolvedProvider,
})
}
// and is part of the subgraph. This node is responsible for refreshing
// and adding a resource to the state once it is imported.
type graphNodeImportStateSub struct {
- Target *ResourceAddress
- State *InstanceState
- Path_ []string
- Provider string
+ Target *ResourceAddress
+ State *InstanceState
+ Path_ []string
+ ProviderName string
+ ResolvedProvider string
}
func (n *graphNodeImportStateSub) Name() string {
return &EvalSequence{
Nodes: []EvalNode{
&EvalGetProvider{
- Name: resourceProvider(info.Type, n.Provider),
+ Name: n.ResolvedProvider,
Output: &provider,
},
&EvalRefresh{
&EvalWriteState{
Name: key.String(),
ResourceType: info.Type,
- Provider: resourceProvider(info.Type, n.Provider),
+ Provider: n.ResolvedProvider,
State: &state,
},
},