packer: Build no longer takes Ui for Prepare
This commit is contained in:
parent
c8120bc2eb
commit
a35feebe70
@ -144,7 +144,7 @@ func (c Command) Run(env packer.Environment, args []string) int {
|
|||||||
// Prepare all the builds
|
// Prepare all the builds
|
||||||
for _, b := range builds {
|
for _, b := range builds {
|
||||||
log.Printf("Preparing build: %s", b.Name())
|
log.Printf("Preparing build: %s", b.Name())
|
||||||
err := b.Prepare(buildUis[b.Name()])
|
err := b.Prepare()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
env.Ui().Error(err.Error())
|
env.Ui().Error(err.Error())
|
||||||
return 1
|
return 1
|
||||||
|
@ -6,7 +6,7 @@ import "log"
|
|||||||
// building some machine image artifact. Builds are meant to be parallelized.
|
// building some machine image artifact. Builds are meant to be parallelized.
|
||||||
type Build interface {
|
type Build interface {
|
||||||
Name() string
|
Name() string
|
||||||
Prepare(Ui) error
|
Prepare() error
|
||||||
Run(Ui, Cache) (Artifact, error)
|
Run(Ui, Cache) (Artifact, error)
|
||||||
Cancel()
|
Cancel()
|
||||||
}
|
}
|
||||||
@ -39,7 +39,7 @@ func (b *coreBuild) Name() string {
|
|||||||
|
|
||||||
// Prepare prepares the build by doing some initialization for the builder
|
// Prepare prepares the build by doing some initialization for the builder
|
||||||
// and any hooks. This _must_ be called prior to Run.
|
// 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
|
// TODO: lock
|
||||||
b.prepareCalled = true
|
b.prepareCalled = true
|
||||||
|
|
||||||
|
@ -34,12 +34,11 @@ func TestBuild_Prepare(t *testing.T) {
|
|||||||
assert := asserts.NewTestingAsserts(t, true)
|
assert := asserts.NewTestingAsserts(t, true)
|
||||||
|
|
||||||
build := testBuild()
|
build := testBuild()
|
||||||
ui := testUi()
|
|
||||||
|
|
||||||
coreB := build.(*coreBuild)
|
coreB := build.(*coreBuild)
|
||||||
builder := coreB.builder.(*TestBuilder)
|
builder := coreB.builder.(*TestBuilder)
|
||||||
|
|
||||||
build.Prepare(ui)
|
build.Prepare()
|
||||||
assert.True(builder.prepareCalled, "prepare should be called")
|
assert.True(builder.prepareCalled, "prepare should be called")
|
||||||
assert.Equal(builder.prepareConfig, 42, "prepare config should be 42")
|
assert.Equal(builder.prepareConfig, 42, "prepare config should be 42")
|
||||||
|
|
||||||
@ -57,7 +56,7 @@ func TestBuild_Run(t *testing.T) {
|
|||||||
ui := testUi()
|
ui := testUi()
|
||||||
|
|
||||||
build := testBuild()
|
build := testBuild()
|
||||||
build.Prepare(ui)
|
build.Prepare()
|
||||||
build.Run(ui, cache)
|
build.Run(ui, cache)
|
||||||
|
|
||||||
coreB := build.(*coreBuild)
|
coreB := build.(*coreBuild)
|
||||||
|
@ -17,10 +17,6 @@ type BuildServer struct {
|
|||||||
build packer.Build
|
build packer.Build
|
||||||
}
|
}
|
||||||
|
|
||||||
type BuildPrepareArgs struct {
|
|
||||||
RPCAddress string
|
|
||||||
}
|
|
||||||
|
|
||||||
type BuildRunArgs struct {
|
type BuildRunArgs struct {
|
||||||
UiRPCAddress string
|
UiRPCAddress string
|
||||||
}
|
}
|
||||||
@ -34,14 +30,8 @@ func (b *build) Name() (result string) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *build) Prepare(ui packer.Ui) (err error) {
|
func (b *build) Prepare() (err error) {
|
||||||
// Create and start the server for the UI
|
if cerr := b.client.Call("Build.Prepare", new(interface{}), &err); cerr != nil {
|
||||||
// TODO: Error handling
|
|
||||||
server := rpc.NewServer()
|
|
||||||
RegisterUi(server, ui)
|
|
||||||
args := &BuildPrepareArgs{serveSingleConn(server)}
|
|
||||||
|
|
||||||
if cerr := b.client.Call("Build.Prepare", args, &err); cerr != nil {
|
|
||||||
return cerr
|
return cerr
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -79,13 +69,8 @@ func (b *BuildServer) Name(args *interface{}, reply *string) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *BuildServer) Prepare(args *BuildPrepareArgs, reply *error) error {
|
func (b *BuildServer) Prepare(args interface{}, reply *error) error {
|
||||||
client, err := rpc.Dial("tcp", args.RPCAddress)
|
*reply = b.build.Prepare()
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
*reply = b.build.Prepare(&Ui{client})
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,7 +13,6 @@ var testBuildArtifact = &testArtifact{}
|
|||||||
type testBuild struct {
|
type testBuild struct {
|
||||||
nameCalled bool
|
nameCalled bool
|
||||||
prepareCalled bool
|
prepareCalled bool
|
||||||
prepareUi packer.Ui
|
|
||||||
runCalled bool
|
runCalled bool
|
||||||
runCache packer.Cache
|
runCache packer.Cache
|
||||||
runUi packer.Ui
|
runUi packer.Ui
|
||||||
@ -27,9 +26,8 @@ func (b *testBuild) Name() string {
|
|||||||
return "name"
|
return "name"
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *testBuild) Prepare(ui packer.Ui) error {
|
func (b *testBuild) Prepare() error {
|
||||||
b.prepareCalled = true
|
b.prepareCalled = true
|
||||||
b.prepareUi = ui
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -70,13 +68,12 @@ func TestBuildRPC(t *testing.T) {
|
|||||||
assert.True(b.nameCalled, "name should be called")
|
assert.True(b.nameCalled, "name should be called")
|
||||||
|
|
||||||
// Test Prepare
|
// Test Prepare
|
||||||
ui := new(testUi)
|
bClient.Prepare()
|
||||||
bClient.Prepare(ui)
|
|
||||||
assert.True(b.prepareCalled, "prepare should be called")
|
assert.True(b.prepareCalled, "prepare should be called")
|
||||||
|
|
||||||
// Test Run
|
// Test Run
|
||||||
cache := new(testCache)
|
cache := new(testCache)
|
||||||
ui = new(testUi)
|
ui := new(testUi)
|
||||||
_, err = bClient.Run(ui, cache)
|
_, err = bClient.Run(ui, cache)
|
||||||
assert.True(b.runCalled, "run should be called")
|
assert.True(b.runCalled, "run should be called")
|
||||||
assert.Nil(err, "should not error")
|
assert.Nil(err, "should not error")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user