forked from pool/libvirt
Accepting request 58315 from Virtualization
Accepted submit request 58315 from user jfehlig OBS-URL: https://build.opensuse.org/request/show/58315 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libvirt?expand=0&rev=64
This commit is contained in:
commit
3aef0fc39b
@ -1,18 +0,0 @@
|
|||||||
commit 45147ca37f3d93ea67b02a6c0e435bdf40b4ddc5
|
|
||||||
Author: Jean-Baptiste Rouault <jean-baptiste.rouault@diateam.net>
|
|
||||||
Date: Wed Dec 1 12:00:32 2010 +0100
|
|
||||||
|
|
||||||
Fix warning when macvtap support is disabled
|
|
||||||
|
|
||||||
diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c
|
|
||||||
index b0343c6..7cd0603 100644
|
|
||||||
--- a/src/qemu/qemu_conf.c
|
|
||||||
+++ b/src/qemu/qemu_conf.c
|
|
||||||
@@ -1689,6 +1689,7 @@ qemudPhysIfaceConnect(virConnectPtr conn,
|
|
||||||
(void)qemuCmdFlags;
|
|
||||||
(void)driver;
|
|
||||||
(void)vmuuid;
|
|
||||||
+ (void)vmop;
|
|
||||||
qemuReportError(VIR_ERR_INTERNAL_ERROR,
|
|
||||||
"%s", _("No support for macvtap device"));
|
|
||||||
rc = -1;
|
|
@ -1,121 +0,0 @@
|
|||||||
commit 474b1c1487828a17fe9e1025901334d9820ea350
|
|
||||||
Author: Matthias Bolte <matthias.bolte@googlemail.com>
|
|
||||||
Date: Wed Dec 1 15:43:40 2010 +0100
|
|
||||||
|
|
||||||
Fix undefined symbol errors when macvtap support is disabled
|
|
||||||
|
|
||||||
Use macvtap specific functions depending on WITH_MACVTAP.
|
|
||||||
|
|
||||||
Use #if instead of #ifdef to check for WITH_MACVTAP, because
|
|
||||||
WITH_MACVTAP is always defined with value 0 or 1.
|
|
||||||
|
|
||||||
Also export virVMOperationType{To|From}String unconditional,
|
|
||||||
because they are used unconditional in the domain config code.
|
|
||||||
|
|
||||||
Index: libvirt-0.8.6/src/libvirt_macvtap.syms
|
|
||||||
===================================================================
|
|
||||||
--- libvirt-0.8.6.orig/src/libvirt_macvtap.syms
|
|
||||||
+++ libvirt-0.8.6/src/libvirt_macvtap.syms
|
|
||||||
@@ -1,9 +1,10 @@
|
|
||||||
#
|
|
||||||
+# These symbols are dependent on WITH_MACVTAP.
|
|
||||||
+#
|
|
||||||
+
|
|
||||||
|
|
||||||
# macvtap.h
|
|
||||||
delMacvtap;
|
|
||||||
openMacvtapTap;
|
|
||||||
-virVMOperationTypeFromString;
|
|
||||||
-virVMOperationTypeToString;
|
|
||||||
vpAssociatePortProfileId;
|
|
||||||
vpDisassociatePortProfileId;
|
|
||||||
Index: libvirt-0.8.6/src/libvirt_private.syms
|
|
||||||
===================================================================
|
|
||||||
--- libvirt-0.8.6.orig/src/libvirt_private.syms
|
|
||||||
+++ libvirt-0.8.6/src/libvirt_private.syms
|
|
||||||
@@ -503,6 +503,11 @@ virLogStartup;
|
|
||||||
virLogUnlock;
|
|
||||||
|
|
||||||
|
|
||||||
+# macvtap.h
|
|
||||||
+virVMOperationTypeFromString;
|
|
||||||
+virVMOperationTypeToString;
|
|
||||||
+
|
|
||||||
+
|
|
||||||
# memory.h
|
|
||||||
virAlloc;
|
|
||||||
virAllocN;
|
|
||||||
Index: libvirt-0.8.6/src/qemu/qemu_driver.c
|
|
||||||
===================================================================
|
|
||||||
--- libvirt-0.8.6.orig/src/qemu/qemu_driver.c
|
|
||||||
+++ libvirt-0.8.6/src/qemu/qemu_driver.c
|
|
||||||
@@ -11869,6 +11869,7 @@ cleanup:
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
+#if WITH_MACVTAP
|
|
||||||
static void
|
|
||||||
qemudVPAssociatePortProfiles(virDomainDefPtr def) {
|
|
||||||
int i;
|
|
||||||
@@ -11903,6 +11904,10 @@ err_exit:
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+#else /* !WITH_MACVTAP */
|
|
||||||
+static void
|
|
||||||
+qemudVPAssociatePortProfiles(virDomainDefPtr def ATTRIBUTE_UNUSED) { }
|
|
||||||
+#endif /* WITH_MACVTAP */
|
|
||||||
|
|
||||||
/* Finish is the third and final step, and it runs on the destination host. */
|
|
||||||
static virDomainPtr
|
|
||||||
Index: libvirt-0.8.6/src/util/macvtap.h
|
|
||||||
===================================================================
|
|
||||||
--- libvirt-0.8.6.orig/src/util/macvtap.h
|
|
||||||
+++ libvirt-0.8.6/src/util/macvtap.h
|
|
||||||
@@ -57,11 +57,6 @@ struct _virVirtualPortProfileParams {
|
|
||||||
} u;
|
|
||||||
};
|
|
||||||
|
|
||||||
-
|
|
||||||
-# if defined(WITH_MACVTAP)
|
|
||||||
-
|
|
||||||
-# include "internal.h"
|
|
||||||
-
|
|
||||||
enum virVMOperationType {
|
|
||||||
VIR_VM_OP_CREATE,
|
|
||||||
VIR_VM_OP_SAVE,
|
|
||||||
@@ -75,6 +70,10 @@ enum virVMOperationType {
|
|
||||||
VIR_VM_OP_LAST
|
|
||||||
};
|
|
||||||
|
|
||||||
+# if WITH_MACVTAP
|
|
||||||
+
|
|
||||||
+# include "internal.h"
|
|
||||||
+
|
|
||||||
int openMacvtapTap(const char *ifname,
|
|
||||||
const unsigned char *macaddress,
|
|
||||||
const char *linkdev,
|
|
||||||
@@ -90,11 +89,9 @@ void delMacvtap(const char *ifname,
|
|
||||||
const char *linkdev,
|
|
||||||
virVirtualPortProfileParamsPtr virtPortProfile);
|
|
||||||
|
|
||||||
-# endif /* WITH_MACVTAP */
|
|
||||||
-
|
|
||||||
-# define MACVTAP_MODE_PRIVATE_STR "private"
|
|
||||||
-# define MACVTAP_MODE_VEPA_STR "vepa"
|
|
||||||
-# define MACVTAP_MODE_BRIDGE_STR "bridge"
|
|
||||||
+# define MACVTAP_MODE_PRIVATE_STR "private"
|
|
||||||
+# define MACVTAP_MODE_VEPA_STR "vepa"
|
|
||||||
+# define MACVTAP_MODE_BRIDGE_STR "bridge"
|
|
||||||
|
|
||||||
int vpAssociatePortProfileId(const char *macvtap_ifname,
|
|
||||||
const unsigned char *macvtap_macaddr,
|
|
||||||
@@ -109,6 +106,8 @@ int vpDisassociatePortProfileId(const ch
|
|
||||||
const virVirtualPortProfileParamsPtr virtPort,
|
|
||||||
enum virVMOperationType vmOp);
|
|
||||||
|
|
||||||
+# endif /* WITH_MACVTAP */
|
|
||||||
+
|
|
||||||
VIR_ENUM_DECL(virVirtualPort)
|
|
||||||
VIR_ENUM_DECL(virVMOperation)
|
|
||||||
|
|
48
a43c7338-dnsmasq-hostfile-fix.patch
Normal file
48
a43c7338-dnsmasq-hostfile-fix.patch
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
commit a43c7338d8772aa3a5bc0ec5914d3c28c20447c3
|
||||||
|
Author: Kay Schubert <kayegypt@web.de>
|
||||||
|
Date: Thu Jan 6 09:14:58 2011 +0100
|
||||||
|
|
||||||
|
bridge: Fix generation of dnsmasq's --dhcp-hostsfile option
|
||||||
|
|
||||||
|
I added a host definition to a network definition:
|
||||||
|
|
||||||
|
<network>
|
||||||
|
<name>Lokal</name>
|
||||||
|
<uuid>2074f379-b82c-423f-9ada-305d8088daaa</uuid>
|
||||||
|
<bridge name='virbr1' stp='on' delay='0' />
|
||||||
|
<ip address='192.168.180.1' netmask='255.255.255.0'>
|
||||||
|
<dhcp>
|
||||||
|
<range start='192.168.180.128' end='192.168.180.254' />
|
||||||
|
<host mac='23:74:00:03:42:02' name='somevm' ip='192.168.180.10' />
|
||||||
|
</dhcp>
|
||||||
|
</ip>
|
||||||
|
</network>
|
||||||
|
|
||||||
|
But due to the wrong if-statement the argument --dhcp-hostsfile doesn't get
|
||||||
|
added to the dnsmasq command. The patch below fixes it for me.
|
||||||
|
|
||||||
|
diff --git a/AUTHORS b/AUTHORS
|
||||||
|
index b204bd6..721b8f8 100644
|
||||||
|
--- a/AUTHORS
|
||||||
|
+++ b/AUTHORS
|
||||||
|
@@ -142,6 +142,7 @@ Patches have also been contributed by:
|
||||||
|
Josh Durgin <joshd@hq.newdream.net>
|
||||||
|
Roopa Prabhu <roprabhu@cisco.com>
|
||||||
|
Paweł Krześniak <pawel.krzesniak@gmail.com>
|
||||||
|
+ Kay Schubert <kayegypt@web.de>
|
||||||
|
|
||||||
|
[....send patches to get your name here....]
|
||||||
|
|
||||||
|
diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
|
||||||
|
index 7d43ef5..4c64a74 100644
|
||||||
|
--- a/src/network/bridge_driver.c
|
||||||
|
+++ b/src/network/bridge_driver.c
|
||||||
|
@@ -524,7 +524,7 @@ networkBuildDnsmasqArgv(virNetworkObjPtr network,
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (networkSaveDnsmasqHostsfile(ipdef, dctx, false) < 0) {
|
||||||
|
+ if (networkSaveDnsmasqHostsfile(ipdef, dctx, false) == 0) {
|
||||||
|
virCommandAddArgPair(cmd, "--dhcp-hostsfile",
|
||||||
|
dctx->hostsfile->path);
|
||||||
|
}
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:00392714fb1aca8c75d2dbe88dad91744da0028e7b259918a40ac930edabb0d9
|
|
||||||
size 8912706
|
|
3
libvirt-0.8.7.tar.bz2
Normal file
3
libvirt-0.8.7.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:98d76f1aa9ce28e887271969f67f7a470b554cfb1a22c4e9d2f2ae6db45e6135
|
||||||
|
size 9205470
|
@ -1,3 +1,34 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Jan 14 15:39:16 MST 2011 - jfehlig@novell.com
|
||||||
|
|
||||||
|
- Fix generation of dnsmasq's --dhcp-hostsfile option
|
||||||
|
a43c7338-dnsmasq-hostfile-fix.patch
|
||||||
|
- Disable yajl support as the library does not yet exist in
|
||||||
|
SuSE distros.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
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
|
||||||
|
|
||||||
|
- Update to libvirt 0.8.7
|
||||||
|
- Preliminary support for VirtualBox 4.0
|
||||||
|
- IPv6 support
|
||||||
|
- Add VMware Workstation and Player driver
|
||||||
|
- Add network disk support
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Dec 22 14:41:46 MST 2010 - jfehlig@novell.com
|
||||||
|
|
||||||
|
- Fix VNC port reservation race in qemu driver
|
||||||
|
c58b1056-init-bitmap-size.patch
|
||||||
|
bnc#659431
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri Dec 10 16:31:02 MDT 2010 - jfehlig@novell.com
|
Fri Dec 10 16:31:02 MDT 2010 - jfehlig@novell.com
|
||||||
|
|
||||||
|
23
libvirt.spec
23
libvirt.spec
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package libvirt (Version 0.8.6)
|
# spec file for package libvirt (Version 0.8.7)
|
||||||
#
|
#
|
||||||
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@ -39,6 +39,8 @@
|
|||||||
%define with_selinux 1
|
%define with_selinux 1
|
||||||
%define with_apparmor 0
|
%define with_apparmor 0
|
||||||
# options
|
# options
|
||||||
|
# still no yajl json library
|
||||||
|
%define with_yajl 0
|
||||||
%if 0%{?suse_version} >= 1130
|
%if 0%{?suse_version} >= 1130
|
||||||
%define with_capng 1
|
%define with_capng 1
|
||||||
%else
|
%else
|
||||||
@ -46,12 +48,10 @@
|
|||||||
%endif
|
%endif
|
||||||
%if 0%{?suse_version} >= 1140
|
%if 0%{?suse_version} >= 1140
|
||||||
%define with_netcf 1
|
%define with_netcf 1
|
||||||
%define with_yajl 1
|
|
||||||
%define with_macvtap 1
|
%define with_macvtap 1
|
||||||
%define with_virtualport 1
|
%define with_virtualport 1
|
||||||
%else
|
%else
|
||||||
%define with_netcf 0
|
%define with_netcf 0
|
||||||
%define with_yajl 0
|
|
||||||
%define with_macvtap 0
|
%define with_macvtap 0
|
||||||
%define with_virtualport 0
|
%define with_virtualport 0
|
||||||
%endif
|
%endif
|
||||||
@ -144,7 +144,7 @@ Url: http://libvirt.org/
|
|||||||
License: LGPLv2.1+
|
License: LGPLv2.1+
|
||||||
Group: Development/Libraries/C and C++
|
Group: Development/Libraries/C and C++
|
||||||
AutoReqProv: yes
|
AutoReqProv: yes
|
||||||
Version: 0.8.6
|
Version: 0.8.7
|
||||||
Release: 1
|
Release: 1
|
||||||
Summary: A C toolkit to interract with the virtualization capabilities of Linux
|
Summary: A C toolkit to interract with the virtualization capabilities of Linux
|
||||||
# The client side, i.e. shared libs and virsh are in a subpackage
|
# The client side, i.e. shared libs and virsh are in a subpackage
|
||||||
@ -169,8 +169,7 @@ Recommends: PolicyKit >= 0.6
|
|||||||
Source0: %{name}-%{version}.tar.bz2
|
Source0: %{name}-%{version}.tar.bz2
|
||||||
Source1: libvirtd.init
|
Source1: libvirtd.init
|
||||||
# Upstream patches
|
# Upstream patches
|
||||||
Patch0: 45147ca3-macvtap-warning.patch
|
Patch0: a43c7338-dnsmasq-hostfile-fix.patch
|
||||||
Patch1: 474b1c14-macvtap-undefined.patch
|
|
||||||
# Need to go upstream
|
# Need to go upstream
|
||||||
Patch100: xen-name-for-devid.patch
|
Patch100: xen-name-for-devid.patch
|
||||||
Patch102: clone.patch
|
Patch102: clone.patch
|
||||||
@ -179,6 +178,7 @@ Patch104: xen-domctl-ver7.patch
|
|||||||
Patch105: xend-disk-order.patch
|
Patch105: xend-disk-order.patch
|
||||||
# Our patches
|
# Our patches
|
||||||
Patch200: libvirtd-defaults.patch
|
Patch200: libvirtd-defaults.patch
|
||||||
|
Patch201: use-libvirt-guests-on-suse.patch
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
|
|
||||||
%description
|
%description
|
||||||
@ -283,13 +283,13 @@ Authors:
|
|||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
%patch0 -p1
|
%patch0 -p1
|
||||||
%patch1 -p1
|
|
||||||
%patch100 -p1
|
%patch100 -p1
|
||||||
%patch102
|
%patch102
|
||||||
%patch103 -p1
|
%patch103 -p1
|
||||||
%patch104 -p1
|
%patch104 -p1
|
||||||
%patch105 -p1
|
%patch105 -p1
|
||||||
%patch200 -p1
|
%patch200 -p1
|
||||||
|
%patch201 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%if ! %{with_xen}
|
%if ! %{with_xen}
|
||||||
@ -422,10 +422,11 @@ ln_dupes()
|
|||||||
ln_dupes .%{_docdir}/%{name}
|
ln_dupes .%{_docdir}/%{name}
|
||||||
ln_dupes ./usr/share/locale
|
ln_dupes ./usr/share/locale
|
||||||
)
|
)
|
||||||
# init script
|
# init scripts
|
||||||
mkdir -p $RPM_BUILD_ROOT/etc/init.d
|
mkdir -p $RPM_BUILD_ROOT/etc/init.d
|
||||||
install %SOURCE1 $RPM_BUILD_ROOT/etc/init.d/libvirtd
|
install %SOURCE1 $RPM_BUILD_ROOT/etc/init.d/libvirtd
|
||||||
ln -s /etc/init.d/libvirtd $RPM_BUILD_ROOT/usr/sbin/rclibvirtd
|
ln -s /etc/init.d/libvirtd $RPM_BUILD_ROOT/usr/sbin/rclibvirtd
|
||||||
|
ln -s /etc/init.d/libvirt-guests $RPM_BUILD_ROOT/usr/sbin/rclibvirt-guests
|
||||||
%find_lang %{name}
|
%find_lang %{name}
|
||||||
|
|
||||||
%clean
|
%clean
|
||||||
@ -435,6 +436,7 @@ rm -rf $RPM_BUILD_ROOT
|
|||||||
/sbin/ldconfig
|
/sbin/ldconfig
|
||||||
%if 0%{?sles_version}
|
%if 0%{?sles_version}
|
||||||
%{fillup_and_insserv -f -y libvirtd}
|
%{fillup_and_insserv -f -y libvirtd}
|
||||||
|
%{fillup_only -n libvirt-guests}
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%preun
|
%preun
|
||||||
@ -511,6 +513,9 @@ rm -rf $RPM_BUILD_ROOT
|
|||||||
%{_bindir}/virt-xml-validate
|
%{_bindir}/virt-xml-validate
|
||||||
%{_bindir}/virt-pki-validate
|
%{_bindir}/virt-pki-validate
|
||||||
%{_libdir}/lib*.so.*
|
%{_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/
|
||||||
%dir %{_datadir}/libvirt/schemas/
|
%dir %{_datadir}/libvirt/schemas/
|
||||||
|
230
use-libvirt-guests-on-suse.patch
Normal file
230
use-libvirt-guests-on-suse.patch
Normal file
@ -0,0 +1,230 @@
|
|||||||
|
Index: libvirt-0.8.7/tools/Makefile.am
|
||||||
|
===================================================================
|
||||||
|
--- libvirt-0.8.7.orig/tools/Makefile.am
|
||||||
|
+++ libvirt-0.8.7/tools/Makefile.am
|
||||||
|
@@ -129,18 +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
|
||||||
|
+ 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 \
|
||||||
|
- $(DESTDIR)$(sysconfdir)/sysconfig/libvirt-guests
|
||||||
|
+ rm -f $(DESTDIR)$(sysconfdir)/init.d/libvirt-guests \
|
||||||
|
+ $(DESTDIR)$(sysconfdir)/sysconfig/libvirt-guests \
|
||||||
|
+ $(DESTDIR)/var/adm/fillup-templates/sysconfig.libvirt-guests
|
||||||
|
|
||||||
|
BUILT_SOURCES += libvirt-guests.init
|
||||||
|
|
||||||
|
@@ -152,11 +152,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…
x
Reference in New Issue
Block a user