summaryrefslogtreecommitdiff
path: root/virtManager
diff options
context:
space:
mode:
authorMichael Weiser <michael.weiser@gmx.de>2019-12-09 22:53:14 +0100
committerCole Robinson <crobinso@redhat.com>2019-12-17 17:51:05 -0500
commitadbcb06dd4785170d4c37f1cebd3ef4e90d13a0f (patch)
tree8e74dda06eba87f98d39de11ebdec5b36b353bdb /virtManager
parentfa7d3eeb7bf230662f8c4e5d55a058967dba3040 (diff)
downloadvirt-manager-adbcb06dd4785170d4c37f1cebd3ef4e90d13a0f.tar.gz
virtManager: object: domain: Set time on unpause and revert
Wire up setting of guest time on snapshot restore and resume from pause. Do not try to set time if the restored snapshot does not contain a running domain state. Reviewed-by: Cole Robinson <crobinso@redhat.com> Signed-off-by: Michael Weiser <michael.weiser@gmx.de> Suggested-by: Cole Robinson <crobinso@redhat.com>
Diffstat (limited to 'virtManager')
-rw-r--r--virtManager/object/domain.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/virtManager/object/domain.py b/virtManager/object/domain.py
index 24c2ca75..bad7108e 100644
--- a/virtManager/object/domain.py
+++ b/virtManager/object/domain.py
@@ -156,6 +156,11 @@ class vmmDomainSnapshot(vmmLibvirtObject):
log.debug("Unknown status %d, using NOSTATE", status)
status = libvirt.VIR_DOMAIN_NOSTATE
return LibvirtEnumMap.VM_STATUS_ICONS[status]
+ def is_running(self):
+ """
+ Captured state is a running domain.
+ """
+ return self._state_str_to_int() in [libvirt.VIR_DOMAIN_RUNNING]
def is_current(self):
return self._backend.isCurrent()
@@ -1044,7 +1049,14 @@ class vmmDomain(vmmLibvirtObject):
@vmmLibvirtObject.lifecycle_action
def revert_to_snapshot(self, snap):
+ # no use trying to set the guest time if is going to be switched off
+ # after reverting to the snapshot
+ target_run_state = snap.is_running()
self._backend.revertToSnapshot(snap.get_backend())
+ # looking at the domain state after revert will always come back as
+ # paused, so look at the snapshot state instead
+ if target_run_state == libvirt.VIR_DOMAIN_RUNNING:
+ self._set_time()
def create_snapshot(self, xml, redefine=False):
flags = 0
@@ -1369,6 +1381,7 @@ class vmmDomain(vmmLibvirtObject):
@vmmLibvirtObject.lifecycle_action
def resume(self):
self._backend.resume()
+ self._set_time()
@vmmLibvirtObject.lifecycle_action
def save(self, meter=None):