From 10ecf088d3ac651b0268387e91019aa4ab88e7af Mon Sep 17 00:00:00 2001 From: jonah-kohn Date: Wed, 13 Mar 2024 17:03:34 -0700 Subject: [PATCH 1/2] Add command to restore VM --- pkg/virtualization/core/virtualsystem/virtualmachine.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pkg/virtualization/core/virtualsystem/virtualmachine.go b/pkg/virtualization/core/virtualsystem/virtualmachine.go index 277ed35f1b..68b86b9b99 100644 --- a/pkg/virtualization/core/virtualsystem/virtualmachine.go +++ b/pkg/virtualization/core/virtualsystem/virtualmachine.go @@ -227,6 +227,15 @@ func (vm *VirtualMachine) Resume() error { return vm.WaitForState(Running, StateChangeTimeoutSeconds) } +// Restore Virtual Machine +func (vm *VirtualMachine) Restore() error { + err := vm.ChangeState(Running, job.ConcreteJob_JobType_Restore_Virtual_Machine, -1) + if err != nil { + return err + } + return vm.WaitForState(Running, StateChangeTimeoutSeconds) +} + // Pause Virtual Machine func (vm *VirtualMachine) Pause() error { err := vm.ChangeState(Paused, job.ConcreteJob_JobType_Pause_Virtual_Machine, -1) From 7854ffe44d6307a825d42ac16afeb15e35135b54 Mon Sep 17 00:00:00 2001 From: jonah-kohn Date: Thu, 14 Mar 2024 16:09:13 -0700 Subject: [PATCH 2/2] add restore test --- .../core/virtualsystem/virtualmachine_test.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/pkg/virtualization/core/virtualsystem/virtualmachine_test.go b/pkg/virtualization/core/virtualsystem/virtualmachine_test.go index 9e237fa3c5..611fd71b61 100644 --- a/pkg/virtualization/core/virtualsystem/virtualmachine_test.go +++ b/pkg/virtualization/core/virtualsystem/virtualmachine_test.go @@ -131,6 +131,23 @@ func TestVirtualMachineResume(t *testing.T) { } } +func TestVirtualMachineRestore(t *testing.T) { + vm, err := GetVirtualMachineByVMName(whost, "test") + if err != nil { + t.Fatal("Failed " + err.Error()) + } + defer vm.Close() + + err = vm.Save() + if err != nil { + t.Fatal("Failed " + err.Error()) + } + err = vm.Restore() + if err != nil { + t.Fatal("Failed " + err.Error()) + } +} + func TestGetVirtualMachineSetting(t *testing.T) { vm, err := GetVirtualMachineByVMName(whost, "test") if err != nil {