summaryrefslogtreecommitdiff
path: root/vendor/github.com/mitchellh/packer/builder/vmware/iso/step_export.go
diff options
context:
space:
mode:
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.go19
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
}