diff --git a/builder/virtualbox/builder.go b/builder/virtualbox/builder.go index f7ec0e455..d0860331e 100644 --- a/builder/virtualbox/builder.go +++ b/builder/virtualbox/builder.go @@ -25,31 +25,31 @@ type Builder struct { } type config struct { - BootCommand []string `mapstructure:"boot_command"` - BootWait time.Duration `` - DiskSize uint `mapstructure:"disk_size"` - GuestAdditionsPath string `mapstructure:"guest_additions_path"` - GuestAdditionsURL string `mapstructure:"guest_additions_url"` - GuestAdditionsSHA256 string `mapstructure:"guest_additions_sha256"` - GuestOSType string `mapstructure:"guest_os_type"` - Headless bool `mapstructure:"headless"` - HTTPDir string `mapstructure:"http_directory"` - HTTPPortMin uint `mapstructure:"http_port_min"` - HTTPPortMax uint `mapstructure:"http_port_max"` - ISOMD5 string `mapstructure:"iso_md5"` - ISOUrl string `mapstructure:"iso_url"` - OutputDir string `mapstructure:"output_directory"` - ShutdownCommand string `mapstructure:"shutdown_command"` - ShutdownTimeout time.Duration `` - SSHHostPortMin uint `mapstructure:"ssh_host_port_min"` - SSHHostPortMax uint `mapstructure:"ssh_host_port_max"` - SSHPassword string `mapstructure:"ssh_password"` - SSHPort uint `mapstructure:"ssh_port"` - SSHUser string `mapstructure:"ssh_username"` - SSHWaitTimeout time.Duration `` - VBoxVersionFile string `mapstructure:"virtualbox_version_file"` - VBoxManage [][]string `mapstructure:"vboxmanage"` - VMName string `mapstructure:"vm_name"` + BootCommand []string `mapstructure:"boot_command"` + BootWait time.Duration `` + DiskSize uint `mapstructure:"disk_size"` + GuestAdditionsPath string `mapstructure:"guest_additions_path"` + GuestAdditionsURL string `mapstructure:"guest_additions_url"` + GuestAdditionsSHA256 string `mapstructure:"guest_additions_sha256"` + GuestOSType string `mapstructure:"guest_os_type"` + Headless bool `mapstructure:"headless"` + HTTPDir string `mapstructure:"http_directory"` + HTTPPortMin uint `mapstructure:"http_port_min"` + HTTPPortMax uint `mapstructure:"http_port_max"` + ISOMD5 string `mapstructure:"iso_md5"` + ISOUrl string `mapstructure:"iso_url"` + OutputDir string `mapstructure:"output_directory"` + ShutdownCommand string `mapstructure:"shutdown_command"` + ShutdownTimeout time.Duration `` + SSHHostPortMin uint `mapstructure:"ssh_host_port_min"` + SSHHostPortMax uint `mapstructure:"ssh_host_port_max"` + SSHPassword string `mapstructure:"ssh_password"` + SSHPort uint `mapstructure:"ssh_port"` + SSHUser string `mapstructure:"ssh_username"` + SSHWaitTimeout time.Duration `` + VBoxVersionFile string `mapstructure:"virtualbox_version_file"` + VBoxManage [][]string `mapstructure:"vboxmanage"` + VMName string `mapstructure:"vm_name"` PackerBuildName string `mapstructure:"packer_build_name"` PackerDebug bool `mapstructure:"packer_debug"` diff --git a/builder/virtualbox/builder_test.go b/builder/virtualbox/builder_test.go index 6b94eeefe..655ce57ad 100644 --- a/builder/virtualbox/builder_test.go +++ b/builder/virtualbox/builder_test.go @@ -216,7 +216,6 @@ func TestBuilderPrepare_GuestAdditionsURL(t *testing.T) { } } - func TestBuilderPrepare_HTTPPort(t *testing.T) { var b Builder config := testConfig() diff --git a/builder/virtualbox/step_download_guest_additions.go b/builder/virtualbox/step_download_guest_additions.go index 3253a1b9d..3965df779 100644 --- a/builder/virtualbox/step_download_guest_additions.go +++ b/builder/virtualbox/step_download_guest_additions.go @@ -35,7 +35,7 @@ func (s *stepDownloadGuestAdditions) Run(state map[string]interface{}) multistep ui := state["ui"].(packer.Ui) config := state["config"].(*config) - // Get VBox version + // Get VBox version version, err := driver.Version() if err != nil { state["error"] = fmt.Errorf("Error reading version for guest additions download: %s", err) @@ -49,17 +49,17 @@ func (s *stepDownloadGuestAdditions) Run(state map[string]interface{}) multistep additionsName := fmt.Sprintf("VBoxGuestAdditions_%s.iso", version) - // Use provided version or get it from virtualbox.org - var checksum string + // Use provided version or get it from virtualbox.org + var checksum string - if config.GuestAdditionsSHA256 != "" { - checksum = config.GuestAdditionsSHA256 - } else { - checksum, action = s.downloadAdditionsSHA256(state, version, additionsName) - if action != multistep.ActionContinue { - return action - } - } + if config.GuestAdditionsSHA256 != "" { + checksum = config.GuestAdditionsSHA256 + } else { + checksum, action = s.downloadAdditionsSHA256(state, version, additionsName) + if action != multistep.ActionContinue { + return action + } + } checksumBytes, err := hex.DecodeString(checksum) if err != nil { @@ -67,14 +67,14 @@ func (s *stepDownloadGuestAdditions) Run(state map[string]interface{}) multistep return multistep.ActionHalt } - // Use the provided source (URL or file path) or generate it - url := config.GuestAdditionsURL - if url == "" { - url = fmt.Sprintf( - "http://download.virtualbox.org/virtualbox/%s/%s", - version, - additionsName) - } + // Use the provided source (URL or file path) or generate it + url := config.GuestAdditionsURL + if url == "" { + url = fmt.Sprintf( + "http://download.virtualbox.org/virtualbox/%s/%s", + version, + additionsName) + } log.Printf("Guest additions URL: %s", url) @@ -138,12 +138,12 @@ DownloadWaitLoop: return result, multistep.ActionContinue } -func (s *stepDownloadGuestAdditions) downloadAdditionsSHA256 (state map[string]interface{}, additionsVersion string, additionsName string) (string, multistep.StepAction) { - // First things first, we get the list of checksums for the files available +func (s *stepDownloadGuestAdditions) downloadAdditionsSHA256(state map[string]interface{}, additionsVersion string, additionsName string) (string, multistep.StepAction) { + // First things first, we get the list of checksums for the files available // for this version. checksumsUrl := fmt.Sprintf("http://download.virtualbox.org/virtualbox/%s/SHA256SUMS", additionsVersion) checksumsFile, err := ioutil.TempFile("", "packer") - + if err != nil { state["error"] = fmt.Errorf( "Failed creating temporary file to store guest addition checksums: %s", @@ -203,6 +203,6 @@ func (s *stepDownloadGuestAdditions) downloadAdditionsSHA256 (state map[string]i return "", multistep.ActionHalt } - return checksum, multistep.ActionContinue + return checksum, multistep.ActionContinue }