packer/rpc: implement hook Cancel

This commit is contained in:
Mitchell Hashimoto 2013-08-30 23:03:43 -07:00
parent 30bf8ffc7d
commit 99ababda20
2 changed files with 14 additions and 1 deletions

View File

@ -2,6 +2,7 @@ package rpc
import (
"github.com/mitchellh/packer/packer"
"log"
"net/rpc"
)
@ -38,7 +39,10 @@ func (h *hook) Run(name string, ui packer.Ui, comm packer.Communicator, data int
}
func (h *hook) Cancel() {
// TODO(mitchellh): implement
err := h.client.Call("Hook.Cancel", new(interface{}), new(interface{}))
if err != nil {
log.Printf("Hook.Cancel error: %s", err)
}
}
func (h *HookServer) Run(args *HookRunArgs, reply *interface{}) error {
@ -54,3 +58,8 @@ func (h *HookServer) Run(args *HookRunArgs, reply *interface{}) error {
*reply = nil
return nil
}
func (h *HookServer) Cancel(args *interface{}, reply *interface{}) error {
h.hook.Cancel()
return nil
}

View File

@ -28,6 +28,10 @@ func TestHookRPC(t *testing.T) {
ui := &testUi{}
hClient.Run("foo", ui, nil, 42)
assert.True(h.RunCalled, "run should be called")
// Test Cancel
hClient.Cancel()
assert.True(h.CancelCalled, "cancel should be called")
}
func TestHook_Implements(t *testing.T) {