4 "github.com/hashicorp/terraform/plans"
5 "github.com/hashicorp/terraform/providers"
6 "github.com/hashicorp/terraform/states"
9 // NodePlannableResourceInstanceOrphan represents a resource that is "applyable":
10 // it is ready to be applied and is represented by a diff.
11 type NodePlannableResourceInstanceOrphan struct {
12 *NodeAbstractResourceInstance
16 _ GraphNodeSubPath = (*NodePlannableResourceInstanceOrphan)(nil)
17 _ GraphNodeReferenceable = (*NodePlannableResourceInstanceOrphan)(nil)
18 _ GraphNodeReferencer = (*NodePlannableResourceInstanceOrphan)(nil)
19 _ GraphNodeResource = (*NodePlannableResourceInstanceOrphan)(nil)
20 _ GraphNodeResourceInstance = (*NodePlannableResourceInstanceOrphan)(nil)
21 _ GraphNodeAttachResourceConfig = (*NodePlannableResourceInstanceOrphan)(nil)
22 _ GraphNodeAttachResourceState = (*NodePlannableResourceInstanceOrphan)(nil)
23 _ GraphNodeEvalable = (*NodePlannableResourceInstanceOrphan)(nil)
27 _ GraphNodeEvalable = (*NodePlannableResourceInstanceOrphan)(nil)
30 func (n *NodePlannableResourceInstanceOrphan) Name() string {
31 return n.ResourceInstanceAddr().String() + " (orphan)"
35 func (n *NodePlannableResourceInstanceOrphan) EvalTree() EvalNode {
36 addr := n.ResourceInstanceAddr()
38 // Declare a bunch of variables that are used for state during
39 // evaluation. Most of this are written to by-address below.
40 var change *plans.ResourceInstanceChange
41 var state *states.ResourceInstanceObject
42 var provider providers.Interface
43 var providerSchema *ProviderSchema
48 Addr: n.ResolvedProvider,
50 Schema: &providerSchema,
55 ProviderSchema: &providerSchema,
62 ProviderAddr: n.ResolvedProvider,
64 OutputState: &state, // Will point to a nil state after this complete, signalling destroyed
66 &EvalCheckPreventDestroy{
73 ProviderSchema: &providerSchema,
78 ProviderAddr: n.ResolvedProvider,
79 ProviderSchema: &providerSchema,