builder/virtualbox: Ability to set DiskSize

This commit is contained in:
Mitchell Hashimoto 2013-06-23 20:43:40 -07:00
parent 8f7ea692c6
commit fb139b2925
3 changed files with 33 additions and 1 deletions

View File

@ -27,6 +27,7 @@ type Builder struct {
type config struct {
BootCommand []string `mapstructure:"boot_command"`
BootWait time.Duration ``
DiskSize uint `mapstructure:"disk_size"`
GuestOSType string `mapstructure:"guest_os_type"`
HTTPDir string `mapstructure:"http_directory"`
HTTPPortMin uint `mapstructure:"http_port_min"`
@ -61,6 +62,10 @@ func (b *Builder) Prepare(raws ...interface{}) error {
}
}
if b.config.DiskSize == 0 {
b.config.DiskSize = 40000
}
if b.config.GuestOSType == "" {
b.config.GuestOSType = "Other"
}

View File

@ -75,6 +75,32 @@ func TestBuilderPrepare_BootWait(t *testing.T) {
}
}
func TestBuilderPrepare_DiskSize(t *testing.T) {
var b Builder
config := testConfig()
delete(config, "disk_size")
err := b.Prepare(config)
if err != nil {
t.Fatalf("bad err: %s", err)
}
if b.config.DiskSize != 40000 {
t.Fatalf("bad size: %d", b.config.DiskSize)
}
config["disk_size"] = 60000
b = Builder{}
err = b.Prepare(config)
if err != nil {
t.Fatalf("should not have error: %s", err)
}
if b.config.DiskSize != 60000 {
t.Fatalf("bad size: %s", b.config.DiskSize)
}
}
func TestBuilderPrepare_HTTPPort(t *testing.T) {
var b Builder
config := testConfig()

View File

@ -5,6 +5,7 @@ import (
"github.com/mitchellh/multistep"
"github.com/mitchellh/packer/packer"
"path/filepath"
"strconv"
"strings"
)
@ -24,7 +25,7 @@ func (s *stepCreateDisk) Run(state map[string]interface{}) multistep.StepAction
command := []string{
"createhd",
"--filename", path,
"--size", "40000",
"--size", strconv.FormatUint(uint64(config.DiskSize), 10),
"--format", format,
"--variant", "Standard",
}