diff options
author | Michael Weiser <michael.weiser@gmx.de> | 2019-12-09 22:53:14 +0100 |
---|---|---|
committer | Cole Robinson <crobinso@redhat.com> | 2019-12-17 17:51:05 -0500 |
commit | adbcb06dd4785170d4c37f1cebd3ef4e90d13a0f (patch) | |
tree | 8e74dda06eba87f98d39de11ebdec5b36b353bdb | |
parent | fa7d3eeb7bf230662f8c4e5d55a058967dba3040 (diff) | |
download | virt-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>
-rw-r--r-- | virtManager/object/domain.py | 13 |
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): |