diff --git a/simulator/virtual_machine.go b/simulator/virtual_machine.go index 2089acdee..9068d25ed 100644 --- a/simulator/virtual_machine.go +++ b/simulator/virtual_machine.go @@ -1894,7 +1894,7 @@ func (vm *VirtualMachine) CreateSnapshotTask(req *types.CreateSnapshot_Task) soa changes = append(changes, types.PropertyChange{Name: "snapshot.currentSnapshot", Val: snapshot.Self}) Map.Update(vm, changes) - return nil, nil + return snapshot.Self, nil }) return &methods.CreateSnapshot_TaskBody{ diff --git a/simulator/virtual_machine_test.go b/simulator/virtual_machine_test.go index 90c07990b..bb79f6d96 100644 --- a/simulator/virtual_machine_test.go +++ b/simulator/virtual_machine_test.go @@ -773,11 +773,21 @@ func TestVmSnapshot(t *testing.T) { t.Fatal(err) } - err = task.Wait(ctx) + info, err := task.WaitForResult(ctx) if err != nil { t.Fatal(err) } + snapRef, ok := info.Result.(types.ManagedObjectReference) + if !ok { + t.Fatal("expected ManagedObjectRefrence result for CreateSnapshot") + } + + _, err = vm.FindSnapshot(ctx, snapRef.Value) + if err != nil { + t.Fatal(err, "snapshot should be found by result reference") + } + _, err = fieldValue(reflect.ValueOf(simVm), "snapshot") if err == errEmptyField { t.Fatal("snapshot property should not be 'nil' if there are snapshots")