diff options
Diffstat (limited to 'vendor/github.com/mitchellh/packer/builder/vmware/iso/step_export.go')
-rw-r--r-- | vendor/github.com/mitchellh/packer/builder/vmware/iso/step_export.go | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/vendor/github.com/mitchellh/packer/builder/vmware/iso/step_export.go b/vendor/github.com/mitchellh/packer/builder/vmware/iso/step_export.go index 3d055ddb..91a2ce48 100644 --- a/vendor/github.com/mitchellh/packer/builder/vmware/iso/step_export.go +++ b/vendor/github.com/mitchellh/packer/builder/vmware/iso/step_export.go @@ -6,7 +6,6 @@ import ( "net/url" "os" "os/exec" - "path/filepath" "runtime" "strings" @@ -17,9 +16,10 @@ import ( type StepExport struct { Format string SkipExport bool + OutputDir string } -func (s *StepExport) generateArgs(c *Config, outputPath string, hidePassword bool) []string { +func (s *StepExport) generateArgs(c *Config, hidePassword bool) []string { password := url.QueryEscape(c.RemotePassword) if hidePassword { password = "****" @@ -29,7 +29,7 @@ func (s *StepExport) generateArgs(c *Config, outputPath string, hidePassword boo "--skipManifestCheck", "-tt=" + s.Format, "vi://" + c.RemoteUser + ":" + password + "@" + c.RemoteHost + "/" + c.VMName, - outputPath, + s.OutputDir, } return append(c.OVFToolOptions, args...) } @@ -45,6 +45,7 @@ func (s *StepExport) Run(state multistep.StateBag) multistep.StepAction { } if c.RemoteType != "esx5" || s.Format == "" { + ui.Say("Skipping export of virtual machine (export is allowed only for ESXi and the format needs to be specified)...") return multistep.ActionContinue } @@ -61,16 +62,18 @@ func (s *StepExport) Run(state multistep.StateBag) multistep.StepAction { } // Export the VM - outputPath := filepath.Join(c.VMName, c.VMName+"."+s.Format) + if s.OutputDir == "" { + s.OutputDir = c.VMName + "." + s.Format + } if s.Format == "ova" { - os.MkdirAll(outputPath, 0755) + os.MkdirAll(s.OutputDir, 0755) } ui.Say("Exporting virtual machine...") - ui.Message(fmt.Sprintf("Executing: %s %s", ovftool, strings.Join(s.generateArgs(c, outputPath, true), " "))) + ui.Message(fmt.Sprintf("Executing: %s %s", ovftool, strings.Join(s.generateArgs(c, true), " "))) var out bytes.Buffer - cmd := exec.Command(ovftool, s.generateArgs(c, outputPath, false)...) + cmd := exec.Command(ovftool, s.generateArgs(c, false)...) cmd.Stdout = &out if err := cmd.Run(); err != nil { err := fmt.Errorf("Error exporting virtual machine: %s\n%s\n", err, out.String()) @@ -81,8 +84,6 @@ func (s *StepExport) Run(state multistep.StateBag) multistep.StepAction { ui.Message(fmt.Sprintf("%s", out.String())) - state.Put("exportPath", outputPath) - return multistep.ActionContinue } |