]>
Commit | Line | Data |
---|---|---|
bae9f6d2 JC |
1 | package terraform |
2 | ||
107c1cdb ND |
3 | import ( |
4 | "sync" | |
5 | ||
6 | "github.com/zclconf/go-cty/cty" | |
7 | ||
8 | "github.com/hashicorp/terraform/addrs" | |
9 | "github.com/hashicorp/terraform/plans" | |
10 | "github.com/hashicorp/terraform/providers" | |
11 | "github.com/hashicorp/terraform/states" | |
12 | ) | |
bae9f6d2 JC |
13 | |
14 | // MockHook is an implementation of Hook that can be used for tests. | |
15 | // It records all of its function calls. | |
16 | type MockHook struct { | |
17 | sync.Mutex | |
18 | ||
107c1cdb ND |
19 | PreApplyCalled bool |
20 | PreApplyAddr addrs.AbsResourceInstance | |
21 | PreApplyGen states.Generation | |
22 | PreApplyAction plans.Action | |
23 | PreApplyPriorState cty.Value | |
24 | PreApplyPlannedState cty.Value | |
25 | PreApplyReturn HookAction | |
26 | PreApplyError error | |
bae9f6d2 JC |
27 | |
28 | PostApplyCalled bool | |
107c1cdb ND |
29 | PostApplyAddr addrs.AbsResourceInstance |
30 | PostApplyGen states.Generation | |
31 | PostApplyNewState cty.Value | |
bae9f6d2 JC |
32 | PostApplyError error |
33 | PostApplyReturn HookAction | |
34 | PostApplyReturnError error | |
107c1cdb ND |
35 | PostApplyFn func(addrs.AbsResourceInstance, states.Generation, cty.Value, error) (HookAction, error) |
36 | ||
37 | PreDiffCalled bool | |
38 | PreDiffAddr addrs.AbsResourceInstance | |
39 | PreDiffGen states.Generation | |
40 | PreDiffPriorState cty.Value | |
41 | PreDiffProposedState cty.Value | |
42 | PreDiffReturn HookAction | |
43 | PreDiffError error | |
44 | ||
45 | PostDiffCalled bool | |
46 | PostDiffAddr addrs.AbsResourceInstance | |
47 | PostDiffGen states.Generation | |
48 | PostDiffAction plans.Action | |
49 | PostDiffPriorState cty.Value | |
50 | PostDiffPlannedState cty.Value | |
51 | PostDiffReturn HookAction | |
52 | PostDiffError error | |
53 | ||
54 | PreProvisionInstanceCalled bool | |
55 | PreProvisionInstanceAddr addrs.AbsResourceInstance | |
56 | PreProvisionInstanceState cty.Value | |
57 | PreProvisionInstanceReturn HookAction | |
58 | PreProvisionInstanceError error | |
59 | ||
60 | PostProvisionInstanceCalled bool | |
61 | PostProvisionInstanceAddr addrs.AbsResourceInstance | |
62 | PostProvisionInstanceState cty.Value | |
63 | PostProvisionInstanceReturn HookAction | |
64 | PostProvisionInstanceError error | |
65 | ||
66 | PreProvisionInstanceStepCalled bool | |
67 | PreProvisionInstanceStepAddr addrs.AbsResourceInstance | |
68 | PreProvisionInstanceStepProvisionerType string | |
69 | PreProvisionInstanceStepReturn HookAction | |
70 | PreProvisionInstanceStepError error | |
71 | ||
72 | PostProvisionInstanceStepCalled bool | |
73 | PostProvisionInstanceStepAddr addrs.AbsResourceInstance | |
74 | PostProvisionInstanceStepProvisionerType string | |
75 | PostProvisionInstanceStepErrorArg error | |
76 | PostProvisionInstanceStepReturn HookAction | |
77 | PostProvisionInstanceStepError error | |
78 | ||
79 | ProvisionOutputCalled bool | |
80 | ProvisionOutputAddr addrs.AbsResourceInstance | |
81 | ProvisionOutputProvisionerType string | |
82 | ProvisionOutputMessage string | |
83 | ||
84 | PreRefreshCalled bool | |
85 | PreRefreshAddr addrs.AbsResourceInstance | |
86 | PreRefreshGen states.Generation | |
87 | PreRefreshPriorState cty.Value | |
88 | PreRefreshReturn HookAction | |
89 | PreRefreshError error | |
90 | ||
91 | PostRefreshCalled bool | |
92 | PostRefreshAddr addrs.AbsResourceInstance | |
93 | PostRefreshGen states.Generation | |
94 | PostRefreshPriorState cty.Value | |
95 | PostRefreshNewState cty.Value | |
96 | PostRefreshReturn HookAction | |
97 | PostRefreshError error | |
bae9f6d2 JC |
98 | |
99 | PreImportStateCalled bool | |
107c1cdb ND |
100 | PreImportStateAddr addrs.AbsResourceInstance |
101 | PreImportStateID string | |
bae9f6d2 JC |
102 | PreImportStateReturn HookAction |
103 | PreImportStateError error | |
104 | ||
107c1cdb ND |
105 | PostImportStateCalled bool |
106 | PostImportStateAddr addrs.AbsResourceInstance | |
107 | PostImportStateNewStates []providers.ImportedResource | |
108 | PostImportStateReturn HookAction | |
109 | PostImportStateError error | |
bae9f6d2 JC |
110 | |
111 | PostStateUpdateCalled bool | |
107c1cdb | 112 | PostStateUpdateState *states.State |
bae9f6d2 JC |
113 | PostStateUpdateReturn HookAction |
114 | PostStateUpdateError error | |
115 | } | |
116 | ||
107c1cdb ND |
117 | var _ Hook = (*MockHook)(nil) |
118 | ||
119 | func (h *MockHook) PreApply(addr addrs.AbsResourceInstance, gen states.Generation, action plans.Action, priorState, plannedNewState cty.Value) (HookAction, error) { | |
bae9f6d2 JC |
120 | h.Lock() |
121 | defer h.Unlock() | |
122 | ||
123 | h.PreApplyCalled = true | |
107c1cdb ND |
124 | h.PreApplyAddr = addr |
125 | h.PreApplyGen = gen | |
126 | h.PreApplyAction = action | |
127 | h.PreApplyPriorState = priorState | |
128 | h.PreApplyPlannedState = plannedNewState | |
bae9f6d2 JC |
129 | return h.PreApplyReturn, h.PreApplyError |
130 | } | |
131 | ||
107c1cdb | 132 | func (h *MockHook) PostApply(addr addrs.AbsResourceInstance, gen states.Generation, newState cty.Value, err error) (HookAction, error) { |
bae9f6d2 JC |
133 | h.Lock() |
134 | defer h.Unlock() | |
135 | ||
136 | h.PostApplyCalled = true | |
107c1cdb ND |
137 | h.PostApplyAddr = addr |
138 | h.PostApplyGen = gen | |
139 | h.PostApplyNewState = newState | |
140 | h.PostApplyError = err | |
bae9f6d2 JC |
141 | |
142 | if h.PostApplyFn != nil { | |
107c1cdb | 143 | return h.PostApplyFn(addr, gen, newState, err) |
bae9f6d2 JC |
144 | } |
145 | ||
146 | return h.PostApplyReturn, h.PostApplyReturnError | |
147 | } | |
148 | ||
107c1cdb | 149 | func (h *MockHook) PreDiff(addr addrs.AbsResourceInstance, gen states.Generation, priorState, proposedNewState cty.Value) (HookAction, error) { |
bae9f6d2 JC |
150 | h.Lock() |
151 | defer h.Unlock() | |
152 | ||
153 | h.PreDiffCalled = true | |
107c1cdb ND |
154 | h.PreDiffAddr = addr |
155 | h.PreDiffGen = gen | |
156 | h.PreDiffPriorState = priorState | |
157 | h.PreDiffProposedState = proposedNewState | |
bae9f6d2 JC |
158 | return h.PreDiffReturn, h.PreDiffError |
159 | } | |
160 | ||
107c1cdb | 161 | func (h *MockHook) PostDiff(addr addrs.AbsResourceInstance, gen states.Generation, action plans.Action, priorState, plannedNewState cty.Value) (HookAction, error) { |
bae9f6d2 JC |
162 | h.Lock() |
163 | defer h.Unlock() | |
164 | ||
165 | h.PostDiffCalled = true | |
107c1cdb ND |
166 | h.PostDiffAddr = addr |
167 | h.PostDiffGen = gen | |
168 | h.PostDiffAction = action | |
169 | h.PostDiffPriorState = priorState | |
170 | h.PostDiffPlannedState = plannedNewState | |
bae9f6d2 JC |
171 | return h.PostDiffReturn, h.PostDiffError |
172 | } | |
173 | ||
107c1cdb | 174 | func (h *MockHook) PreProvisionInstance(addr addrs.AbsResourceInstance, state cty.Value) (HookAction, error) { |
bae9f6d2 JC |
175 | h.Lock() |
176 | defer h.Unlock() | |
177 | ||
107c1cdb ND |
178 | h.PreProvisionInstanceCalled = true |
179 | h.PreProvisionInstanceAddr = addr | |
180 | h.PreProvisionInstanceState = state | |
181 | return h.PreProvisionInstanceReturn, h.PreProvisionInstanceError | |
bae9f6d2 JC |
182 | } |
183 | ||
107c1cdb | 184 | func (h *MockHook) PostProvisionInstance(addr addrs.AbsResourceInstance, state cty.Value) (HookAction, error) { |
bae9f6d2 JC |
185 | h.Lock() |
186 | defer h.Unlock() | |
187 | ||
107c1cdb ND |
188 | h.PostProvisionInstanceCalled = true |
189 | h.PostProvisionInstanceAddr = addr | |
190 | h.PostProvisionInstanceState = state | |
191 | return h.PostProvisionInstanceReturn, h.PostProvisionInstanceError | |
bae9f6d2 JC |
192 | } |
193 | ||
107c1cdb | 194 | func (h *MockHook) PreProvisionInstanceStep(addr addrs.AbsResourceInstance, typeName string) (HookAction, error) { |
bae9f6d2 JC |
195 | h.Lock() |
196 | defer h.Unlock() | |
197 | ||
107c1cdb ND |
198 | h.PreProvisionInstanceStepCalled = true |
199 | h.PreProvisionInstanceStepAddr = addr | |
200 | h.PreProvisionInstanceStepProvisionerType = typeName | |
201 | return h.PreProvisionInstanceStepReturn, h.PreProvisionInstanceStepError | |
bae9f6d2 JC |
202 | } |
203 | ||
107c1cdb | 204 | func (h *MockHook) PostProvisionInstanceStep(addr addrs.AbsResourceInstance, typeName string, err error) (HookAction, error) { |
bae9f6d2 JC |
205 | h.Lock() |
206 | defer h.Unlock() | |
207 | ||
107c1cdb ND |
208 | h.PostProvisionInstanceStepCalled = true |
209 | h.PostProvisionInstanceStepAddr = addr | |
210 | h.PostProvisionInstanceStepProvisionerType = typeName | |
211 | h.PostProvisionInstanceStepErrorArg = err | |
212 | return h.PostProvisionInstanceStepReturn, h.PostProvisionInstanceStepError | |
bae9f6d2 JC |
213 | } |
214 | ||
107c1cdb | 215 | func (h *MockHook) ProvisionOutput(addr addrs.AbsResourceInstance, typeName string, line string) { |
bae9f6d2 JC |
216 | h.Lock() |
217 | defer h.Unlock() | |
218 | ||
219 | h.ProvisionOutputCalled = true | |
107c1cdb ND |
220 | h.ProvisionOutputAddr = addr |
221 | h.ProvisionOutputProvisionerType = typeName | |
222 | h.ProvisionOutputMessage = line | |
bae9f6d2 JC |
223 | } |
224 | ||
107c1cdb | 225 | func (h *MockHook) PreRefresh(addr addrs.AbsResourceInstance, gen states.Generation, priorState cty.Value) (HookAction, error) { |
bae9f6d2 JC |
226 | h.Lock() |
227 | defer h.Unlock() | |
228 | ||
229 | h.PreRefreshCalled = true | |
107c1cdb ND |
230 | h.PreRefreshAddr = addr |
231 | h.PreRefreshGen = gen | |
232 | h.PreRefreshPriorState = priorState | |
bae9f6d2 JC |
233 | return h.PreRefreshReturn, h.PreRefreshError |
234 | } | |
235 | ||
107c1cdb | 236 | func (h *MockHook) PostRefresh(addr addrs.AbsResourceInstance, gen states.Generation, priorState cty.Value, newState cty.Value) (HookAction, error) { |
bae9f6d2 JC |
237 | h.Lock() |
238 | defer h.Unlock() | |
239 | ||
240 | h.PostRefreshCalled = true | |
107c1cdb ND |
241 | h.PostRefreshAddr = addr |
242 | h.PostRefreshPriorState = priorState | |
243 | h.PostRefreshNewState = newState | |
bae9f6d2 JC |
244 | return h.PostRefreshReturn, h.PostRefreshError |
245 | } | |
246 | ||
107c1cdb | 247 | func (h *MockHook) PreImportState(addr addrs.AbsResourceInstance, importID string) (HookAction, error) { |
bae9f6d2 JC |
248 | h.Lock() |
249 | defer h.Unlock() | |
250 | ||
251 | h.PreImportStateCalled = true | |
107c1cdb ND |
252 | h.PreImportStateAddr = addr |
253 | h.PreImportStateID = importID | |
bae9f6d2 JC |
254 | return h.PreImportStateReturn, h.PreImportStateError |
255 | } | |
256 | ||
107c1cdb | 257 | func (h *MockHook) PostImportState(addr addrs.AbsResourceInstance, imported []providers.ImportedResource) (HookAction, error) { |
bae9f6d2 JC |
258 | h.Lock() |
259 | defer h.Unlock() | |
260 | ||
261 | h.PostImportStateCalled = true | |
107c1cdb ND |
262 | h.PostImportStateAddr = addr |
263 | h.PostImportStateNewStates = imported | |
bae9f6d2 JC |
264 | return h.PostImportStateReturn, h.PostImportStateError |
265 | } | |
266 | ||
107c1cdb | 267 | func (h *MockHook) PostStateUpdate(new *states.State) (HookAction, error) { |
bae9f6d2 JC |
268 | h.Lock() |
269 | defer h.Unlock() | |
270 | ||
271 | h.PostStateUpdateCalled = true | |
107c1cdb | 272 | h.PostStateUpdateState = new |
bae9f6d2 JC |
273 | return h.PostStateUpdateReturn, h.PostStateUpdateError |
274 | } |