From 2789162fec70754ff9a6782d79592b026cf41e76 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Tue, 13 Aug 2013 08:55:33 -0700 Subject: [PATCH] builder/virtualbox: instantiate driver in Run method --- builder/virtualbox/builder.go | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/builder/virtualbox/builder.go b/builder/virtualbox/builder.go index d4b6f57db..a7b7cdd51 100644 --- a/builder/virtualbox/builder.go +++ b/builder/virtualbox/builder.go @@ -18,7 +18,6 @@ const BuilderId = "mitchellh.virtualbox" type Builder struct { config config - driver Driver runner multistep.Runner } @@ -278,12 +277,6 @@ func (b *Builder) Prepare(raws ...interface{}) error { } } - b.driver, err = b.newDriver() - if err != nil { - errs = packer.MultiErrorAppend( - errs, fmt.Errorf("Failed creating VirtualBox driver: %s", err)) - } - if errs != nil && len(errs.Errors) > 0 { return errs } @@ -292,6 +285,12 @@ func (b *Builder) Prepare(raws ...interface{}) error { } func (b *Builder) Run(ui packer.Ui, hook packer.Hook, cache packer.Cache) (packer.Artifact, error) { + // Create the driver that we'll use to communicate with VirtualBox + driver, err := b.newDriver() + if err != nil { + return nil, fmt.Errorf("Failed creating VirtualBox driver: %s", err) + } + steps := []multistep.Step{ new(stepDownloadGuestAdditions), new(stepDownloadISO), @@ -325,7 +324,7 @@ func (b *Builder) Run(ui packer.Ui, hook packer.Hook, cache packer.Cache) (packe state := make(map[string]interface{}) state["cache"] = cache state["config"] = &b.config - state["driver"] = b.driver + state["driver"] = driver state["hook"] = hook state["ui"] = ui