forked from pool/libvirt
c5e448dfb3
- Update to libvirt 4.1.0 - Many incremental improvements and bug fixes, see http://libvirt.org/news.html - Dropped patches: 72adaf2f-revert-qemu-monitor-error-report.patch, 71d56a39-nodedev-fix-parse-PCI-address.patch, 68eed56b-conf-smbios-oem-strings.patch, 76977061-qemu-smbios-oem-strings.patch, 0c710a37-libxl-resume-lock-on-mig-failure.patch, 759b4d1b-virlog-determine-the-hostname-on-startup-CVE-2018-67.patch, c2dc6698-fix-deadlock-obtaining-hostname.patch, c391e07e-libxl-clock-settings.patch, ef71caea-libxl-memalign.patch, suse-apparmor-signal.patch OBS-URL: https://build.opensuse.org/request/show/583090 OBS-URL: https://build.opensuse.org/package/show/Virtualization/libvirt?expand=0&rev=674
291 lines
8.9 KiB
Diff
291 lines
8.9 KiB
Diff
Adjust libvirt-guests service to conform to SUSE standards
|
|
|
|
Index: libvirt-4.1.0/tools/libvirt-guests.init.in
|
|
===================================================================
|
|
--- libvirt-4.1.0.orig/tools/libvirt-guests.init.in
|
|
+++ libvirt-4.1.0/tools/libvirt-guests.init.in
|
|
@@ -4,27 +4,27 @@
|
|
# http://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/initscrcomconv.html
|
|
#
|
|
### BEGIN INIT INFO
|
|
-# Provides: libvirt-guests
|
|
-# Default-Start: 3 4 5
|
|
-# Default-Stop: 0 1 2 6
|
|
-# Required-Start: libvirtd
|
|
-# Required-Stop: libvirtd
|
|
+# Provides: libvirt-guests
|
|
+# Required-Start: $network $remote_fs libvirtd
|
|
+# Required-Stop: $network $remote_fs libvirtd
|
|
+# Default-Start: 3 5
|
|
+# Default-Stop: 0 1 2 4 6
|
|
# Should-Start:
|
|
# Should-Stop:
|
|
# Short-Description: suspend/resume libvirt guests on shutdown/boot
|
|
-# Description: This is a script for suspending active libvirt guests
|
|
-# on shutdown and resuming them on next boot
|
|
-# See https://libvirt.org
|
|
+# Description: This is a script for suspending active libvirt guests
|
|
+# on shutdown and resuming them on next boot
|
|
+# See https://libvirt.org
|
|
### END INIT INFO
|
|
|
|
# the following is chkconfig init header
|
|
#
|
|
-# libvirt-guests: suspend/resume libvirt guests on shutdown/boot
|
|
-#
|
|
-# chkconfig: 345 99 01
|
|
-# description: This is a script for suspending active libvirt guests \
|
|
-# on shutdown and resuming them on next boot \
|
|
-# See https://libvirt.org
|
|
+# libvirt-guests: suspend/resume libvirt guests on shutdown/boot
|
|
#
|
|
+# chkconfig: 345 99 01
|
|
+# description: This is a script for suspending active libvirt guests \
|
|
+# on shutdown and resuming them on next boot \
|
|
+# See https://libvirt.org
|
|
+
|
|
|
|
exec @libexecdir@/libvirt-guests.sh "$@"
|
|
Index: libvirt-4.1.0/tools/libvirt-guests.sh.in
|
|
===================================================================
|
|
--- libvirt-4.1.0.orig/tools/libvirt-guests.sh.in
|
|
+++ libvirt-4.1.0/tools/libvirt-guests.sh.in
|
|
@@ -16,14 +16,13 @@
|
|
# License along with this library. If not, see
|
|
# <http://www.gnu.org/licenses/>.
|
|
|
|
+. /etc/rc.status
|
|
+rc_reset
|
|
+
|
|
sysconfdir="@sysconfdir@"
|
|
localstatedir="@localstatedir@"
|
|
libvirtd="@sbindir@"/libvirtd
|
|
|
|
-# Source function library.
|
|
-test ! -r "$sysconfdir"/rc.d/init.d/functions ||
|
|
- . "$sysconfdir"/rc.d/init.d/functions
|
|
-
|
|
# Source gettext library.
|
|
# Make sure this file is recognized as having translations: _("dummy")
|
|
. "@bindir@"/gettext.sh
|
|
@@ -45,9 +44,11 @@ test -f "$sysconfdir"/sysconfig/libvirt-
|
|
. "$sysconfdir"/sysconfig/libvirt-guests
|
|
|
|
LISTFILE="$localstatedir"/lib/libvirt/libvirt-guests
|
|
-VAR_SUBSYS_LIBVIRT_GUESTS="$localstatedir"/lock/subsys/libvirt-guests
|
|
-
|
|
-RETVAL=0
|
|
+if [ -d "$localstatedir"/lock/subsys ]; then
|
|
+ VAR_SUBSYS_LIBVIRT_GUESTS="$localstatedir"/lock/subsys/libvirt-guests
|
|
+else
|
|
+ VAR_SUBSYS_LIBVIRT_GUESTS="$localstatedir"/lock/libvirt-guests
|
|
+fi
|
|
|
|
# retval COMMAND ARGUMENTS...
|
|
# run command with arguments and convert non-zero return value to 1 and set
|
|
@@ -55,7 +56,7 @@ RETVAL=0
|
|
retval() {
|
|
"$@"
|
|
if [ $? -ne 0 ]; then
|
|
- RETVAL=1
|
|
+ rc_failed 1
|
|
return 1
|
|
else
|
|
return 0
|
|
@@ -84,6 +85,26 @@ run_virsh_c() {
|
|
( export LC_ALL=C; run_virsh "$@" )
|
|
}
|
|
|
|
+await_daemon_up()
|
|
+{
|
|
+ uri=$1
|
|
+ i=1
|
|
+ rets=10
|
|
+ run_virsh $uri list > /dev/null 2>&1
|
|
+ while test $? -ne 0 && test $i -lt $rets; do
|
|
+ sleep 1
|
|
+ echo -n .
|
|
+ i=$(($i + 1))
|
|
+ run_virsh $uri list > /dev/null 2>&1
|
|
+ done
|
|
+ if [ $i -eq $rets ]; then
|
|
+ eval_gettext "libvirt-guests unable to connect to URI: $uri"
|
|
+ echo
|
|
+ return 1
|
|
+ fi
|
|
+ return 0
|
|
+}
|
|
+
|
|
# test_connect URI
|
|
# check if URI is reachable
|
|
test_connect()
|
|
@@ -117,7 +138,7 @@ list_guests() {
|
|
|
|
list=$(run_virsh_c "$uri" list --uuid $persistent)
|
|
if [ $? -ne 0 ]; then
|
|
- RETVAL=1
|
|
+ rc_failed 1
|
|
return 1
|
|
fi
|
|
|
|
@@ -143,7 +164,7 @@ guest_is_on() {
|
|
guest_running=false
|
|
id=$(run_virsh "$uri" domid "$uuid")
|
|
if [ $? -ne 0 ]; then
|
|
- RETVAL=1
|
|
+ rc_failed 1
|
|
return 1
|
|
fi
|
|
|
|
@@ -193,6 +214,13 @@ start() {
|
|
|
|
test_connect "$uri" || continue
|
|
|
|
+ await_daemon_up $uri
|
|
+ if [ $? -ne 0 ]; then
|
|
+ eval_gettext "Ignoring guests on $uri URI, can't connect"
|
|
+ echo
|
|
+ continue
|
|
+ fi
|
|
+
|
|
eval_gettext "Resuming guests on \$uri URI..."; echo
|
|
for guest in $list; do
|
|
name=$(guest_name "$uri" "$guest")
|
|
@@ -412,7 +440,7 @@ shutdown_guests_parallel()
|
|
timeout=$(($timeout - 1))
|
|
if [ $timeout -le 0 ]; then
|
|
eval_gettext "Timeout expired while shutting down domains"; echo
|
|
- RETVAL=1
|
|
+ rc_failed 1
|
|
return
|
|
fi
|
|
else
|
|
@@ -441,7 +469,7 @@ stop() {
|
|
if [ $SHUTDOWN_TIMEOUT -lt 0 ]; then
|
|
gettext "SHUTDOWN_TIMEOUT must be equal or greater than 0"
|
|
echo
|
|
- RETVAL=6
|
|
+ rc_failed 6
|
|
return
|
|
fi
|
|
fi
|
|
@@ -489,14 +517,14 @@ stop() {
|
|
if [ $? -ne 0 ]; then
|
|
eval_gettext "Failed to list persistent guests on \$uri"
|
|
echo
|
|
- RETVAL=1
|
|
+ rc_failed 1
|
|
set +f
|
|
return
|
|
fi
|
|
else
|
|
gettext "Failed to list transient guests"
|
|
echo
|
|
- RETVAL=1
|
|
+ rc_failed 1
|
|
set +f
|
|
return
|
|
fi
|
|
@@ -555,14 +583,13 @@ gueststatus() {
|
|
rh_status() {
|
|
if [ -f "$LISTFILE" ]; then
|
|
gettext "stopped, with saved guests"; echo
|
|
- RETVAL=3
|
|
+ rc_failed 3
|
|
else
|
|
if [ -f "$VAR_SUBSYS_LIBVIRT_GUESTS" ]; then
|
|
gettext "started"; echo
|
|
- RETVAL=0
|
|
else
|
|
gettext "stopped, with no saved guests"; echo
|
|
- RETVAL=3
|
|
+ rc_failed 3
|
|
fi
|
|
fi
|
|
}
|
|
@@ -607,4 +634,4 @@ case "$1" in
|
|
usage
|
|
;;
|
|
esac
|
|
-exit $RETVAL
|
|
+rc_exit
|
|
Index: libvirt-4.1.0/tools/libvirt-guests.sysconf
|
|
===================================================================
|
|
--- libvirt-4.1.0.orig/tools/libvirt-guests.sysconf
|
|
+++ libvirt-4.1.0/tools/libvirt-guests.sysconf
|
|
@@ -1,19 +1,29 @@
|
|
+## Path: System/Virtualization/libvirt-guests
|
|
+
|
|
+## Type: string
|
|
+## Default: default
|
|
# URIs to check for running guests
|
|
# example: URIS='default xen:/// vbox+tcp://host/system lxc:///'
|
|
-#URIS=default
|
|
+URIS=default
|
|
|
|
+## Type: string
|
|
+## Default: start
|
|
# action taken on host boot
|
|
# - start all guests which were running on shutdown are started on boot
|
|
# regardless on their autostart settings
|
|
# - ignore libvirt-guests init script won't start any guest on boot, however,
|
|
# guests marked as autostart will still be automatically started by
|
|
# libvirtd
|
|
-#ON_BOOT=start
|
|
+ON_BOOT=start
|
|
|
|
+## Type: integer
|
|
+## Default: 0
|
|
# Number of seconds to wait between each guest start. Set to 0 to allow
|
|
# parallel startup.
|
|
-#START_DELAY=0
|
|
+START_DELAY=0
|
|
|
|
+## Type: string
|
|
+## Default: suspend
|
|
# action taken on host shutdown
|
|
# - suspend all running guests are suspended using virsh managedsave
|
|
# - shutdown all running guests are asked to shutdown. Please be careful with
|
|
@@ -22,14 +32,18 @@
|
|
# which just needs a long time to shutdown. When setting
|
|
# ON_SHUTDOWN=shutdown, you must also set SHUTDOWN_TIMEOUT to a
|
|
# value suitable for your guests.
|
|
-#ON_SHUTDOWN=suspend
|
|
+ON_SHUTDOWN=suspend
|
|
|
|
+## Type: integer
|
|
+## Default: 0
|
|
# Number of guests will be shutdown concurrently, taking effect when
|
|
# "ON_SHUTDOWN" is set to "shutdown". If Set to 0, guests will be shutdown one
|
|
# after another. Number of guests on shutdown at any time will not exceed number
|
|
# set in this variable.
|
|
-#PARALLEL_SHUTDOWN=0
|
|
+PARALLEL_SHUTDOWN=0
|
|
|
|
+## Type: integer
|
|
+## Default: 300
|
|
# Number of seconds we're willing to wait for a guest to shut down. If parallel
|
|
# shutdown is enabled, this timeout applies as a timeout for shutting down all
|
|
# guests on a single URI defined in the variable URIS. If this is 0, then there
|
|
@@ -37,14 +51,18 @@
|
|
# request). The default value is 300 seconds (5 minutes).
|
|
#SHUTDOWN_TIMEOUT=300
|
|
|
|
+## Type: integer
|
|
+## Default: 0
|
|
# If non-zero, try to bypass the file system cache when saving and
|
|
# restoring guests, even though this may give slower operation for
|
|
# some file systems.
|
|
-#BYPASS_CACHE=0
|
|
+BYPASS_CACHE=0
|
|
|
|
+## Type: integer
|
|
+## Default: 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
|
|
+SYNC_TIME=0
|