diff --git a/builder/vmware/iso/builder.go b/builder/vmware/iso/builder.go index cc5a9673b..9e7e74452 100644 --- a/builder/vmware/iso/builder.go +++ b/builder/vmware/iso/builder.go @@ -203,6 +203,10 @@ func (b *Builder) Prepare(raws ...interface{}) ([]string, error) { errs = packer.MultiErrorAppend(errs, fmt.Errorf("remote_host must be specified")) } + if b.config.RemoteType != "esx5" { + errs = packer.MultiErrorAppend(errs, + fmt.Errorf("Only 'esx5' value is accepted for remote_type")) + } } if b.config.Format != "" { diff --git a/builder/vmware/iso/builder_test.go b/builder/vmware/iso/builder_test.go index ab01a270c..b123c1ba9 100644 --- a/builder/vmware/iso/builder_test.go +++ b/builder/vmware/iso/builder_test.go @@ -139,6 +139,58 @@ func TestBuilderPrepare_InvalidFloppies(t *testing.T) { } } +func TestBuilderPrepare_RemoteType(t *testing.T) { + var b Builder + config := testConfig() + + config["format"] = "ovf" + config["remote_host"] = "foobar.example.com" + // Bad + config["remote_type"] = "foobar" + warns, err := b.Prepare(config) + if len(warns) > 0 { + t.Fatalf("bad: %#v", warns) + } + if err == nil { + t.Fatal("should have error") + } + + config["remote_host"] = "" + config["remote_type"] = "" + // Bad + warns, err = b.Prepare(config) + if len(warns) > 0 { + t.Fatalf("bad: %#v", warns) + } + if err == nil { + t.Fatal("should have error") + } + + // Good + config["remote_type"] = "esx5" + config["remote_host"] = "foobar.example.com" + b = Builder{} + warns, err = b.Prepare(config) + if len(warns) > 0 { + t.Fatalf("bad: %#v", warns) + } + if err != nil { + t.Fatalf("should not have error: %s", err) + } + + // Good + config["remote_type"] = "esx5" + config["remote_host"] = "foobar.example.com" + b = Builder{} + warns, err = b.Prepare(config) + if len(warns) > 0 { + t.Fatalf("bad: %#v", warns) + } + if err != nil { + t.Fatalf("should not have error: %s", err) + } +} + func TestBuilderPrepare_Format(t *testing.T) { var b Builder config := testConfig()