core: implement VM suspend
Required for proper host sleep when netvm is running.
This commit is contained in:
parent
e67e9a4be1
commit
cf41d94754
@ -1727,25 +1727,25 @@ class QubesVm(object):
|
|||||||
self.libvirt_domain.destroy()
|
self.libvirt_domain.destroy()
|
||||||
|
|
||||||
def suspend(self):
|
def suspend(self):
|
||||||
# TODO!!!
|
|
||||||
if dry_run:
|
if dry_run:
|
||||||
return
|
return
|
||||||
|
|
||||||
if not self.is_running() and not self.is_paused():
|
if not self.is_running() and not self.is_paused() or \
|
||||||
raise QubesException ("VM already stopped!")
|
self.get_power_state() == "Suspended":
|
||||||
|
raise QubesException ("VM not running!")
|
||||||
|
|
||||||
if len (self.pcidevs) > 0:
|
if len (self.pcidevs) > 0:
|
||||||
raise NotImplementedError
|
self.libvirt_domain.pMSuspendForDuration(
|
||||||
|
libvirt.VIR_NODE_SUSPEND_TARGET_MEM, 0, 0)
|
||||||
else:
|
else:
|
||||||
self.pause()
|
self.pause()
|
||||||
|
|
||||||
def resume(self):
|
def resume(self):
|
||||||
# TODO!!!
|
|
||||||
if dry_run:
|
if dry_run:
|
||||||
return
|
return
|
||||||
|
|
||||||
if self.get_power_state() == "Suspended":
|
if self.get_power_state() == "Suspended":
|
||||||
raise NotImplementedError
|
self.libvirt_domain.pMWakeup()
|
||||||
else:
|
else:
|
||||||
self.unpause()
|
self.unpause()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user