forked from pool/libvirt
Support libvirt-guests on SuSE distros
OBS-URL: https://build.opensuse.org/package/show/Virtualization/libvirt?expand=0&rev=83
This commit is contained in:
parent
a86da6b339
commit
87d443002e
@ -1,3 +1,10 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Jan 11 16:40:27 MST 2011 - jfehlig@novell.com
|
||||
|
||||
- Support libvirt-guests on SuSE distros
|
||||
use-libvirt-guests-on-suse.patch
|
||||
bnc#653398
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jan 3 13:12:21 MST 2011 - jfehlig@novell.com
|
||||
|
||||
|
@ -177,6 +177,7 @@ Patch104: xen-domctl-ver7.patch
|
||||
Patch105: xend-disk-order.patch
|
||||
# Our patches
|
||||
Patch200: libvirtd-defaults.patch
|
||||
Patch201: use-libvirt-guests-on-suse.patch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
|
||||
%description
|
||||
@ -286,6 +287,7 @@ Authors:
|
||||
%patch104 -p1
|
||||
%patch105 -p1
|
||||
%patch200 -p1
|
||||
%patch201 -p1
|
||||
|
||||
%build
|
||||
%if ! %{with_xen}
|
||||
@ -431,6 +433,7 @@ rm -rf $RPM_BUILD_ROOT
|
||||
/sbin/ldconfig
|
||||
%if 0%{?sles_version}
|
||||
%{fillup_and_insserv -f -y libvirtd}
|
||||
%{fillup_only -n libvirt-guests}
|
||||
%endif
|
||||
|
||||
%preun
|
||||
@ -507,6 +510,9 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%{_bindir}/virt-xml-validate
|
||||
%{_bindir}/virt-pki-validate
|
||||
%{_libdir}/lib*.so.*
|
||||
%{_localstatedir}/adm/fillup-templates/sysconfig.libvirt-guests
|
||||
%config /etc/init.d/libvirt-guests
|
||||
%{_sbindir}/rclibvirt-guests
|
||||
|
||||
%dir %{_datadir}/libvirt/
|
||||
%dir %{_datadir}/libvirt/schemas/
|
||||
|
229
use-libvirt-guests-on-suse.patch
Normal file
229
use-libvirt-guests-on-suse.patch
Normal file
@ -0,0 +1,229 @@
|
||||
Index: libvirt-0.8.7/tools/Makefile.am
|
||||
===================================================================
|
||||
--- libvirt-0.8.7.orig/tools/Makefile.am
|
||||
+++ libvirt-0.8.7/tools/Makefile.am
|
||||
@@ -129,17 +129,18 @@ install-data-local: install-init
|
||||
|
||||
uninstall-local: uninstall-init
|
||||
|
||||
-if LIBVIRT_INIT_SCRIPT_RED_HAT
|
||||
install-init: libvirt-guests.init
|
||||
- mkdir -p $(DESTDIR)$(sysconfdir)/rc.d/init.d
|
||||
+ mkdir -p $(DESTDIR)$(sysconfdir)/init.d
|
||||
$(INSTALL_SCRIPT) libvirt-guests.init \
|
||||
- $(DESTDIR)$(sysconfdir)/rc.d/init.d/libvirt-guests
|
||||
- mkdir -p $(DESTDIR)$(sysconfdir)/sysconfig
|
||||
+ $(DESTDIR)$(sysconfdir)/init.d/libvirt-guests
|
||||
+ ln -s $(DESTDIR)$(sysconfdir)/init.d/libvirt-guests \
|
||||
+ $(DESTDIR)/usr/sbin/rclibvirt-guests
|
||||
+ mkdir -p $(DESTDIR)/var/adm/fillup-templates
|
||||
$(INSTALL_DATA) $(srcdir)/libvirt-guests.sysconf \
|
||||
- $(DESTDIR)$(sysconfdir)/sysconfig/libvirt-guests
|
||||
+ $(DESTDIR)/var/adm/fillup-templates/sysconfig.libvirt-guests
|
||||
|
||||
uninstall-init:
|
||||
- rm -f $(DESTDIR)$(sysconfdir)/rc.d/init.d/libvirt-guests \
|
||||
+ rm -f $(DESTDIR)$(sysconfdir)/init.d/libvirt-guests \
|
||||
$(DESTDIR)$(sysconfdir)/sysconfig/libvirt-guests
|
||||
|
||||
BUILT_SOURCES += libvirt-guests.init
|
||||
@@ -152,11 +153,6 @@ libvirt-guests.init: libvirt-guests.init
|
||||
< $< > $@-t && \
|
||||
chmod a+x $@-t && \
|
||||
mv $@-t $@
|
||||
-else
|
||||
-install-init:
|
||||
-uninstall-init:
|
||||
-libvirt-guests.init:
|
||||
-endif # LIBVIRT_INIT_SCRIPT_RED_HAT
|
||||
|
||||
|
||||
CLEANFILES = $(bin_SCRIPTS) $(man1_MANS)
|
||||
Index: libvirt-0.8.7/tools/libvirt-guests.sysconf
|
||||
===================================================================
|
||||
--- libvirt-0.8.7.orig/tools/libvirt-guests.sysconf
|
||||
+++ libvirt-0.8.7/tools/libvirt-guests.sysconf
|
||||
@@ -1,15 +1,23 @@
|
||||
+## Path: System/Virtualization/libvirt
|
||||
+
|
||||
+## 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: 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
|
||||
@@ -18,7 +26,9 @@
|
||||
# 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: 120
|
||||
# number of seconds we're willing to wait for a guest to shut down
|
||||
-#SHUTDOWN_TIMEOUT=0
|
||||
+SHUTDOWN_TIMEOUT=120
|
||||
Index: libvirt-0.8.7/tools/libvirt-guests.init.in
|
||||
===================================================================
|
||||
--- libvirt-0.8.7.orig/tools/libvirt-guests.init.in
|
||||
+++ libvirt-0.8.7/tools/libvirt-guests.init.in
|
||||
@@ -4,10 +4,10 @@
|
||||
#
|
||||
### BEGIN INIT INFO
|
||||
# Provides: libvirt-guests
|
||||
-# Required-Start: libvirtd
|
||||
-# Required-Stop: libvirtd
|
||||
-# Default-Start: 2 3 4 5
|
||||
-# Default-Stop: 0 1 6
|
||||
+# Required-Start: $network $remote_fs libvirtd
|
||||
+# Required-Stop: $network $remote_fs libvirtd
|
||||
+# Default-Start: 3 5
|
||||
+# Default-Stop: 0 1 2 4 6
|
||||
# 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
|
||||
@@ -24,14 +24,13 @@
|
||||
# See http://libvirt.org
|
||||
#
|
||||
|
||||
+. /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
|
||||
-
|
||||
URIS=default
|
||||
ON_BOOT=start
|
||||
ON_SHUTDOWN=suspend
|
||||
@@ -42,12 +41,10 @@ test -f "$sysconfdir"/sysconfig/libvirt-
|
||||
LISTFILE="$localstatedir"/lib/libvirt/libvirt-guests
|
||||
VAR_SUBSYS_LIBVIRT_GUESTS="$localstatedir"/lock/subsys/libvirt-guests
|
||||
|
||||
-RETVAL=0
|
||||
-
|
||||
retval() {
|
||||
"$@"
|
||||
if [ $? -ne 0 ]; then
|
||||
- RETVAL=1
|
||||
+ rc_failed 1
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
@@ -71,12 +68,31 @@ 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 [ $? -ne 0 -a $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
|
||||
+ echo $"libvirt-guests unable to connect to URI: $uri"
|
||||
+ return 1
|
||||
+ fi
|
||||
+ return 0
|
||||
+}
|
||||
+
|
||||
list_guests() {
|
||||
uri=$1
|
||||
|
||||
list=$(run_virsh_c $uri list)
|
||||
if [ $? -ne 0 ]; then
|
||||
- RETVAL=1
|
||||
+ rc_failed 1
|
||||
return 1
|
||||
fi
|
||||
|
||||
@@ -84,7 +100,7 @@ list_guests() {
|
||||
for id in $(echo "$list" | awk 'NR > 2 {print $1}'); do
|
||||
uuid=$(run_virsh_c $uri dominfo $id | awk '/^UUID:/{print $2}')
|
||||
if [ -z "$uuid" ]; then
|
||||
- RETVAL=1
|
||||
+ rc_failed 1
|
||||
return 1
|
||||
fi
|
||||
uuids="$uuids $uuid"
|
||||
@@ -111,7 +127,7 @@ guest_is_on() {
|
||||
guest_running=false
|
||||
info=$(run_virsh_c $uri dominfo $uuid)
|
||||
if [ $? -ne 0 ]; then
|
||||
- RETVAL=1
|
||||
+ rc_failed 1
|
||||
return 1
|
||||
fi
|
||||
|
||||
@@ -148,6 +164,12 @@ start() {
|
||||
continue
|
||||
fi
|
||||
|
||||
+ await_daemon_up $uri
|
||||
+ if [ $? -ne 0 ]; then
|
||||
+ echo $"Ignoring guests on $uri URI, can't connect"
|
||||
+ continue
|
||||
+ fi
|
||||
+
|
||||
echo $"Resuming guests on $uri URI..."
|
||||
for guest in $list; do
|
||||
name=$(guest_name $uri $guest)
|
||||
@@ -227,7 +249,7 @@ stop() {
|
||||
suspending=false
|
||||
if [ $SHUTDOWN_TIMEOUT -le 0 ]; then
|
||||
echo $"Shutdown action requested but SHUTDOWN_TIMEOUT was not set"
|
||||
- RETVAL=6
|
||||
+ rc_failed 6
|
||||
return
|
||||
fi
|
||||
fi
|
||||
@@ -291,14 +313,13 @@ gueststatus() {
|
||||
rh_status() {
|
||||
if [ -f "$LISTFILE" ]; then
|
||||
echo $"stopped, with saved guests"
|
||||
- RETVAL=3
|
||||
+ rc_failed 3
|
||||
else
|
||||
if [ -f "$VAR_SUBSYS_LIBVIRT_GUESTS" ]; then
|
||||
echo $"started"
|
||||
else
|
||||
echo $"stopped, with no saved guests"
|
||||
fi
|
||||
- RETVAL=0
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -340,4 +361,4 @@ case "$1" in
|
||||
usage
|
||||
;;
|
||||
esac
|
||||
-exit $RETVAL
|
||||
+rc_exit
|
Loading…
Reference in New Issue
Block a user