From 2c184abdef499ab2240973fcc14740ef1e168a0a Mon Sep 17 00:00:00 2001 From: Michael Kuzmin Date: Thu, 24 Aug 2017 00:23:29 +0300 Subject: [PATCH] test for folder --- builder_acc_test.go | 40 +++++++++++++++++++++++++++++++++++++++- driver/folder.go | 14 ++++++++++++++ 2 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 driver/folder.go diff --git a/builder_acc_test.go b/builder_acc_test.go index 270524d04..24bc57dfa 100644 --- a/builder_acc_test.go +++ b/builder_acc_test.go @@ -104,6 +104,44 @@ func checkArtifact(t *testing.T) builderT.TestCheckFunc { } } +func TestBuilderAcc_folder(t *testing.T) { + builderT.Test(t, builderT.TestCase{ + Builder: &Builder{}, + Template: folderConfig(), + Check: checkFolder(t, "folder1"), + }) +} + +func folderConfig() string { + config := defaultConfig() + config["folder"] = "folder1" + config["linked_clone"] = true // speed up + return renderConfig(config) +} + +func checkFolder(t *testing.T, folder string) builderT.TestCheckFunc { + return func(artifacts []packer.Artifact) error { + d := testConn(t) + vm := getVM(t, d, artifacts) + + vmInfo, err := d.VMInfo(vm, "parent") + if err != nil { + t.Fatalf("Cannot read VM properties: %v", err) + } + + f := d.NewFolder(vmInfo.Parent) + path, err := d.GetFolderPath(f) + if err != nil { + t.Fatalf("Cannot read folder name: %v", err) + } + if path != folder { + t.Errorf("Wrong folder. expected: %v, got: %v", folder, path) + } + + return nil + } +} + func TestBuilderAcc_linkedClone(t *testing.T) { builderT.Test(t, builderT.TestCase{ Builder: &Builder{}, @@ -179,8 +217,8 @@ func TestBuilderAcc_template(t *testing.T) { func templateConfig() string { config := defaultConfig() - config["linked_clone"] = true config["convert_to_template"] = true + config["linked_clone"] = true // speed up return renderConfig(config) } diff --git a/driver/folder.go b/driver/folder.go new file mode 100644 index 000000000..23b9d56d6 --- /dev/null +++ b/driver/folder.go @@ -0,0 +1,14 @@ +package driver + +import ( + "github.com/vmware/govmomi/object" + "github.com/vmware/govmomi/vim25/types" +) + +func (d *Driver) NewFolder(ref *types.ManagedObjectReference) *object.Folder { + return object.NewFolder(d.client.Client, *ref) +} + +func (d *Driver) GetFolderPath(folder *object.Folder) (string, error) { + return folder.ObjectName(d.ctx) +}