From 2939cd75aefe6b6e97befde194315a13f42840de Mon Sep 17 00:00:00 2001 From: DanHam Date: Wed, 16 May 2018 12:17:17 +0100 Subject: [PATCH 1/2] Revert "Report the result of the disk compaction step" Unfortunately this broke the ability to build on remote (ESXi) hosts. This reverts commit 08f9d619a9299d81495d96cf10160f38cdb2476d. --- builder/vmware/common/step_compact_disk.go | 31 ---------------------- 1 file changed, 31 deletions(-) diff --git a/builder/vmware/common/step_compact_disk.go b/builder/vmware/common/step_compact_disk.go index 8d315a67e..1fdef293c 100644 --- a/builder/vmware/common/step_compact_disk.go +++ b/builder/vmware/common/step_compact_disk.go @@ -4,8 +4,6 @@ import ( "context" "fmt" "log" - "math" - "os" "github.com/hashicorp/packer/helper/multistep" "github.com/hashicorp/packer/packer" @@ -38,39 +36,10 @@ func (s StepCompactDisk) Run(_ context.Context, state multistep.StateBag) multis ui.Say("Compacting all attached virtual disks...") for i, diskFullPath := range diskFullPaths { ui.Message(fmt.Sprintf("Compacting virtual disk %d", i+1)) - // Get the file size of the virtual disk prior to compaction - fi, err := os.Stat(diskFullPath) - if err != nil { - state.Put("error", fmt.Errorf("Error getting virtual disk file info pre compaction: %s", err)) - return multistep.ActionHalt - } - diskFileSizeStart := fi.Size() - // Defragment and compact the disk if err := driver.CompactDisk(diskFullPath); err != nil { state.Put("error", fmt.Errorf("Error compacting disk: %s", err)) return multistep.ActionHalt } - // Get the file size of the virtual disk post compaction - fi, err = os.Stat(diskFullPath) - if err != nil { - state.Put("error", fmt.Errorf("Error getting virtual disk file info post compaction: %s", err)) - return multistep.ActionHalt - } - diskFileSizeEnd := fi.Size() - // Report compaction results - log.Printf("Before compaction the disk file size was: %d", diskFileSizeStart) - log.Printf("After compaction the disk file size was: %d", diskFileSizeEnd) - if diskFileSizeStart > 0 { - percentChange := ((float64(diskFileSizeEnd) / float64(diskFileSizeStart)) * 100.0) - 100.0 - switch { - case percentChange < 0: - ui.Message(fmt.Sprintf("Compacting reduced the disk file size by %.2f%%", math.Abs(percentChange))) - case percentChange == 0: - ui.Message(fmt.Sprintf("The compacting operation left the disk file size unchanged")) - case percentChange > 0: - ui.Message(fmt.Sprintf("WARNING: Compacting increased the disk file size by %.2f%%", percentChange)) - } - } } return multistep.ActionContinue From 73eb9a629ebbc5352e4e99ec063e6a461358feb9 Mon Sep 17 00:00:00 2001 From: DanHam Date: Wed, 16 May 2018 13:10:33 +0100 Subject: [PATCH 2/2] Revert "Fix test - reporting compaction results requires a tmp file" This reverts commit f342975ff31e5a59b4534b3fb216250365468b1f. --- .../vmware/common/step_compact_disk_test.go | 25 +++---------------- 1 file changed, 3 insertions(+), 22 deletions(-) diff --git a/builder/vmware/common/step_compact_disk_test.go b/builder/vmware/common/step_compact_disk_test.go index a07755229..df0fc5fca 100644 --- a/builder/vmware/common/step_compact_disk_test.go +++ b/builder/vmware/common/step_compact_disk_test.go @@ -2,8 +2,6 @@ package common import ( "context" - "io/ioutil" - "os" "testing" "github.com/hashicorp/packer/helper/multistep" @@ -17,25 +15,8 @@ func TestStepCompactDisk(t *testing.T) { state := testState(t) step := new(StepCompactDisk) - // Create a fake vmdk file for disk file size operations - diskFile, err := ioutil.TempFile("", "disk.vmdk") - if err != nil { - t.Fatalf("Error creating fake vmdk file: %s", err) - } - - diskFullPath := diskFile.Name() - defer os.Remove(diskFullPath) - - content := []byte("I am the fake vmdk's contents") - if _, err := diskFile.Write(content); err != nil { - t.Fatalf("Error writing to fake vmdk file: %s", err) - } - if err := diskFile.Close(); err != nil { - t.Fatalf("Error closing fake vmdk file: %s", err) - } - - // Set up required state - state.Put("disk_full_paths", []string{diskFullPath}) + diskFullPaths := []string{"foo"} + state.Put("disk_full_paths", diskFullPaths) driver := state.Get("driver").(*DriverMock) @@ -51,7 +32,7 @@ func TestStepCompactDisk(t *testing.T) { if !driver.CompactDiskCalled { t.Fatal("should've called") } - if driver.CompactDiskPath != diskFullPath { + if driver.CompactDiskPath != "foo" { t.Fatal("should call with right path") } }