mirror of https://github.com/hashicorp/packer
This implements more robust interrupt handling by propagating cancels throughout more core Packer components.pull/919/head
commit
3238b65bf9
@ -0,0 +1,31 @@
|
||||
package packer
|
||||
|
||||
// MockHook is an implementation of Hook that can be used for tests.
|
||||
type MockHook struct {
|
||||
RunFunc func() error
|
||||
|
||||
RunCalled bool
|
||||
RunComm Communicator
|
||||
RunData interface{}
|
||||
RunName string
|
||||
RunUi Ui
|
||||
CancelCalled bool
|
||||
}
|
||||
|
||||
func (t *MockHook) Run(name string, ui Ui, comm Communicator, data interface{}) error {
|
||||
t.RunCalled = true
|
||||
t.RunComm = comm
|
||||
t.RunData = data
|
||||
t.RunName = name
|
||||
t.RunUi = ui
|
||||
|
||||
if t.RunFunc == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
return t.RunFunc()
|
||||
}
|
||||
|
||||
func (t *MockHook) Cancel() {
|
||||
t.CancelCalled = true
|
||||
}
|
||||
@ -0,0 +1,34 @@
|
||||
package packer
|
||||
|
||||
// MockProvisioner is an implementation of Provisioner that can be
|
||||
// used for tests.
|
||||
type MockProvisioner struct {
|
||||
ProvFunc func() error
|
||||
|
||||
PrepCalled bool
|
||||
PrepConfigs []interface{}
|
||||
ProvCalled bool
|
||||
ProvUi Ui
|
||||
CancelCalled bool
|
||||
}
|
||||
|
||||
func (t *MockProvisioner) Prepare(configs ...interface{}) error {
|
||||
t.PrepCalled = true
|
||||
t.PrepConfigs = configs
|
||||
return nil
|
||||
}
|
||||
|
||||
func (t *MockProvisioner) Provision(ui Ui, comm Communicator) error {
|
||||
t.ProvCalled = true
|
||||
t.ProvUi = ui
|
||||
|
||||
if t.ProvFunc == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
return t.ProvFunc()
|
||||
}
|
||||
|
||||
func (t *MockProvisioner) Cancel() {
|
||||
t.CancelCalled = true
|
||||
}
|
||||
Loading…
Reference in new issue