builder/virtualbox: Ability to set DiskSize
This commit is contained in:
parent
ffd1219388
commit
72741dbe3a
|
@ -27,6 +27,7 @@ type Builder struct {
|
||||||
type config struct {
|
type config struct {
|
||||||
BootCommand []string `mapstructure:"boot_command"`
|
BootCommand []string `mapstructure:"boot_command"`
|
||||||
BootWait time.Duration ``
|
BootWait time.Duration ``
|
||||||
|
DiskSize uint `mapstructure:"disk_size"`
|
||||||
GuestOSType string `mapstructure:"guest_os_type"`
|
GuestOSType string `mapstructure:"guest_os_type"`
|
||||||
HTTPDir string `mapstructure:"http_directory"`
|
HTTPDir string `mapstructure:"http_directory"`
|
||||||
HTTPPortMin uint `mapstructure:"http_port_min"`
|
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 == "" {
|
if b.config.GuestOSType == "" {
|
||||||
b.config.GuestOSType = "Other"
|
b.config.GuestOSType = "Other"
|
||||||
}
|
}
|
||||||
|
|
|
@ -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) {
|
func TestBuilderPrepare_HTTPPort(t *testing.T) {
|
||||||
var b Builder
|
var b Builder
|
||||||
config := testConfig()
|
config := testConfig()
|
||||||
|
|
|
@ -5,6 +5,7 @@ import (
|
||||||
"github.com/mitchellh/multistep"
|
"github.com/mitchellh/multistep"
|
||||||
"github.com/mitchellh/packer/packer"
|
"github.com/mitchellh/packer/packer"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -24,7 +25,7 @@ func (s *stepCreateDisk) Run(state map[string]interface{}) multistep.StepAction
|
||||||
command := []string{
|
command := []string{
|
||||||
"createhd",
|
"createhd",
|
||||||
"--filename", path,
|
"--filename", path,
|
||||||
"--size", "40000",
|
"--size", strconv.FormatUint(uint64(config.DiskSize), 10),
|
||||||
"--format", format,
|
"--format", format,
|
||||||
"--variant", "Standard",
|
"--variant", "Standard",
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue