From 97cfd60b8279335c6cd84a6eed1ab4afc261bb48 Mon Sep 17 00:00:00 2001 From: Matthew Hooker Date: Thu, 26 Apr 2018 10:56:48 -0700 Subject: [PATCH] Remove remote cache correctly. --- builder/vmware/iso/driver_esx5.go | 10 ++++++---- builder/vmware/iso/remote_driver.go | 6 +++--- builder/vmware/iso/remote_driver_mock.go | 6 +++--- builder/vmware/iso/step_remote_upload.go | 4 +--- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/builder/vmware/iso/driver_esx5.go b/builder/vmware/iso/driver_esx5.go index ae50388ab..543a77525 100644 --- a/builder/vmware/iso/driver_esx5.go +++ b/builder/vmware/iso/driver_esx5.go @@ -138,6 +138,12 @@ func (d *ESX5Driver) UploadISO(localPath string, checksum string, checksumType s return finalPath, nil } +func (d *ESX5Driver) RemoveCache(localPath string) error { + finalPath := filepath.ToSlash(filepath.Dir(d.cachePath(localPath))) + log.Printf("Removing remote cache path %s (local %s)", finalPath, localPath) + return d.sh("rm", "-rf", finalPath) +} + func (d *ESX5Driver) ToolsIsoPath(string) string { return "" } @@ -569,10 +575,6 @@ func (d *ESX5Driver) mkdir(path string) error { return d.sh("mkdir", "-p", path) } -func (d *ESX5Driver) remove(path string) error { - return d.sh("rm", "-rf", path) -} - func (d *ESX5Driver) upload(dst, src string) error { f, err := os.Open(src) if err != nil { diff --git a/builder/vmware/iso/remote_driver.go b/builder/vmware/iso/remote_driver.go index 8d350120d..6e830042c 100644 --- a/builder/vmware/iso/remote_driver.go +++ b/builder/vmware/iso/remote_driver.go @@ -12,6 +12,9 @@ type RemoteDriver interface { // exists. UploadISO(string, string, string) (string, error) + // RemoveCache deletes localPath from the remote cache. + RemoveCache(localPath string) error + // Adds a VM to inventory specified by the path to the VMX given. Register(string) error @@ -27,9 +30,6 @@ type RemoteDriver interface { // Uploads a local file to remote side. upload(dst, src string) error - // Forcefully remove a path from the remote side. - remove(path string) error - // Reload VM on remote side. ReloadVM() error } diff --git a/builder/vmware/iso/remote_driver_mock.go b/builder/vmware/iso/remote_driver_mock.go index fe7e717bb..03830ddcf 100644 --- a/builder/vmware/iso/remote_driver_mock.go +++ b/builder/vmware/iso/remote_driver_mock.go @@ -61,11 +61,11 @@ func (d *RemoteDriverMock) IsDestroyed() (bool, error) { } func (d *RemoteDriverMock) upload(dst, src string) error { - return nil + return d.uploadErr } -func (d *RemoteDriverMock) remove(path string) error { - return d.uploadErr +func (d *RemoteDriverMock) RemoveCache(localPath string) error { + return nil } func (d *RemoteDriverMock) ReloadVM() error { diff --git a/builder/vmware/iso/step_remote_upload.go b/builder/vmware/iso/step_remote_upload.go index 5a50dd3e7..89c1bb7ca 100644 --- a/builder/vmware/iso/step_remote_upload.go +++ b/builder/vmware/iso/step_remote_upload.go @@ -56,7 +56,6 @@ func (s *stepRemoteUpload) Cleanup(state multistep.StateBag) { } driver := state.Get("driver").(vmwcommon.Driver) - // ui := state.Get("ui").(packer.Ui) remote, ok := driver.(RemoteDriver) if !ok { @@ -69,9 +68,8 @@ func (s *stepRemoteUpload) Cleanup(state multistep.StateBag) { } log.Printf("Cleaning up remote path: %s", path) - err := remote.remove(path) + err := remote.RemoveCache(path) if err != nil { log.Printf("Error cleaning up: %s", err) } - }