From 86c0c859c58b4e981aaeb816495c6e4406530c46 Mon Sep 17 00:00:00 2001 From: Marc Carmier Date: Wed, 15 Feb 2017 22:04:28 +0100 Subject: [PATCH] Validate the remote_type value for builder/vmware-iso --- builder/vmware/iso/builder.go | 4 +++ builder/vmware/iso/builder_test.go | 40 ++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) mode change 100755 => 100644 builder/vmware/iso/builder.go diff --git a/builder/vmware/iso/builder.go b/builder/vmware/iso/builder.go old mode 100755 new mode 100644 index 10fce5911..ac4c2c853 --- a/builder/vmware/iso/builder.go +++ b/builder/vmware/iso/builder.go @@ -162,6 +162,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 5c1ca5d11..785251e6e 100644 --- a/builder/vmware/iso/builder_test.go +++ b/builder/vmware/iso/builder_test.go @@ -139,6 +139,46 @@ 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"] = "esx5" + // 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) + } +} + func TestBuilderPrepare_Format(t *testing.T) { var b Builder config := testConfig()