packer: Build no longer takes Ui for Prepare

This commit is contained in:
Mitchell Hashimoto 2013-06-13 10:08:31 -07:00
parent c8120bc2eb
commit a35feebe70
5 changed files with 12 additions and 31 deletions

View File

@ -144,7 +144,7 @@ func (c Command) Run(env packer.Environment, args []string) int {
// Prepare all the builds
for _, b := range builds {
log.Printf("Preparing build: %s", b.Name())
err := b.Prepare(buildUis[b.Name()])
err := b.Prepare()
if err != nil {
env.Ui().Error(err.Error())
return 1

View File

@ -6,7 +6,7 @@ import "log"
// building some machine image artifact. Builds are meant to be parallelized.
type Build interface {
Name() string
Prepare(Ui) error
Prepare() error
Run(Ui, Cache) (Artifact, error)
Cancel()
}
@ -39,7 +39,7 @@ func (b *coreBuild) Name() string {
// Prepare prepares the build by doing some initialization for the builder
// and any hooks. This _must_ be called prior to Run.
func (b *coreBuild) Prepare(ui Ui) (err error) {
func (b *coreBuild) Prepare() (err error) {
// TODO: lock
b.prepareCalled = true

View File

@ -34,12 +34,11 @@ func TestBuild_Prepare(t *testing.T) {
assert := asserts.NewTestingAsserts(t, true)
build := testBuild()
ui := testUi()
coreB := build.(*coreBuild)
builder := coreB.builder.(*TestBuilder)
build.Prepare(ui)
build.Prepare()
assert.True(builder.prepareCalled, "prepare should be called")
assert.Equal(builder.prepareConfig, 42, "prepare config should be 42")
@ -57,7 +56,7 @@ func TestBuild_Run(t *testing.T) {
ui := testUi()
build := testBuild()
build.Prepare(ui)
build.Prepare()
build.Run(ui, cache)
coreB := build.(*coreBuild)

View File

@ -17,10 +17,6 @@ type BuildServer struct {
build packer.Build
}
type BuildPrepareArgs struct {
RPCAddress string
}
type BuildRunArgs struct {
UiRPCAddress string
}
@ -34,14 +30,8 @@ func (b *build) Name() (result string) {
return
}
func (b *build) Prepare(ui packer.Ui) (err error) {
// Create and start the server for the UI
// TODO: Error handling
server := rpc.NewServer()
RegisterUi(server, ui)
args := &BuildPrepareArgs{serveSingleConn(server)}
if cerr := b.client.Call("Build.Prepare", args, &err); cerr != nil {
func (b *build) Prepare() (err error) {
if cerr := b.client.Call("Build.Prepare", new(interface{}), &err); cerr != nil {
return cerr
}
@ -79,13 +69,8 @@ func (b *BuildServer) Name(args *interface{}, reply *string) error {
return nil
}
func (b *BuildServer) Prepare(args *BuildPrepareArgs, reply *error) error {
client, err := rpc.Dial("tcp", args.RPCAddress)
if err != nil {
return err
}
*reply = b.build.Prepare(&Ui{client})
func (b *BuildServer) Prepare(args interface{}, reply *error) error {
*reply = b.build.Prepare()
return nil
}

View File

@ -13,7 +13,6 @@ var testBuildArtifact = &testArtifact{}
type testBuild struct {
nameCalled bool
prepareCalled bool
prepareUi packer.Ui
runCalled bool
runCache packer.Cache
runUi packer.Ui
@ -27,9 +26,8 @@ func (b *testBuild) Name() string {
return "name"
}
func (b *testBuild) Prepare(ui packer.Ui) error {
func (b *testBuild) Prepare() error {
b.prepareCalled = true
b.prepareUi = ui
return nil
}
@ -70,13 +68,12 @@ func TestBuildRPC(t *testing.T) {
assert.True(b.nameCalled, "name should be called")
// Test Prepare
ui := new(testUi)
bClient.Prepare(ui)
bClient.Prepare()
assert.True(b.prepareCalled, "prepare should be called")
// Test Run
cache := new(testCache)
ui = new(testUi)
ui := new(testUi)
_, err = bClient.Run(ui, cache)
assert.True(b.runCalled, "run should be called")
assert.Nil(err, "should not error")