From 0fa15b19a93395ce5c8e0a606ff1ebd64f2bac85 Mon Sep 17 00:00:00 2001 From: Michal Privoznik Date: Wed, 18 Feb 2015 11:59:22 +0100 Subject: [PATCH] libvirt-guests: Allow time sync on guests resume Well, imagine domains were running, and as the host went down, they were managesaved. Later, after some time, the host went up again and domains got restored. But without correct time. And depending on how long was the host shut off, it may take some time for ntp to sync the time too. But hey, wait a minute. We have an API just for that! So: 1) Introduce SYNC_TIME variable in libvirt-guests.sysconf to allow users control over the new functionality 2) Call 'virsh domtime --sync $dom' in the libvirt-guests script. Unfortunately, this is all-or-nothing approach (just like anything else with the script). Domains are required to have configured and running qemu-ga inside. Signed-off-by: Michal Privoznik --- tools/libvirt-guests.sh.in | 5 +++++ tools/libvirt-guests.sysconf | 7 +++++++ 2 files changed, 12 insertions(+) diff --git a/tools/libvirt-guests.sh.in b/tools/libvirt-guests.sh.in index 1b17bbe42a..9aa06fa2b3 100644 --- a/tools/libvirt-guests.sh.in +++ b/tools/libvirt-guests.sh.in @@ -171,7 +171,9 @@ start() { isfirst=true bypass= + sync_time=false test "x$BYPASS_CACHE" = x0 || bypass=--bypass-cache + test "x$SYNC_TIME" = x0 || sync_time=true while read uri list; do configured=false set -f @@ -206,6 +208,9 @@ start() { retval run_virsh "$uri" start $bypass "$name" \ >/dev/null && \ gettext "done"; echo + if "$sync_time"; then + run_virsh "$uri" domtime --sync "$name" >/dev/null + fi fi fi done diff --git a/tools/libvirt-guests.sysconf b/tools/libvirt-guests.sysconf index d1f20510c0..277005677b 100644 --- a/tools/libvirt-guests.sysconf +++ b/tools/libvirt-guests.sysconf @@ -39,3 +39,10 @@ # restoring guests, even though this may give slower operation for # some file systems. #BYPASS_CACHE=0 + +# If non-zero, try to sync guest time on domain resume. Be aware, that +# this requires guest agent with support for time synchronization +# running in the guest. For instance, qemu-ga doesn't support guest time +# synchronization on Windows guests, but Linux ones. By default, this +# functionality is turned off. +#SYNC_TIME=1