From 58daa1d84e2cc24b707dfb48406f8ed3c24f055a Mon Sep 17 00:00:00 2001 From: Steven Merrill Date: Tue, 2 Jul 2013 20:22:11 -0400 Subject: [PATCH] Add a 'skip_compaction' step. --- builder/vmware/builder.go | 1 + builder/vmware/step_compact_disk.go | 11 ++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/builder/vmware/builder.go b/builder/vmware/builder.go index f6388827e..e48103c73 100644 --- a/builder/vmware/builder.go +++ b/builder/vmware/builder.go @@ -39,6 +39,7 @@ type config struct { HTTPPortMax uint `mapstructure:"http_port_max"` BootCommand []string `mapstructure:"boot_command"` BootWait time.Duration `` + SkipCompaction bool `mapstructure:"skip_compaction"` ShutdownCommand string `mapstructure:"shutdown_command"` ShutdownTimeout time.Duration `` SSHUser string `mapstructure:"ssh_username"` diff --git a/builder/vmware/step_compact_disk.go b/builder/vmware/step_compact_disk.go index d399322a7..05bbc62da 100644 --- a/builder/vmware/step_compact_disk.go +++ b/builder/vmware/step_compact_disk.go @@ -4,11 +4,14 @@ import ( "fmt" "github.com/mitchellh/multistep" "github.com/mitchellh/packer/packer" + "log" ) -// This step compacts the virtual disk for the VM. +// This step compacts the virtual disk for the VM unless the "skip_compaction" +// boolean is true. // // Uses: +// config *config // driver Driver // full_disk_path string // ui packer.Ui @@ -18,10 +21,16 @@ import ( type stepCompactDisk struct{} func (stepCompactDisk) Run(state map[string]interface{}) multistep.StepAction { + config := state["config"].(*config) driver := state["driver"].(Driver) ui := state["ui"].(packer.Ui) full_disk_path := state["full_disk_path"].(string) + if config.SkipCompaction == true { + log.Println("Skipping disk compaction step...") + return multistep.ActionContinue + } + ui.Say("Compacting the disk image") if err := driver.CompactDisk(full_disk_path); err != nil { state["error"] = fmt.Errorf("Error compacting disk: %s", err)