mirror of
https://github.com/opentofu/opentofu.git
synced 2024-12-30 10:47:14 -06:00
b005a83143
Fixes #6327 Deposed instances weren't calling PostApply which was causing the counts for what happened during `apply` to be wrong. This was a simple fix to ensure we call that hook.
244 lines
6.0 KiB
Go
244 lines
6.0 KiB
Go
package terraform
|
|
|
|
import "sync"
|
|
|
|
// MockHook is an implementation of Hook that can be used for tests.
|
|
// It records all of its function calls.
|
|
type MockHook struct {
|
|
sync.Mutex
|
|
|
|
PreApplyCalled bool
|
|
PreApplyInfo *InstanceInfo
|
|
PreApplyDiff *InstanceDiff
|
|
PreApplyState *InstanceState
|
|
PreApplyReturn HookAction
|
|
PreApplyError error
|
|
|
|
PostApplyCalled bool
|
|
PostApplyInfo *InstanceInfo
|
|
PostApplyState *InstanceState
|
|
PostApplyError error
|
|
PostApplyReturn HookAction
|
|
PostApplyReturnError error
|
|
PostApplyFn func(*InstanceInfo, *InstanceState, error) (HookAction, error)
|
|
|
|
PreDiffCalled bool
|
|
PreDiffInfo *InstanceInfo
|
|
PreDiffState *InstanceState
|
|
PreDiffReturn HookAction
|
|
PreDiffError error
|
|
|
|
PostDiffCalled bool
|
|
PostDiffInfo *InstanceInfo
|
|
PostDiffDiff *InstanceDiff
|
|
PostDiffReturn HookAction
|
|
PostDiffError error
|
|
|
|
PreProvisionResourceCalled bool
|
|
PreProvisionResourceInfo *InstanceInfo
|
|
PreProvisionInstanceState *InstanceState
|
|
PreProvisionResourceReturn HookAction
|
|
PreProvisionResourceError error
|
|
|
|
PostProvisionResourceCalled bool
|
|
PostProvisionResourceInfo *InstanceInfo
|
|
PostProvisionInstanceState *InstanceState
|
|
PostProvisionResourceReturn HookAction
|
|
PostProvisionResourceError error
|
|
|
|
PreProvisionCalled bool
|
|
PreProvisionInfo *InstanceInfo
|
|
PreProvisionProvisionerId string
|
|
PreProvisionReturn HookAction
|
|
PreProvisionError error
|
|
|
|
PostProvisionCalled bool
|
|
PostProvisionInfo *InstanceInfo
|
|
PostProvisionProvisionerId string
|
|
PostProvisionReturn HookAction
|
|
PostProvisionError error
|
|
|
|
ProvisionOutputCalled bool
|
|
ProvisionOutputInfo *InstanceInfo
|
|
ProvisionOutputProvisionerId string
|
|
ProvisionOutputMessage string
|
|
|
|
PostRefreshCalled bool
|
|
PostRefreshInfo *InstanceInfo
|
|
PostRefreshState *InstanceState
|
|
PostRefreshReturn HookAction
|
|
PostRefreshError error
|
|
|
|
PreRefreshCalled bool
|
|
PreRefreshInfo *InstanceInfo
|
|
PreRefreshState *InstanceState
|
|
PreRefreshReturn HookAction
|
|
PreRefreshError error
|
|
|
|
PreImportStateCalled bool
|
|
PreImportStateInfo *InstanceInfo
|
|
PreImportStateId string
|
|
PreImportStateReturn HookAction
|
|
PreImportStateError error
|
|
|
|
PostImportStateCalled bool
|
|
PostImportStateInfo *InstanceInfo
|
|
PostImportStateState []*InstanceState
|
|
PostImportStateReturn HookAction
|
|
PostImportStateError error
|
|
|
|
PostStateUpdateCalled bool
|
|
PostStateUpdateState *State
|
|
PostStateUpdateReturn HookAction
|
|
PostStateUpdateError error
|
|
}
|
|
|
|
func (h *MockHook) PreApply(n *InstanceInfo, s *InstanceState, d *InstanceDiff) (HookAction, error) {
|
|
h.Lock()
|
|
defer h.Unlock()
|
|
|
|
h.PreApplyCalled = true
|
|
h.PreApplyInfo = n
|
|
h.PreApplyDiff = d
|
|
h.PreApplyState = s
|
|
return h.PreApplyReturn, h.PreApplyError
|
|
}
|
|
|
|
func (h *MockHook) PostApply(n *InstanceInfo, s *InstanceState, e error) (HookAction, error) {
|
|
h.Lock()
|
|
defer h.Unlock()
|
|
|
|
h.PostApplyCalled = true
|
|
h.PostApplyInfo = n
|
|
h.PostApplyState = s
|
|
h.PostApplyError = e
|
|
|
|
if h.PostApplyFn != nil {
|
|
return h.PostApplyFn(n, s, e)
|
|
}
|
|
|
|
return h.PostApplyReturn, h.PostApplyReturnError
|
|
}
|
|
|
|
func (h *MockHook) PreDiff(n *InstanceInfo, s *InstanceState) (HookAction, error) {
|
|
h.Lock()
|
|
defer h.Unlock()
|
|
|
|
h.PreDiffCalled = true
|
|
h.PreDiffInfo = n
|
|
h.PreDiffState = s
|
|
return h.PreDiffReturn, h.PreDiffError
|
|
}
|
|
|
|
func (h *MockHook) PostDiff(n *InstanceInfo, d *InstanceDiff) (HookAction, error) {
|
|
h.Lock()
|
|
defer h.Unlock()
|
|
|
|
h.PostDiffCalled = true
|
|
h.PostDiffInfo = n
|
|
h.PostDiffDiff = d
|
|
return h.PostDiffReturn, h.PostDiffError
|
|
}
|
|
|
|
func (h *MockHook) PreProvisionResource(n *InstanceInfo, s *InstanceState) (HookAction, error) {
|
|
h.Lock()
|
|
defer h.Unlock()
|
|
|
|
h.PreProvisionResourceCalled = true
|
|
h.PreProvisionResourceInfo = n
|
|
h.PreProvisionInstanceState = s
|
|
return h.PreProvisionResourceReturn, h.PreProvisionResourceError
|
|
}
|
|
|
|
func (h *MockHook) PostProvisionResource(n *InstanceInfo, s *InstanceState) (HookAction, error) {
|
|
h.Lock()
|
|
defer h.Unlock()
|
|
|
|
h.PostProvisionResourceCalled = true
|
|
h.PostProvisionResourceInfo = n
|
|
h.PostProvisionInstanceState = s
|
|
return h.PostProvisionResourceReturn, h.PostProvisionResourceError
|
|
}
|
|
|
|
func (h *MockHook) PreProvision(n *InstanceInfo, provId string) (HookAction, error) {
|
|
h.Lock()
|
|
defer h.Unlock()
|
|
|
|
h.PreProvisionCalled = true
|
|
h.PreProvisionInfo = n
|
|
h.PreProvisionProvisionerId = provId
|
|
return h.PreProvisionReturn, h.PreProvisionError
|
|
}
|
|
|
|
func (h *MockHook) PostProvision(n *InstanceInfo, provId string) (HookAction, error) {
|
|
h.Lock()
|
|
defer h.Unlock()
|
|
|
|
h.PostProvisionCalled = true
|
|
h.PostProvisionInfo = n
|
|
h.PostProvisionProvisionerId = provId
|
|
return h.PostProvisionReturn, h.PostProvisionError
|
|
}
|
|
|
|
func (h *MockHook) ProvisionOutput(
|
|
n *InstanceInfo,
|
|
provId string,
|
|
msg string) {
|
|
h.Lock()
|
|
defer h.Unlock()
|
|
|
|
h.ProvisionOutputCalled = true
|
|
h.ProvisionOutputInfo = n
|
|
h.ProvisionOutputProvisionerId = provId
|
|
h.ProvisionOutputMessage = msg
|
|
}
|
|
|
|
func (h *MockHook) PreRefresh(n *InstanceInfo, s *InstanceState) (HookAction, error) {
|
|
h.Lock()
|
|
defer h.Unlock()
|
|
|
|
h.PreRefreshCalled = true
|
|
h.PreRefreshInfo = n
|
|
h.PreRefreshState = s
|
|
return h.PreRefreshReturn, h.PreRefreshError
|
|
}
|
|
|
|
func (h *MockHook) PostRefresh(n *InstanceInfo, s *InstanceState) (HookAction, error) {
|
|
h.Lock()
|
|
defer h.Unlock()
|
|
|
|
h.PostRefreshCalled = true
|
|
h.PostRefreshInfo = n
|
|
h.PostRefreshState = s
|
|
return h.PostRefreshReturn, h.PostRefreshError
|
|
}
|
|
|
|
func (h *MockHook) PreImportState(info *InstanceInfo, id string) (HookAction, error) {
|
|
h.Lock()
|
|
defer h.Unlock()
|
|
|
|
h.PreImportStateCalled = true
|
|
h.PreImportStateInfo = info
|
|
h.PreImportStateId = id
|
|
return h.PreImportStateReturn, h.PreImportStateError
|
|
}
|
|
|
|
func (h *MockHook) PostImportState(info *InstanceInfo, s []*InstanceState) (HookAction, error) {
|
|
h.Lock()
|
|
defer h.Unlock()
|
|
|
|
h.PostImportStateCalled = true
|
|
h.PostImportStateInfo = info
|
|
h.PostImportStateState = s
|
|
return h.PostImportStateReturn, h.PostImportStateError
|
|
}
|
|
|
|
func (h *MockHook) PostStateUpdate(s *State) (HookAction, error) {
|
|
h.Lock()
|
|
defer h.Unlock()
|
|
|
|
h.PostStateUpdateCalled = true
|
|
h.PostStateUpdateState = s
|
|
return h.PostStateUpdateReturn, h.PostStateUpdateError
|
|
}
|