]> git.immae.eu Git - github/fretlink/terraform-provider-statuscake.git/blob - vendor/github.com/hashicorp/terraform/terraform/node_resource_plan_orphan.go
Upgrade to 0.12
[github/fretlink/terraform-provider-statuscake.git] / vendor / github.com / hashicorp / terraform / terraform / node_resource_plan_orphan.go
1 package terraform
2
3 import (
4 "github.com/hashicorp/terraform/plans"
5 "github.com/hashicorp/terraform/providers"
6 "github.com/hashicorp/terraform/states"
7 )
8
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
13 }
14
15 var (
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)
24 )
25
26 var (
27 _ GraphNodeEvalable = (*NodePlannableResourceInstanceOrphan)(nil)
28 )
29
30 func (n *NodePlannableResourceInstanceOrphan) Name() string {
31 return n.ResourceInstanceAddr().String() + " (orphan)"
32 }
33
34 // GraphNodeEvalable
35 func (n *NodePlannableResourceInstanceOrphan) EvalTree() EvalNode {
36 addr := n.ResourceInstanceAddr()
37
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
44
45 return &EvalSequence{
46 Nodes: []EvalNode{
47 &EvalGetProvider{
48 Addr: n.ResolvedProvider,
49 Output: &provider,
50 Schema: &providerSchema,
51 },
52 &EvalReadState{
53 Addr: addr.Resource,
54 Provider: &provider,
55 ProviderSchema: &providerSchema,
56
57 Output: &state,
58 },
59 &EvalDiffDestroy{
60 Addr: addr.Resource,
61 State: &state,
62 ProviderAddr: n.ResolvedProvider,
63 Output: &change,
64 OutputState: &state, // Will point to a nil state after this complete, signalling destroyed
65 },
66 &EvalCheckPreventDestroy{
67 Addr: addr.Resource,
68 Config: n.Config,
69 Change: &change,
70 },
71 &EvalWriteDiff{
72 Addr: addr.Resource,
73 ProviderSchema: &providerSchema,
74 Change: &change,
75 },
76 &EvalWriteState{
77 Addr: addr.Resource,
78 ProviderAddr: n.ResolvedProvider,
79 ProviderSchema: &providerSchema,
80 State: &state,
81 },
82 },
83 }
84 }