diff --git a/builder/vmware/iso/builder_test.go b/builder/vmware/iso/builder_test.go index 1607f1cbb..195f8e381 100644 --- a/builder/vmware/iso/builder_test.go +++ b/builder/vmware/iso/builder_test.go @@ -171,6 +171,7 @@ func TestBuilderPrepare_RemoteType(t *testing.T) { // Good config["remote_type"] = "" + config["format"] = "" config["remote_host"] = "" config["remote_password"] = "" config["remote_private_key_file"] = "" @@ -245,6 +246,11 @@ func TestBuilderPrepare_Format(t *testing.T) { for _, format := range goodFormats { // Good config["format"] = format + config["remote_type"] = "esx5" + config["remote_host"] = "hosty.hostface" + config["remote_password"] = "password" + config["skip_validate_credentials"] = true + b = Builder{} warns, err = b.Prepare(config) if len(warns) > 0 { diff --git a/builder/vmware/iso/config.go b/builder/vmware/iso/config.go index ec7d5822b..54ed11c28 100644 --- a/builder/vmware/iso/config.go +++ b/builder/vmware/iso/config.go @@ -167,7 +167,12 @@ func NewConfig(raws ...interface{}) (*Config, []string, error) { } } - if c.Format == "" { + if c.Format != "" { + if c.RemoteType != "esx5" { + errs = packer.MultiErrorAppend(errs, + fmt.Errorf("format is only valid when RemoteType=esx5")) + } + } else { c.Format = "ovf" } diff --git a/builder/vmware/vmx/config.go b/builder/vmware/vmx/config.go index 94235e27e..3c950f285 100644 --- a/builder/vmware/vmx/config.go +++ b/builder/vmware/vmx/config.go @@ -98,7 +98,12 @@ func NewConfig(raws ...interface{}) (*Config, []string, error) { errs = packer.MultiErrorAppend(errs, err) } - if c.Format == "" { + if c.Format != "" { + if c.RemoteType != "esx5" { + errs = packer.MultiErrorAppend(errs, + fmt.Errorf("format is only valid when RemoteType=esx5")) + } + } else { c.Format = "ovf" }