Merge pull request #1116 from higebu/fix-remote-esxi-builder-doesnt-upload-floppy

Fixes #1106, Remote ESXi builder doesn't upload floppy
This commit is contained in:
Ross Smith II 2014-05-04 10:57:22 -07:00
commit a8a583a80c
3 changed files with 12 additions and 1 deletions

View File

@ -334,6 +334,10 @@ func (b *Builder) Run(ui packer.Ui, hook packer.Hook, cache packer.Cache) (packe
&common.StepCreateFloppy{ &common.StepCreateFloppy{
Files: b.config.FloppyFiles, Files: b.config.FloppyFiles,
}, },
&stepRemoteUpload{
Key: "floppy_path",
Message: "Uploading Floppy to remote machine...",
},
&stepRemoteUpload{ &stepRemoteUpload{
Key: "iso_path", Key: "iso_path",
Message: "Uploading ISO to remote machine...", Message: "Uploading ISO to remote machine...",

View File

@ -260,6 +260,9 @@ func (d *ESX5Driver) String() string {
} }
func (d *ESX5Driver) datastorePath(path string) string { func (d *ESX5Driver) datastorePath(path string) string {
if filepath.IsAbs(path) {
return filepath.Join("/vmfs/volumes", d.Datastore, strings.Replace(path, "/", "", 1))
}
return filepath.Join("/vmfs/volumes", d.Datastore, path) return filepath.Join("/vmfs/volumes", d.Datastore, path)
} }

View File

@ -24,8 +24,12 @@ func (s *stepRemoteUpload) Run(state multistep.StateBag) multistep.StepAction {
return multistep.ActionContinue return multistep.ActionContinue
} }
path, ok := state.Get(s.Key).(string)
if !ok {
return multistep.ActionContinue
}
ui.Say(s.Message) ui.Say(s.Message)
path := state.Get(s.Key).(string)
log.Printf("Remote uploading: %s", path) log.Printf("Remote uploading: %s", path)
newPath, err := remote.UploadISO(path) newPath, err := remote.UploadISO(path)
if err != nil { if err != nil {