]> git.immae.eu Git - github/fretlink/terraform-provider-statuscake.git/blame - 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
CommitLineData
bae9f6d2
JC
1package terraform
2
107c1cdb
ND
3import (
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":
bae9f6d2 10// it is ready to be applied and is represented by a diff.
107c1cdb
ND
11type NodePlannableResourceInstanceOrphan struct {
12 *NodeAbstractResourceInstance
bae9f6d2
JC
13}
14
107c1cdb
ND
15var (
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)
bae9f6d2 25
107c1cdb
ND
26var (
27 _ GraphNodeEvalable = (*NodePlannableResourceInstanceOrphan)(nil)
28)
bae9f6d2 29
107c1cdb
ND
30func (n *NodePlannableResourceInstanceOrphan) Name() string {
31 return n.ResourceInstanceAddr().String() + " (orphan)"
32}
bae9f6d2 33
107c1cdb
ND
34// GraphNodeEvalable
35func (n *NodePlannableResourceInstanceOrphan) EvalTree() EvalNode {
36 addr := n.ResourceInstanceAddr()
bae9f6d2
JC
37
38 // Declare a bunch of variables that are used for state during
39 // evaluation. Most of this are written to by-address below.
107c1cdb
ND
40 var change *plans.ResourceInstanceChange
41 var state *states.ResourceInstanceObject
42 var provider providers.Interface
43 var providerSchema *ProviderSchema
bae9f6d2
JC
44
45 return &EvalSequence{
46 Nodes: []EvalNode{
107c1cdb
ND
47 &EvalGetProvider{
48 Addr: n.ResolvedProvider,
49 Output: &provider,
50 Schema: &providerSchema,
51 },
bae9f6d2 52 &EvalReadState{
107c1cdb
ND
53 Addr: addr.Resource,
54 Provider: &provider,
55 ProviderSchema: &providerSchema,
56
bae9f6d2
JC
57 Output: &state,
58 },
59 &EvalDiffDestroy{
107c1cdb
ND
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
bae9f6d2
JC
65 },
66 &EvalCheckPreventDestroy{
107c1cdb
ND
67 Addr: addr.Resource,
68 Config: n.Config,
69 Change: &change,
bae9f6d2
JC
70 },
71 &EvalWriteDiff{
107c1cdb
ND
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,
bae9f6d2
JC
81 },
82 },
83 }
84}