Move step_export to common.
This commit is contained in:
parent
63054fb808
commit
a68a639a1a
|
@ -1,4 +1,4 @@
|
||||||
package iso
|
package common
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
@ -19,12 +19,14 @@ import (
|
||||||
// Uses:
|
// Uses:
|
||||||
// display_name string
|
// display_name string
|
||||||
type StepExport struct {
|
type StepExport struct {
|
||||||
Format string
|
Format string
|
||||||
SkipExport bool
|
SkipExport bool
|
||||||
OutputDir string
|
VMName string
|
||||||
|
OVFToolOptions []string
|
||||||
|
OutputDir string
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *StepExport) generateArgs(c *Config, displayName string, hidePassword bool) []string {
|
func (s *StepExport) generateArgs(c *DriverConfig, outputPath string, hidePassword bool) []string {
|
||||||
password := url.QueryEscape(c.RemotePassword)
|
password := url.QueryEscape(c.RemotePassword)
|
||||||
if hidePassword {
|
if hidePassword {
|
||||||
password = "****"
|
password = "****"
|
||||||
|
@ -33,18 +35,19 @@ func (s *StepExport) generateArgs(c *Config, displayName string, hidePassword bo
|
||||||
"--noSSLVerify=true",
|
"--noSSLVerify=true",
|
||||||
"--skipManifestCheck",
|
"--skipManifestCheck",
|
||||||
"-tt=" + s.Format,
|
"-tt=" + s.Format,
|
||||||
"vi://" + c.RemoteUser + ":" + password + "@" + c.RemoteHost + "/" + displayName,
|
|
||||||
s.OutputDir,
|
"vi://" + c.RemoteUser + ":" + password + "@" + c.RemoteHost + "/" + s.VMName,
|
||||||
|
outputPath,
|
||||||
}
|
}
|
||||||
return append(c.OVFToolOptions, args...)
|
return append(s.OVFToolOptions, args...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *StepExport) Run(_ context.Context, state multistep.StateBag) multistep.StepAction {
|
func (s *StepExport) Run(_ context.Context, state multistep.StateBag) multistep.StepAction {
|
||||||
c := state.Get("config").(*Config)
|
c := state.Get("driverConfig").(*DriverConfig)
|
||||||
ui := state.Get("ui").(packer.Ui)
|
ui := state.Get("ui").(packer.Ui)
|
||||||
|
|
||||||
// Skip export if requested
|
// Skip export if requested
|
||||||
if c.SkipExport {
|
if s.SkipExport {
|
||||||
ui.Say("Skipping export of virtual machine...")
|
ui.Say("Skipping export of virtual machine...")
|
||||||
return multistep.ActionContinue
|
return multistep.ActionContinue
|
||||||
}
|
}
|
||||||
|
@ -60,7 +63,7 @@ func (s *StepExport) Run(_ context.Context, state multistep.StateBag) multistep.
|
||||||
}
|
}
|
||||||
|
|
||||||
if _, err := exec.LookPath(ovftool); err != nil {
|
if _, err := exec.LookPath(ovftool); err != nil {
|
||||||
err := fmt.Errorf("Error %s not found: %s", ovftool, err)
|
err = fmt.Errorf("Error %s not found: %s", ovftool, err)
|
||||||
state.Put("error", err)
|
state.Put("error", err)
|
||||||
ui.Error(err.Error())
|
ui.Error(err.Error())
|
||||||
return multistep.ActionHalt
|
return multistep.ActionHalt
|
|
@ -1,4 +1,4 @@
|
||||||
package iso
|
package common
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
@ -15,9 +15,9 @@ func testStepExport_wrongtype_impl(t *testing.T, remoteType string) {
|
||||||
state := testState(t)
|
state := testState(t)
|
||||||
step := new(StepExport)
|
step := new(StepExport)
|
||||||
|
|
||||||
var config Config
|
var config DriverConfig
|
||||||
config.RemoteType = "foo"
|
config.RemoteType = "foo"
|
||||||
state.Put("config", &config)
|
state.Put("driverConfig", &config)
|
||||||
|
|
||||||
if action := step.Run(context.Background(), state); action != multistep.ActionContinue {
|
if action := step.Run(context.Background(), state); action != multistep.ActionContinue {
|
||||||
t.Fatalf("bad action: %#v", action)
|
t.Fatalf("bad action: %#v", action)
|
|
@ -260,6 +260,7 @@ func (b *Builder) Run(ui packer.Ui, hook packer.Hook, cache packer.Cache) (packe
|
||||||
state.Put("hook", hook)
|
state.Put("hook", hook)
|
||||||
state.Put("ui", ui)
|
state.Put("ui", ui)
|
||||||
state.Put("sshConfig", &b.config.SSHConfig)
|
state.Put("sshConfig", &b.config.SSHConfig)
|
||||||
|
state.Put("driverConfig", &b.config.DriverConfig)
|
||||||
|
|
||||||
steps := []multistep.Step{
|
steps := []multistep.Step{
|
||||||
&vmwcommon.StepPrepareTools{
|
&vmwcommon.StepPrepareTools{
|
||||||
|
@ -360,10 +361,11 @@ func (b *Builder) Run(ui packer.Ui, hook packer.Hook, cache packer.Cache) (packe
|
||||||
&vmwcommon.StepUploadVMX{
|
&vmwcommon.StepUploadVMX{
|
||||||
RemoteType: b.config.RemoteType,
|
RemoteType: b.config.RemoteType,
|
||||||
},
|
},
|
||||||
&StepExport{
|
&vmwcommon.StepExport{
|
||||||
Format: b.config.Format,
|
Format: b.config.Format,
|
||||||
SkipExport: b.config.SkipExport,
|
SkipExport: b.config.SkipExport,
|
||||||
OutputDir: exportOutputPath,
|
VMName: b.config.VMName,
|
||||||
|
OVFToolOptions: b.config.OVFToolOptions,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue