From 4ef3874467c5fa977818bc2393e8d87c4fc8e6e9 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Tue, 2 Sep 2014 09:35:59 -0700 Subject: [PATCH] builder/virtualbox-*: seed RNG [GH-1386] --- CHANGELOG.md | 1 + builder/virtualbox/iso/builder.go | 10 ++++++++-- builder/virtualbox/ovf/builder.go | 5 +++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 96141fd2e..d9fc8acd5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ BUG FIXES: * builder/parallels/all: Add support for Parallels Desktop 10 [GH-1438] * builder/parallels/all: Added some navigation keys [GH-1442] * builder/qemu: If headless, sdl display won't be used. [GH-1395] + * builder/virtualbox/all: Seed RNG to avoid same ports. [GH-1386] * builder/vmware/all: `ssh_host` accepts templates. [GH-1396] * builder/vmware/vmx: Do not re-add floppy disk files to VMX [GH-1361] diff --git a/builder/virtualbox/iso/builder.go b/builder/virtualbox/iso/builder.go index f41118a45..a632ca694 100644 --- a/builder/virtualbox/iso/builder.go +++ b/builder/virtualbox/iso/builder.go @@ -3,12 +3,15 @@ package iso import ( "errors" "fmt" + "log" + "math/rand" + "strings" + "time" + "github.com/mitchellh/multistep" vboxcommon "github.com/mitchellh/packer/builder/virtualbox/common" "github.com/mitchellh/packer/common" "github.com/mitchellh/packer/packer" - "log" - "strings" ) const BuilderId = "mitchellh.virtualbox" @@ -254,6 +257,9 @@ func (b *Builder) Prepare(raws ...interface{}) ([]string, error) { } func (b *Builder) Run(ui packer.Ui, hook packer.Hook, cache packer.Cache) (packer.Artifact, error) { + // Seed the random number generator + rand.Seed(time.Now().UTC().UnixNano()) + // Create the driver that we'll use to communicate with VirtualBox driver, err := vboxcommon.NewDriver() if err != nil { diff --git a/builder/virtualbox/ovf/builder.go b/builder/virtualbox/ovf/builder.go index 312fc4701..398b34a7a 100644 --- a/builder/virtualbox/ovf/builder.go +++ b/builder/virtualbox/ovf/builder.go @@ -4,6 +4,8 @@ import ( "errors" "fmt" "log" + "math/rand" + "time" "github.com/mitchellh/multistep" vboxcommon "github.com/mitchellh/packer/builder/virtualbox/common" @@ -32,6 +34,9 @@ func (b *Builder) Prepare(raws ...interface{}) ([]string, error) { // Run executes a Packer build and returns a packer.Artifact representing // a VirtualBox appliance. func (b *Builder) Run(ui packer.Ui, hook packer.Hook, cache packer.Cache) (packer.Artifact, error) { + // Seed the random number generator + rand.Seed(time.Now().UTC().UnixNano()) + // Create the driver that we'll use to communicate with VirtualBox driver, err := vboxcommon.NewDriver() if err != nil {