[libvirt] [PATCH v2] 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 <mprivozn@redhat.com> --- diff to v1: -ignore the return value of domtime command 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 1b17bbe..9aa06fa 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 d1f2051..03e732f 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 a domain resume. Be aware, that +# this requires guest agent, which, moreover, has to run under supported +# system. For instance, qemu-ga doesn't support guest time synchronization +# on Windows guests, but Linux ones. By default, this piece of +# functionality is turned off. +#SYNC_TIME=1 -- 2.0.5

On Wed, Feb 18, 2015 at 05:09:41PM +0100, Michal Privoznik wrote:
diff --git a/tools/libvirt-guests.sysconf b/tools/libvirt-guests.sysconf index d1f2051..03e732f 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 a domain resume. Be aware, that
s/a domain/domain/
+# this requires guest agent, which, moreover, has to run under supported +# system.
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.
It would be nice to phrase this in a way that would not need updating when the support is implemented.
By default, this piece of +# functionality is turned off. +#SYNC_TIME=1
s/piece of// ACK regardless. Jan
participants (2)
-
Ján Tomko
-
Michal Privoznik