SHA256
1
0
forked from pool/libvirt
OBS User unknown 2009-04-24 21:15:55 +00:00 committed by Git OBS Bridge
parent 6ba690802b
commit 4a6373529e
14 changed files with 331 additions and 482 deletions

View File

@ -2,7 +2,7 @@ Index: src/lxc_container.c
===================================================================
--- src/lxc_container.c.orig
+++ src/lxc_container.c
@@ -603,6 +603,9 @@ int lxcContainerStart(virDomainDefPtr de
@@ -617,6 +617,9 @@ int lxcContainerStart(virDomainDefPtr de
lxc_child_argv_t args = { def, nveths, veths, control, ttyPath };
/* allocate a stack for the container */
@ -10,9 +10,9 @@ Index: src/lxc_container.c
+ stacksize *= 2;
+#endif
if (VIR_ALLOC_N(stack, stacksize) < 0) {
lxcError(NULL, NULL, VIR_ERR_NO_MEMORY, NULL);
virReportOOMError(NULL);
return -1;
@@ -614,7 +617,11 @@ int lxcContainerStart(virDomainDefPtr de
@@ -628,7 +631,11 @@ int lxcContainerStart(virDomainDefPtr de
if (def->nets != NULL)
flags |= CLONE_NEWNET;
@ -24,7 +24,7 @@ Index: src/lxc_container.c
VIR_FREE(stack);
DEBUG("clone() returned, %d", pid);
@@ -640,18 +647,26 @@ int lxcContainerAvailable(int features)
@@ -654,18 +661,26 @@ int lxcContainerAvailable(int features)
char *childStack;
char *stack;
int childStatus;
@ -52,4 +52,4 @@ Index: src/lxc_container.c
+#endif
VIR_FREE(stack);
if (cpid < 0) {
DEBUG("clone call returned %s, container support is not enabled",
char ebuf[1024];

View File

@ -1,152 +0,0 @@
diff --git a/src/libvirt.c b/src/libvirt.c
--- a/src/libvirt.c
+++ b/src/libvirt.c
@@ -2296,6 +2296,16 @@ virDomainMigrate (virDomainPtr domain,
conn = domain->conn; /* Source connection. */
if (!VIR_IS_CONNECT (dconn)) {
virLibConnError (conn, VIR_ERR_INVALID_CONN, __FUNCTION__);
+ return NULL;
+ }
+
+ if (domain->conn->flags & VIR_CONNECT_RO) {
+ virLibDomainError(domain, VIR_ERR_OPERATION_DENIED, __FUNCTION__);
+ return NULL;
+ }
+ if (dconn->flags & VIR_CONNECT_RO) {
+ /* NB, delibrately report error against source object, not dest here */
+ virLibDomainError(domain, VIR_ERR_OPERATION_DENIED, __FUNCTION__);
return NULL;
}
@@ -2426,6 +2436,11 @@ virDomainMigratePrepare (virConnectPtr d
return -1;
}
+ if (dconn->flags & VIR_CONNECT_RO) {
+ virLibConnError(dconn, VIR_ERR_OPERATION_DENIED, __FUNCTION__);
+ return -1;
+ }
+
if (dconn->driver->domainMigratePrepare)
return dconn->driver->domainMigratePrepare (dconn, cookie, cookielen,
uri_in, uri_out,
@@ -2457,6 +2472,11 @@ virDomainMigratePerform (virDomainPtr do
}
conn = domain->conn;
+ if (domain->conn->flags & VIR_CONNECT_RO) {
+ virLibDomainError(domain, VIR_ERR_OPERATION_DENIED, __FUNCTION__);
+ return -1;
+ }
+
if (conn->driver->domainMigratePerform)
return conn->driver->domainMigratePerform (domain, cookie, cookielen,
uri,
@@ -2482,6 +2502,11 @@ virDomainMigrateFinish (virConnectPtr dc
if (!VIR_IS_CONNECT (dconn)) {
virLibConnError (NULL, VIR_ERR_INVALID_CONN, __FUNCTION__);
+ return NULL;
+ }
+
+ if (dconn->flags & VIR_CONNECT_RO) {
+ virLibConnError(dconn, VIR_ERR_OPERATION_DENIED, __FUNCTION__);
return NULL;
}
@@ -2517,6 +2542,11 @@ virDomainMigratePrepare2 (virConnectPtr
return -1;
}
+ if (dconn->flags & VIR_CONNECT_RO) {
+ virLibConnError(dconn, VIR_ERR_OPERATION_DENIED, __FUNCTION__);
+ return -1;
+ }
+
if (dconn->driver->domainMigratePrepare2)
return dconn->driver->domainMigratePrepare2 (dconn, cookie, cookielen,
uri_in, uri_out,
@@ -2547,6 +2577,11 @@ virDomainMigrateFinish2 (virConnectPtr d
return NULL;
}
+ if (dconn->flags & VIR_CONNECT_RO) {
+ virLibConnError(dconn, VIR_ERR_OPERATION_DENIED, __FUNCTION__);
+ return NULL;
+ }
+
if (dconn->driver->domainMigrateFinish2)
return dconn->driver->domainMigrateFinish2 (dconn, dname,
cookie, cookielen,
@@ -2905,6 +2940,11 @@ virDomainBlockPeek (virDomainPtr dom,
}
conn = dom->conn;
+ if (dom->conn->flags & VIR_CONNECT_RO) {
+ virLibDomainError(dom, VIR_ERR_OPERATION_DENIED, __FUNCTION__);
+ return (-1);
+ }
+
if (!path) {
virLibDomainError (dom, VIR_ERR_INVALID_ARG,
_("path is NULL"));
@@ -2980,6 +3020,11 @@ virDomainMemoryPeek (virDomainPtr dom,
}
conn = dom->conn;
+ if (dom->conn->flags & VIR_CONNECT_RO) {
+ virLibDomainError(dom, VIR_ERR_OPERATION_DENIED, __FUNCTION__);
+ return (-1);
+ }
+
/* Flags must be VIR_MEMORY_VIRTUAL at the moment.
*
* Note on access to physical memory: A VIR_MEMORY_PHYSICAL flag is
@@ -3246,6 +3291,11 @@ virDomainSetAutostart(virDomainPtr domai
}
conn = domain->conn;
+
+ if (domain->conn->flags & VIR_CONNECT_RO) {
+ virLibDomainError(domain, VIR_ERR_OPERATION_DENIED, __FUNCTION__);
+ return (-1);
+ }
if (conn->driver->domainSetAutostart)
return conn->driver->domainSetAutostart (domain, autostart);
@@ -4197,6 +4247,11 @@ virNetworkSetAutostart(virNetworkPtr net
return (-1);
}
+ if (network->conn->flags & VIR_CONNECT_RO) {
+ virLibNetworkError(network, VIR_ERR_OPERATION_DENIED, __FUNCTION__);
+ return (-1);
+ }
+
conn = network->conn;
if (conn->networkDriver && conn->networkDriver->networkSetAutostart)
@@ -4395,6 +4450,11 @@ virConnectFindStoragePoolSources(virConn
return NULL;
}
+ if (conn->flags & VIR_CONNECT_RO) {
+ virLibConnError(conn, VIR_ERR_OPERATION_DENIED, __FUNCTION__);
+ return NULL;
+ }
+
if (conn->storageDriver && conn->storageDriver->findPoolSources)
return conn->storageDriver->findPoolSources(conn, type, srcSpec, flags);
@@ -5068,6 +5128,11 @@ virStoragePoolSetAutostart(virStoragePoo
return (-1);
}
+ if (pool->conn->flags & VIR_CONNECT_RO) {
+ virLibStoragePoolError(pool, VIR_ERR_OPERATION_DENIED, __FUNCTION__);
+ return (-1);
+ }
+
conn = pool->conn;
if (conn->storageDriver && conn->storageDriver->poolSetAutostart)

View File

@ -1,31 +1,21 @@
Index: libvirt-0.5.1/src/xend_internal.c
Index: libvirt-0.6.2/src/xend_internal.c
===================================================================
--- libvirt-0.5.1.orig/src/xend_internal.c
+++ libvirt-0.5.1/src/xend_internal.c
@@ -5465,11 +5465,16 @@ virDomainXMLDevID(virDomainPtr domain,
char *xref;
if (dev->type == VIR_DOMAIN_DEVICE_DISK) {
- strcpy(class, "vbd");
if (dev->data.disk->dst == NULL)
--- libvirt-0.6.2.orig/src/xend_internal.c
+++ libvirt-0.6.2/src/xend_internal.c
@@ -5829,7 +5829,7 @@ virDomainXMLDevID(virDomainPtr domain,
return -1;
+
+ if (dev->data.disk->driverName &&
+ (strcasecmp(dev->data.disk->driverName, "tap") == 0))
+ strcpy(class, "tap");
+ else
+ strcpy(class, "vbd");
xenUnifiedLock(priv);
xref = xenStoreDomainGetDiskID(domain->conn, domain->id,
- dev->data.disk->dst);
+ dev->data.disk->dst, class);
xenUnifiedUnlock(priv);
if (xref == NULL)
return -1;
Index: libvirt-0.5.1/src/xs_internal.c
Index: libvirt-0.6.2/src/xs_internal.c
===================================================================
--- libvirt-0.5.1.orig/src/xs_internal.c
+++ libvirt-0.5.1/src/xs_internal.c
@@ -917,7 +917,8 @@ xenStoreDomainGetNetworkID(virConnectPtr
--- libvirt-0.6.2.orig/src/xs_internal.c
+++ libvirt-0.6.2/src/xs_internal.c
@@ -966,7 +966,8 @@ xenStoreDomainGetNetworkID(virConnectPtr
* freed by the caller.
*/
char *
@ -35,7 +25,7 @@ Index: libvirt-0.5.1/src/xs_internal.c
char dir[80], path[128], **list = NULL, *val = NULL;
unsigned int devlen, len, i, num;
char *ret = NULL;
@@ -935,7 +936,7 @@ xenStoreDomainGetDiskID(virConnectPtr co
@@ -984,7 +985,7 @@ xenStoreDomainGetDiskID(virConnectPtr co
if (devlen <= 0)
return (NULL);
@ -44,11 +34,11 @@ Index: libvirt-0.5.1/src/xs_internal.c
list = xs_directory(priv->xshandle, 0, dir, &num);
if (list != NULL) {
for (i = 0; i < num; i++) {
Index: libvirt-0.5.1/src/xs_internal.h
Index: libvirt-0.6.2/src/xs_internal.h
===================================================================
--- libvirt-0.5.1.orig/src/xs_internal.h
+++ libvirt-0.5.1/src/xs_internal.h
@@ -48,7 +48,8 @@ char * xenStoreDomainGetNetworkID(virCo
--- libvirt-0.6.2.orig/src/xs_internal.h
+++ libvirt-0.6.2/src/xs_internal.h
@@ -49,7 +49,8 @@ char * xenStoreDomainGetNetworkID(virCo
const char *mac);
char * xenStoreDomainGetDiskID(virConnectPtr conn,
int id,

View File

@ -1,14 +0,0 @@
Index: libvirt-0.4.6/docs/devhelp/Makefile.am
===================================================================
--- libvirt-0.4.6.orig/docs/devhelp/Makefile.am
+++ libvirt-0.4.6/docs/devhelp/Makefile.am
@@ -1,7 +1,8 @@
DEVHELP_DIR=$(datadir)/gtk-doc/html/libvirt
HTML_FILES=index.html general.html $(HTML_MODULES)
HTML_MODULES= \
- libvirt-libvirt.html
+ libvirt-libvirt.html \
+ libvirt-virterror.html
EXTRA_FORMAT= \
home.png \

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cc6fc1909f40667bd32574a11f4052160ed94620b79f3d5db5541f25a12429ee
size 3778088

3
libvirt-0.6.2.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:15297915384d7f9cab9b21ca7fe9c301e1574a686c4927c69ffc7e65f148e7a5
size 4144248

View File

@ -1,3 +1,29 @@
-------------------------------------------------------------------
Fri Apr 24 14:26:39 MDT 2009 - jfehlig@novell.com
- Removed unnecessary call to fillup_and_insserv macro in
%post scriptlet
-------------------------------------------------------------------
Wed Apr 22 17:33:01 MDT 2009 - jfehlig@novell.com
- Updated to version 0.6.2
- support SASL auth for VNC server
- memory ballooning in QEMU
- SCSI HBA storage pool support
- PCI passthrough in Xen driver
- new APIs for Node device detach reattach and reset
- sVirt mandatory access control support
- thread safety of the API and event handling
- allow QEmu domains to survive daemon restart
- extended logging capabilities
- support copy-on-write storage volumes
- support of storage cache control options for QEMU/KVM
- Improvements from lnussel@suse.de
- add %jobs macro again
- package default qemu network and augeas config files again
- don't start libvirtd by default (bnc#496838)
-------------------------------------------------------------------
Mon Apr 20 17:01:38 CEST 2009 - crrodriguez@suse.de

View File

@ -1,5 +1,5 @@
#
# spec file for package libvirt (Version 0.5.1)
# spec file for package libvirt (Version 0.6.2)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@ -51,8 +51,8 @@ Url: http://libvirt.org/
License: LGPL v2.1 or later
Group: Development/Libraries/C and C++
AutoReqProv: yes
Version: 0.5.1
Release: 3
Version: 0.6.2
Release: 1
Summary: A C toolkit to interract with the virtualization capabilities of Linux
Requires: readline
Requires: ncurses
@ -63,6 +63,7 @@ Requires: lvm2
Requires: parted
#Requires: /usr/bin/qemu-img
Recommends: cyrus-sasl-digestmd5
Recommends: logrotate
Requires: dnsmasq
Requires: PolicyKit >= 0.6
Requires: socat
@ -79,10 +80,8 @@ Patch4: vnc-port.patch
Patch5: xen-pv-cdrom.patch
Patch6: detach-disk.patch
Patch7: migrate-params.patch
Patch8: cve-2008-5086.patch
Patch9: devhelp.patch
Patch10: suse-network.patch
Patch11: snapshots.patch
Patch8: suse-network.patch
Patch9: snapshots.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@ -176,16 +175,14 @@ Authors:
%setup -q
%patch0 -p1
%patch1 -p1
%patch2 -p1
#%patch2 -p1
%patch3
%patch4 -p1
#%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
%build
%if ! %{with_xen}
@ -199,7 +196,8 @@ Authors:
%endif
autoreconf -f -i
export CFLAGS="$RPM_OPT_FLAGS"
%configure --disable-static --with-pic %{?_without_xen} \
%configure --disable-static --with-pic \
%{?_without_xen} \
%{?_without_lxc} \
%{?_with_selinux} \
--libexecdir=%{_libdir}/%{name} \
@ -209,8 +207,10 @@ export CFLAGS="$RPM_OPT_FLAGS"
ac_cv_path_DNSMASQ=/usr/sbin/dnsmasq \
ac_cv_path_QEMU_IMG=/usr/bin/qemu-img-xen \
ac_cv_path_ISCSIADM=/sbin/iscsiadm \
ac_cv_path_MODPROBE=/sbin/modprobe \
ac_cv_path_UDEVADM=/sbin/udevadm \
ac_cv_path_SHOWMOUNT=/usr/sbin/showmount
make DOCS_DIR=%{_docdir}/%{name}-python EXAMPLE_DIR=%{_docdir}/%{name}-python/examples HTML_DIR=%{_docdir}/%{name}
make %{?jobs:-j%jobs} DOCS_DIR=%{_docdir}/%{name}-python EXAMPLE_DIR=%{_docdir}/%{name}-python/examples HTML_DIR=%{_docdir}/%{name}
%install
%makeinstall DOCS_DIR=%{_docdir}/%{name}-python EXAMPLE_DIR=%{_docdir}/%{name}-python/examples HTML_DIR=%{_docdir}/%{name}
@ -218,14 +218,8 @@ cp -a AUTHORS ChangeLog COPYING NEWS README TODO $RPM_BUILD_ROOT%{_docdir}/%{nam
cd docs ; cp -a *.html $RPM_BUILD_ROOT%{_docdir}/%{name} ; cp -a *.png $RPM_BUILD_ROOT%{_docdir}/%{name} ; cd ..
# remove currently unsupported locale(s)
rm -rf $RPM_BUILD_ROOT/usr/share/locale/sr@latin
# for now, do not install the default network definition
rm -f $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/default.xml
# don't autostart the default network
rm -f $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/autostart/default.xml
# do not package augeas config files for now
rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd.aug
rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd_qemu.aug
rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirtd.aug
rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirtd_qemu.aug
mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/run/libvirt
mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/lib/libvirt
rm $RPM_BUILD_ROOT%{_docdir}/%{name}/{*.c,examples.x*}
@ -255,9 +249,7 @@ ln -s /etc/init.d/libvirtd $RPM_BUILD_ROOT/usr/sbin/rclibvirtd
%clean
rm -rf $RPM_BUILD_ROOT
%post
/sbin/ldconfig
%{fillup_and_insserv -f -y libvirtd}
%post -p /sbin/ldconfig
%preun
%stop_on_removal libvirtd
@ -287,6 +279,8 @@ rm -rf $RPM_BUILD_ROOT
%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/
%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/
%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/autostart
%config %{_sysconfdir}/libvirt/qemu/networks/default.xml
%config %{_sysconfdir}/logrotate.d/libvirtd
%dir /%{_localstatedir}/run/libvirt/
%dir /%{_localstatedir}/lib/libvirt/
%config /etc/init.d/libvirtd
@ -297,6 +291,8 @@ rm -rf $RPM_BUILD_ROOT
%if 0%{?suse_version} > 1030
%{_datadir}/PolicyKit/policy/org.libvirt.unix.policy
%endif
%{_datadir}/libvirt
%{_datadir}/augeas
%files devel
%defattr(-, root, root)
@ -319,12 +315,32 @@ rm -rf $RPM_BUILD_ROOT
%{py_sitedir}/libvirtmod*
%changelog
* Fri Apr 24 2009 jfehlig@novell.com
- Removed unnecessary call to fillup_and_insserv macro in
%%post scriptlet
* Wed Apr 22 2009 jfehlig@novell.com
- Updated to version 0.6.2
- support SASL auth for VNC server
- memory ballooning in QEMU
- SCSI HBA storage pool support
- PCI passthrough in Xen driver
- new APIs for Node device detach reattach and reset
- sVirt mandatory access control support
- thread safety of the API and event handling
- allow QEmu domains to survive daemon restart
- extended logging capabilities
- support copy-on-write storage volumes
- support of storage cache control options for QEMU/KVM
- Improvements from lnussel@suse.de
- add %%jobs macro again
- package default qemu network and augeas config files again
- don't start libvirtd by default (bnc#496838)
* Mon Apr 20 2009 crrodriguez@suse.de
- use --disable-static instead of just removing static libraries
* Sat Jan 31 2009 jfehlig@novell.com
* Fri Jan 30 2009 jfehlig@novell.com
- Fix build for architectures not supporting numa
- Forward port suse-network.patch and snapshots.patch
* Thu Jan 29 2009 jfehlig@novell.com
* Wed Jan 28 2009 jfehlig@novell.com
- Updated to version 0.5.1
- CPU and scheduler support for LXC
- SDL display configuration
@ -354,19 +370,19 @@ rm -rf $RPM_BUILD_ROOT
* Mon Nov 24 2008 jfehlig@novell.com
- Fix connecting/disconnecting ISO via virt-manager
bnc#446773
* Fri Nov 21 2008 jfehlig@novell.com
* Thu Nov 20 2008 jfehlig@novell.com
- Fix detach of Xen tap devices
bnc#410644 and bnc#411633
* Fri Nov 07 2008 jfehlig@novell.com
* Thu Nov 06 2008 jfehlig@novell.com
- Fix handling of iso/cdrom for xen pv domains.
bnc#437388
* Thu Nov 06 2008 jfehlig@novell.com
* Wed Nov 05 2008 jfehlig@novell.com
- Expose networks managed outside of libvirt as read-only.
bnc#441633
* Wed Nov 05 2008 jfehlig@novell.com
- Fix vnc port assignement in domain XML
bnc#441625
* Fri Oct 24 2008 jfehlig@novell.com
* Thu Oct 23 2008 jfehlig@novell.com
- Add upstream patches to fix ordering problem with setting up
cgroup containment on LXC domains.
bnc#437816
@ -378,9 +394,9 @@ rm -rf $RPM_BUILD_ROOT
* Mon Oct 06 2008 jfehlig@novell.com
- Use xend vs hypercall interface to change max mem setting
bnc#431766
* Thu Oct 02 2008 jfehlig@novell.com
- Enabled libvirtd listen mode in libvirtd init script.
* Wed Oct 01 2008 jfehlig@novell.com
- Enabled libvirtd listen mode in libvirtd init script.
* Tue Sep 30 2008 jfehlig@novell.com
- Updated to version 0.4.6
- avoid a segfault if missing qemu emulator
- reading vncdisplay from xend domain
@ -406,9 +422,9 @@ rm -rf $RPM_BUILD_ROOT
* Tue Sep 02 2008 kwolf@suse.de
- Added snapshot support. Implemented snapshot_create/apply/delete
for Xen.
* Sat Aug 30 2008 jfehlig@novell.com
- Fixed bugs in nfs storage pool creation/deletion
* Fri Aug 29 2008 jfehlig@novell.com
- Fixed bugs in nfs storage pool creation/deletion
* Thu Aug 28 2008 jfehlig@novell.com
- Fixed bugs in LVM storage pool creation.
logical-storage-driver.patch submitted upstream
* Wed Aug 27 2008 jfehlig@novell.com
@ -423,7 +439,7 @@ rm -rf $RPM_BUILD_ROOT
- Fixed spec file breakage due to SELinux enablement
* Fri Aug 22 2008 prusnak@suse.cz
- enabled SELinux support [Fate#303662]
* Tue Aug 12 2008 jfehlig@novell.com
* Mon Aug 11 2008 jfehlig@novell.com
- Cleanup of libvirtd init script
- Removed dnsmasq from BuildRequires
* Sat Aug 09 2008 jfehlig@novell.com
@ -452,7 +468,7 @@ rm -rf $RPM_BUILD_ROOT
* Thu Apr 10 2008 jfehlig@novell.com
- Fix NULL pointer dereference in auth callback. bnc#373180,
bnc#354995
* Thu Jan 10 2008 jfehlig@novell.com
* Wed Jan 09 2008 jfehlig@novell.com
- Remove Requires of nc package. netcat is the equivalent but it
does not support unix domain sockets so no need to require it
either.
@ -477,11 +493,11 @@ rm -rf $RPM_BUILD_ROOT
to be a subtle dependency issue in one of the makefiles which is
causing problems with generation of python bindings when jobs > 1.
Bug #329032.
* Tue Aug 21 2007 jfehlig@novell.com
* Mon Aug 20 2007 jfehlig@novell.com
- Added init script for libvirtd. libvirtd is needed to support
management of qemu/kvm guests. Some Xen networking is handled
through libvirt as well - bug #298021.
* Tue Jul 24 2007 jfehlig@novell.com
* Mon Jul 23 2007 jfehlig@novell.com
- Update to libvirt-0.3.0
- Secure Remote support
- Documentation: remote support, description of the URI connection
@ -522,14 +538,14 @@ rm -rf $RPM_BUILD_ROOT
- Fixed docdir destination.
- Build with CFLAGS.
- Spec file cleanup.
* Wed Feb 21 2007 jfehlig@novell.com
* Tue Feb 20 2007 jfehlig@novell.com
- Removed usr/lib/libvirt_proxy setuid binary from package. Fixes
bug #246610.
* Sat Feb 17 2007 jfehlig@novell.com
* Fri Feb 16 2007 jfehlig@novell.com
- Updated to latest release. Many of the issues seen in virt-manager
have been caused by bugs / missing functionality in libvirt. This
upate provides a better basis for virt-manager.
* Thu Jan 11 2007 jfehlig@novell.com
* Wed Jan 10 2007 jfehlig@novell.com
- Updated to latest release, version 0.1.10. Submitting to SLES10 SP1
to provide base functionality for FATE feature 301181.
- more localizations
@ -541,7 +557,7 @@ rm -rf $RPM_BUILD_ROOT
- support graphic framebuffer for Xen paravirt (Daniel Berrange)
- VNC listen IP range support (Daniel Berrange)
- support for default Xen config files and inactive domains of 3.0.4 (Daniel Berrange)
* Sat Dec 09 2006 jfehlig@novell.com
* Fri Dec 08 2006 jfehlig@novell.com
- Updated to latest release, version 0.1.9.
- python bindings: release interpeter lock when calling C (Daniel Berrange)
- don't raise HTTP error when looking informations for a domain

View File

@ -1,7 +1,7 @@
Index: libvirt-0.5.1/qemud/libvirtd.conf
Index: libvirt-0.6.2/qemud/libvirtd.conf
===================================================================
--- libvirt-0.5.1.orig/qemud/libvirtd.conf
+++ libvirt-0.5.1/qemud/libvirtd.conf
--- libvirt-0.6.2.orig/qemud/libvirtd.conf
+++ libvirt-0.6.2/qemud/libvirtd.conf
@@ -18,8 +18,8 @@
# It is necessary to setup a CA and issue server certificates before
# using this capability.
@ -28,12 +28,12 @@ Index: libvirt-0.5.1/qemud/libvirtd.conf
# Override the default mDNS advertizement name. This must be
# unique on the immediate broadcast network.
Index: libvirt-0.5.1/qemud/qemud.c
Index: libvirt-0.6.2/qemud/qemud.c
===================================================================
--- libvirt-0.5.1.orig/qemud/qemud.c
+++ libvirt-0.5.1/qemud/qemud.c
@@ -92,7 +92,7 @@ static int sigwrite = -1; /* Signa
static int ipsock = 0; /* -l Listen for TCP/IP */
--- libvirt-0.6.2.orig/qemud/qemud.c
+++ libvirt-0.6.2/qemud/qemud.c
@@ -132,7 +132,7 @@ static char *log_filters = NULL;
static char *log_outputs = NULL;
/* Defaults for configuration file elements */
-static int listen_tls = 1;
@ -41,7 +41,7 @@ Index: libvirt-0.5.1/qemud/qemud.c
static int listen_tcp = 0;
static char *listen_addr = (char *) LIBVIRTD_LISTEN_ADDR;
static char *tls_port = (char *) LIBVIRTD_TLS_PORT;
@@ -116,7 +116,7 @@ static int auth_tcp = REMOTE_AUTH_NONE;
@@ -154,7 +154,7 @@ static int auth_tcp = REMOTE_AUTH_NONE;
#endif
static int auth_tls = REMOTE_AUTH_NONE;

View File

@ -1,10 +1,10 @@
Index: libvirt-0.5.1/src/xend_internal.c
Index: libvirt-0.6.2/src/xend_internal.c
===================================================================
--- libvirt-0.5.1.orig/src/xend_internal.c
+++ libvirt-0.5.1/src/xend_internal.c
@@ -4226,6 +4226,8 @@ xenDaemonDomainMigratePerform (virDomain
"live", live,
"port", port,
--- libvirt-0.6.2.orig/src/xend_internal.c
+++ libvirt-0.6.2/src/xend_internal.c
@@ -4453,6 +4453,8 @@ xenDaemonDomainMigratePerform (virDomain
"node", "-1",
"ssl", "0",
"resource", "0", /* required, xend ignores it */
+ "node", "-1", /* numa node, xen c/s 17753 */
+ "ssl", "0", /* ssl migration, xen c/s 17709 */

View File

@ -1,8 +1,8 @@
Index: libvirt-0.5.1/include/libvirt/libvirt.h.in
Index: libvirt-0.6.2/include/libvirt/libvirt.h.in
===================================================================
--- libvirt-0.5.1.orig/include/libvirt/libvirt.h.in
+++ libvirt-0.5.1/include/libvirt/libvirt.h.in
@@ -470,6 +470,21 @@ int virDomainRestore
--- libvirt-0.6.2.orig/include/libvirt/libvirt.h.in
+++ libvirt-0.6.2/include/libvirt/libvirt.h.in
@@ -537,6 +537,21 @@ int virDomainRestore
const char *from);
/*
@ -24,11 +24,11 @@ Index: libvirt-0.5.1/include/libvirt/libvirt.h.in
* Domain core dump
*/
int virDomainCoreDump (virDomainPtr domain,
Index: libvirt-0.5.1/src/libvirt.c
Index: libvirt-0.6.2/src/libvirt.c
===================================================================
--- libvirt-0.5.1.orig/src/libvirt.c
+++ libvirt-0.5.1/src/libvirt.c
@@ -1777,6 +1777,168 @@ virDomainRestore(virConnectPtr conn, con
--- libvirt-0.6.2.orig/src/libvirt.c
+++ libvirt-0.6.2/src/libvirt.c
@@ -2067,6 +2067,168 @@ error:
return -1;
}
@ -197,10 +197,10 @@ Index: libvirt-0.5.1/src/libvirt.c
/**
* virDomainCoreDump:
* @domain: a domain object
Index: libvirt-0.5.1/src/driver.h
Index: libvirt-0.6.2/src/driver.h
===================================================================
--- libvirt-0.5.1.orig/src/driver.h
+++ libvirt-0.5.1/src/driver.h
--- libvirt-0.6.2.orig/src/driver.h
+++ libvirt-0.6.2/src/driver.h
@@ -145,6 +145,21 @@ typedef int
(*virDrvDomainRestore) (virConnectPtr conn,
const char *from);
@ -223,11 +223,10 @@ Index: libvirt-0.5.1/src/driver.h
(*virDrvDomainCoreDump) (virDomainPtr domain,
const char *to,
int flags);
@@ -387,6 +402,12 @@ struct _virDriver {
virDrvDomainEventDeregister domainEventDeregister;
virDrvDomainMigratePrepare2 domainMigratePrepare2;
virDrvDomainMigrateFinish2 domainMigrateFinish2;
+
@@ -408,6 +423,11 @@ struct _virDriver {
virDrvNodeDeviceDettach nodeDeviceDettach;
virDrvNodeDeviceReAttach nodeDeviceReAttach;
virDrvNodeDeviceReset nodeDeviceReset;
+ virDrvDomainSnapshotCreate domainSnapshotCreate;
+ virDrvDomainSnapshotApply domainSnapshotApply;
+ virDrvDomainSnapshotDelete domainSnapshotDelete;
@ -236,11 +235,11 @@ Index: libvirt-0.5.1/src/driver.h
};
typedef int
Index: libvirt-0.5.1/src/xen_unified.c
Index: libvirt-0.6.2/src/xen_unified.c
===================================================================
--- libvirt-0.5.1.orig/src/xen_unified.c
+++ libvirt-0.5.1/src/xen_unified.c
@@ -924,6 +924,81 @@ xenUnifiedDomainRestore (virConnectPtr c
--- libvirt-0.6.2.orig/src/xen_unified.c
+++ libvirt-0.6.2/src/xen_unified.c
@@ -931,6 +931,81 @@ xenUnifiedDomainRestore (virConnectPtr c
}
static int
@ -322,39 +321,39 @@ Index: libvirt-0.5.1/src/xen_unified.c
xenUnifiedDomainCoreDump (virDomainPtr dom, const char *to, int flags)
{
GET_PRIVATE(dom->conn);
@@ -1425,6 +1500,11 @@ static virDriver xenUnifiedDriver = {
.domainGetInfo = xenUnifiedDomainGetInfo,
.domainSave = xenUnifiedDomainSave,
.domainRestore = xenUnifiedDomainRestore,
+ .domainSnapshotCreate = xenUnifiedDomainSnapshotCreate,
+ .domainSnapshotApply = xenUnifiedDomainSnapshotApply,
+ .domainSnapshotDelete = xenUnifiedDomainSnapshotDelete,
+ .domainNumOfSnapshots = xenUnifiedDomainNumOfSnapshots,
+ .domainListSnapshots = xenUnifiedDomainListSnapshots,
.domainCoreDump = xenUnifiedDomainCoreDump,
.domainSetVcpus = xenUnifiedDomainSetVcpus,
.domainPinVcpu = xenUnifiedDomainPinVcpu,
Index: libvirt-0.5.1/src/xen_unified.h
@@ -1608,6 +1683,11 @@ static virDriver xenUnifiedDriver = {
xenUnifiedNodeDeviceDettach, /* nodeDeviceDettach */
xenUnifiedNodeDeviceReAttach, /* nodeDeviceReAttach */
xenUnifiedNodeDeviceReset, /* nodeDeviceReset */
+ xenUnifiedDomainSnapshotCreate,
+ xenUnifiedDomainSnapshotApply,
+ xenUnifiedDomainSnapshotDelete,
+ xenUnifiedDomainNumOfSnapshots,
+ xenUnifiedDomainListSnapshots,
};
/**
Index: libvirt-0.6.2/src/xen_unified.h
===================================================================
--- libvirt-0.5.1.orig/src/xen_unified.h
+++ libvirt-0.5.1/src/xen_unified.h
@@ -78,6 +78,11 @@ struct xenUnifiedDriver {
virDrvDomainGetInfo domainGetInfo;
virDrvDomainSave domainSave;
virDrvDomainRestore domainRestore;
--- libvirt-0.6.2.orig/src/xen_unified.h
+++ libvirt-0.6.2/src/xen_unified.h
@@ -95,6 +95,11 @@ struct xenUnifiedDriver {
virDrvDomainGetSchedulerType domainGetSchedulerType;
virDrvDomainGetSchedulerParameters domainGetSchedulerParameters;
virDrvDomainSetSchedulerParameters domainSetSchedulerParameters;
+ virDrvDomainSnapshotCreate domainSnapshotCreate;
+ virDrvDomainSnapshotApply domainSnapshotApply;
+ virDrvDomainSnapshotDelete domainSnapshotDelete;
+ virDrvDomainNumOfSnapshots domainNumOfSnapshots;
+ virDrvDomainListSnapshots domainListSnapshots;
virDrvDomainCoreDump domainCoreDump;
virDrvDomainSetVcpus domainSetVcpus;
virDrvDomainPinVcpu domainPinVcpu;
Index: libvirt-0.5.1/src/xend_internal.c
};
typedef struct xenXMConfCache *xenXMConfCachePtr;
Index: libvirt-0.6.2/src/xend_internal.c
===================================================================
--- libvirt-0.5.1.orig/src/xend_internal.c
+++ libvirt-0.5.1/src/xend_internal.c
@@ -51,6 +51,12 @@
--- libvirt-0.6.2.orig/src/xend_internal.c
+++ libvirt-0.6.2/src/xend_internal.c
@@ -53,6 +53,12 @@
#ifndef PROXY
@ -367,7 +366,7 @@ Index: libvirt-0.5.1/src/xend_internal.c
/*
* The number of Xen scheduler parameters
*/
@@ -3024,6 +3030,87 @@ xenDaemonDomainRestore(virConnectPtr con
@@ -3233,6 +3239,87 @@ xenDaemonDomainRestore(virConnectPtr con
}
return xend_op(conn, "", "op", "restore", "file", filename, NULL);
}
@ -455,87 +454,87 @@ Index: libvirt-0.5.1/src/xend_internal.c
#endif /* !PROXY */
/**
@@ -4781,6 +4868,11 @@ struct xenUnifiedDriver xenDaemonDriver
xenDaemonDomainGetInfo, /* domainGetInfo */
xenDaemonDomainSave, /* domainSave */
xenDaemonDomainRestore, /* domainRestore */
@@ -5025,6 +5112,11 @@ struct xenUnifiedDriver xenDaemonDriver
xenDaemonGetSchedulerType, /* domainGetSchedulerType */
xenDaemonGetSchedulerParameters, /* domainGetSchedulerParameters */
xenDaemonSetSchedulerParameters, /* domainSetSchedulerParameters */
+ xenDaemonDomainSnapshotCreate, /* domainSnapshotCreate */
+ xenDaemonDomainSnapshotApply, /* domainSnapshotApply */
+ xenDaemonDomainSnapshotDelete, /* domainSnapshotDelete */
+ xenDaemonDomainNumOfSnapshots, /* domainNumOfSnapshots */
+ xenDaemonDomainListSnapshots, /* domainListSnapshots */
xenDaemonDomainCoreDump, /* domainCoreDump */
xenDaemonDomainSetVcpus, /* domainSetVcpus */
xenDaemonDomainPinVcpu, /* domainPinVcpu */
Index: libvirt-0.5.1/src/proxy_internal.c
};
/************************************************************************
Index: libvirt-0.6.2/src/proxy_internal.c
===================================================================
--- libvirt-0.5.1.orig/src/proxy_internal.c
+++ libvirt-0.5.1/src/proxy_internal.c
@@ -68,6 +68,11 @@ struct xenUnifiedDriver xenProxyDriver =
xenProxyDomainGetInfo, /* domainGetInfo */
NULL, /* domainSave */
NULL, /* domainRestore */
--- libvirt-0.6.2.orig/src/proxy_internal.c
+++ libvirt-0.6.2/src/proxy_internal.c
@@ -84,6 +84,11 @@ struct xenUnifiedDriver xenProxyDriver =
NULL, /* domainGetSchedulerType */
NULL, /* domainGetSchedulerParameters */
NULL, /* domainSetSchedulerParameters */
+ NULL, /* domainSnapshotCreate */
+ NULL, /* domainSnapshotApply */
+ NULL, /* domainSnapshotDelete */
+ NULL, /* domainNumOfSnapshots */
+ NULL, /* domainListSnapshots */
NULL, /* domainCoreDump */
NULL, /* domainSetVcpus */
NULL, /* domainPinVcpu */
Index: libvirt-0.5.1/src/xen_internal.c
};
Index: libvirt-0.6.2/src/xen_internal.c
===================================================================
--- libvirt-0.5.1.orig/src/xen_internal.c
+++ libvirt-0.5.1/src/xen_internal.c
@@ -699,6 +699,11 @@ struct xenUnifiedDriver xenHypervisorDri
xenHypervisorGetDomainInfo, /* domainGetInfo */
NULL, /* domainSave */
NULL, /* domainRestore */
--- libvirt-0.6.2.orig/src/xen_internal.c
+++ libvirt-0.6.2/src/xen_internal.c
@@ -731,6 +731,11 @@ struct xenUnifiedDriver xenHypervisorDri
xenHypervisorGetSchedulerType, /* domainGetSchedulerType */
xenHypervisorGetSchedulerParameters, /* domainGetSchedulerParameters */
xenHypervisorSetSchedulerParameters, /* domainSetSchedulerParameters */
+ NULL, /* domainSnapshotCreate */
+ NULL, /* domainSnapshotApply */
+ NULL, /* domainSnapshotDelete */
+ NULL, /* domainNumOfSnapshots */
+ NULL, /* domainListSnapshots */
NULL, /* domainCoreDump */
xenHypervisorSetVcpus, /* domainSetVcpus */
xenHypervisorPinVcpu, /* domainPinVcpu */
Index: libvirt-0.5.1/src/xm_internal.c
};
#endif /* !PROXY */
Index: libvirt-0.6.2/src/xm_internal.c
===================================================================
--- libvirt-0.5.1.orig/src/xm_internal.c
+++ libvirt-0.5.1/src/xm_internal.c
@@ -100,6 +100,11 @@ struct xenUnifiedDriver xenXMDriver = {
xenXMDomainGetInfo, /* domainGetInfo */
NULL, /* domainSave */
NULL, /* domainRestore */
--- libvirt-0.6.2.orig/src/xm_internal.c
+++ libvirt-0.6.2/src/xm_internal.c
@@ -116,6 +116,11 @@ struct xenUnifiedDriver xenXMDriver = {
NULL, /* domainGetSchedulerType */
NULL, /* domainGetSchedulerParameters */
NULL, /* domainSetSchedulerParameters */
+ NULL, /* domainSnapshotCreate */
+ NULL, /* domainSnapshotApply */
+ NULL, /* domainSnapshotDelete */
+ NULL, /* domainNumOfSnapshots */
+ NULL, /* domainListSnapshots */
NULL, /* domainCoreDump */
xenXMDomainSetVcpus, /* domainSetVcpus */
xenXMDomainPinVcpu, /* domainPinVcpu */
Index: libvirt-0.5.1/src/xs_internal.c
};
#define xenXMError(conn, code, fmt...) \
Index: libvirt-0.6.2/src/xs_internal.c
===================================================================
--- libvirt-0.5.1.orig/src/xs_internal.c
+++ libvirt-0.5.1/src/xs_internal.c
@@ -74,6 +74,11 @@ struct xenUnifiedDriver xenStoreDriver =
xenStoreGetDomainInfo, /* domainGetInfo */
NULL, /* domainSave */
NULL, /* domainRestore */
--- libvirt-0.6.2.orig/src/xs_internal.c
+++ libvirt-0.6.2/src/xs_internal.c
@@ -83,6 +83,11 @@ struct xenUnifiedDriver xenStoreDriver =
NULL, /* domainGetSchedulerType */
NULL, /* domainGetSchedulerParameters */
NULL, /* domainSetSchedulerParameters */
+ NULL, /* domainSnapshotCreate */
+ NULL, /* domainSnapshotApply */
+ NULL, /* domainSnapshotDelete */
+ NULL, /* domainNumOfSnapshots */
+ NULL, /* domainListSnapshots */
NULL, /* domainCoreDump */
NULL, /* domainSetVcpus */
NULL, /* domainPinVcpu */
Index: libvirt-0.5.1/src/virsh.c
};
#endif /* ! PROXY */
Index: libvirt-0.6.2/src/virsh.c
===================================================================
--- libvirt-0.5.1.orig/src/virsh.c
+++ libvirt-0.5.1/src/virsh.c
@@ -1099,6 +1099,189 @@ cmdSave(vshControl *ctl, const vshCmd *c
--- libvirt-0.6.2.orig/src/virsh.c
+++ libvirt-0.6.2/src/virsh.c
@@ -1146,6 +1146,189 @@ cmdSave(vshControl *ctl, const vshCmd *c
return ret;
}
@ -570,7 +569,7 @@ Index: libvirt-0.5.1/src/virsh.c
+ if (!(name = vshCommandOptString(cmd, "name", NULL)))
+ return FALSE;
+
+ if (!(dom = vshCommandOptDomain(ctl, cmd, "domain", &domain)))
+ if (!(dom = vshCommandOptDomain(ctl, cmd, &domain)))
+ return FALSE;
+
+ if (virDomainSnapshotCreate(dom, name) == 0) {
@ -615,7 +614,7 @@ Index: libvirt-0.5.1/src/virsh.c
+ if (!(name = vshCommandOptString(cmd, "name", NULL)))
+ return FALSE;
+
+ if (!(dom = vshCommandOptDomain(ctl, cmd, "domain", &domain)))
+ if (!(dom = vshCommandOptDomain(ctl, cmd, &domain)))
+ return FALSE;
+
+ if (virDomainSnapshotApply(dom, name) == 0) {
@ -661,7 +660,7 @@ Index: libvirt-0.5.1/src/virsh.c
+ if (!(name = vshCommandOptString(cmd, "name", NULL)))
+ return FALSE;
+
+ if (!(dom = vshCommandOptDomain(ctl, cmd, "domain", &domain)))
+ if (!(dom = vshCommandOptDomain(ctl, cmd, &domain)))
+ return FALSE;
+
+ if (virDomainSnapshotDelete(dom, name) == 0) {
@ -704,7 +703,7 @@ Index: libvirt-0.5.1/src/virsh.c
+ if (!vshConnectionUsability(ctl, ctl->conn, TRUE))
+ return FALSE;
+
+ if (!(dom = vshCommandOptDomain(ctl, cmd, "domain", &domain)))
+ if (!(dom = vshCommandOptDomain(ctl, cmd, &domain)))
+ return FALSE;
+
+ // TODO Display snapshot details
@ -725,7 +724,7 @@ Index: libvirt-0.5.1/src/virsh.c
/*
* "schedinfo" command
*/
@@ -5697,6 +5880,12 @@ static const vshCmdDef commands[] = {
@@ -5929,6 +6112,12 @@ static const vshCmdDef commands[] = {
{"undefine", cmdUndefine, opts_undefine, info_undefine},
{"uri", cmdURI, NULL, info_uri},
@ -738,14 +737,14 @@ Index: libvirt-0.5.1/src/virsh.c
{"vol-create", cmdVolCreate, opts_vol_create, info_vol_create},
{"vol-create-as", cmdVolCreateAs, opts_vol_create_as, info_vol_create_as},
{"vol-delete", cmdVolDelete, opts_vol_delete, info_vol_delete},
Index: libvirt-0.5.1/src/lxc_driver.c
Index: libvirt-0.6.2/src/lxc_driver.c
===================================================================
--- libvirt-0.5.1.orig/src/lxc_driver.c
+++ libvirt-0.5.1/src/lxc_driver.c
@@ -1291,6 +1291,11 @@ static virDriver lxcDriver = {
NULL, /* domainEventDeregister */
NULL, /* domainMigratePrepare2 */
NULL, /* domainMigrateFinish2 */
--- libvirt-0.6.2.orig/src/lxc_driver.c
+++ libvirt-0.6.2/src/lxc_driver.c
@@ -1471,6 +1471,11 @@ static virDriver lxcDriver = {
NULL, /* nodeDeviceDettach */
NULL, /* nodeDeviceReAttach */
NULL, /* nodeDeviceReset */
+ NULL, /* domainSnapshotCreate */
+ NULL, /* domainSnapshotApply */
+ NULL, /* domainSnapshotDelete */
@ -754,14 +753,14 @@ Index: libvirt-0.5.1/src/lxc_driver.c
};
static virStateDriver lxcStateDriver = {
Index: libvirt-0.5.1/src/openvz_driver.c
Index: libvirt-0.6.2/src/openvz_driver.c
===================================================================
--- libvirt-0.5.1.orig/src/openvz_driver.c
+++ libvirt-0.5.1/src/openvz_driver.c
@@ -1146,6 +1146,11 @@ static virDriver openvzDriver = {
NULL, /* domainEventDeregister */
NULL, /* domainMigratePrepare2 */
NULL, /* domainMigrateFinish2 */
--- libvirt-0.6.2.orig/src/openvz_driver.c
+++ libvirt-0.6.2/src/openvz_driver.c
@@ -1372,6 +1372,11 @@ static virDriver openvzDriver = {
NULL, /* nodeDeviceDettach */
NULL, /* nodeDeviceReAttach */
NULL, /* nodeDeviceReset */
+ NULL, /* domainSnapshotCreate */
+ NULL, /* domainSnapshotApply */
+ NULL, /* domainSnapshotDelete */
@ -770,14 +769,14 @@ Index: libvirt-0.5.1/src/openvz_driver.c
};
int openvzRegister(void) {
Index: libvirt-0.5.1/src/qemu_driver.c
Index: libvirt-0.6.2/src/qemu_driver.c
===================================================================
--- libvirt-0.5.1.orig/src/qemu_driver.c
+++ libvirt-0.5.1/src/qemu_driver.c
@@ -3794,6 +3794,11 @@ static virDriver qemuDriver = {
qemudDomainEventDeregister, /* domainEventDeregister */
qemudDomainMigratePrepare2, /* domainMigratePrepare2 */
qemudDomainMigrateFinish2, /* domainMigrateFinish2 */
--- libvirt-0.6.2.orig/src/qemu_driver.c
+++ libvirt-0.6.2/src/qemu_driver.c
@@ -5131,6 +5131,11 @@ static virDriver qemuDriver = {
qemudNodeDeviceDettach, /* nodeDeviceDettach */
qemudNodeDeviceReAttach, /* nodeDeviceReAttach */
qemudNodeDeviceReset, /* nodeDeviceReset */
+ NULL, /* domainSnapshotCreate */
+ NULL, /* domainSnapshotApply */
+ NULL, /* domainSnapshotDelete */
@ -786,30 +785,14 @@ Index: libvirt-0.5.1/src/qemu_driver.c
};
Index: libvirt-0.5.1/src/remote_internal.c
Index: libvirt-0.6.2/src/test.c
===================================================================
--- libvirt-0.5.1.orig/src/remote_internal.c
+++ libvirt-0.5.1/src/remote_internal.c
@@ -5391,6 +5391,11 @@ static virDriver driver = {
.domainEventDeregister = remoteDomainEventDeregister,
.domainMigratePrepare2 = remoteDomainMigratePrepare2,
.domainMigrateFinish2 = remoteDomainMigrateFinish2,
+ .domainSnapshotCreate = NULL,
+ .domainSnapshotApply = NULL,
+ .domainSnapshotDelete = NULL,
+ .domainNumOfSnapshots = NULL,
+ .domainListSnapshots = NULL,
};
static virNetworkDriver network_driver = {
Index: libvirt-0.5.1/src/test.c
===================================================================
--- libvirt-0.5.1.orig/src/test.c
+++ libvirt-0.5.1/src/test.c
@@ -2255,6 +2255,11 @@ static virDriver testDriver = {
NULL, /* domainEventDeregister */
NULL, /* domainMigratePrepare2 */
NULL, /* domainMigrateFinish2 */
--- libvirt-0.6.2.orig/src/test.c
+++ libvirt-0.6.2/src/test.c
@@ -3532,6 +3532,11 @@ static virDriver testDriver = {
NULL, /* nodeDeviceDettach */
NULL, /* nodeDeviceReAttach */
NULL, /* nodeDeviceReset */
+ NULL, /* domainSnapshotCreate */
+ NULL, /* domainSnapshotApply */
+ NULL, /* domainSnapshotDelete */
@ -818,11 +801,11 @@ Index: libvirt-0.5.1/src/test.c
};
static virNetworkDriver testNetworkDriver = {
Index: libvirt-0.5.1/docs/libvirt-api.xml
Index: libvirt-0.6.2/docs/libvirt-api.xml
===================================================================
--- libvirt-0.5.1.orig/docs/libvirt-api.xml
+++ libvirt-0.5.1/docs/libvirt-api.xml
@@ -183,6 +183,11 @@
--- libvirt-0.6.2.orig/docs/libvirt-api.xml
+++ libvirt-0.6.2/docs/libvirt-api.xml
@@ -194,6 +194,11 @@
<exports symbol='virEventRegisterImpl' type='function'/>
<exports symbol='virDomainMigrate' type='function'/>
<exports symbol='virDomainSuspend' type='function'/>
@ -831,10 +814,10 @@ Index: libvirt-0.5.1/docs/libvirt-api.xml
+ <exports symbol='virDomainSnapshotDelete' type='function'/>
+ <exports symbol='virDomainNumOfSnapshots' type='function'/>
+ <exports symbol='virDomainListSnapshots' type='function'/>
<exports symbol='virNetworkCreate' type='function'/>
<exports symbol='virDomainCreateLinux' type='function'/>
<exports symbol='virNodeDeviceGetXMLDesc' type='function'/>
<exports symbol='virEventUpdateHandleFunc' type='function'/>
@@ -1237,6 +1242,36 @@ see note above'/>
@@ -1296,6 +1301,36 @@ see note above'/>
<return type='int' info='0 in case of success and -1 in case of failure.'/>
<arg name='domain' type='virDomainPtr' info='a domain object'/>
</function>
@ -871,10 +854,10 @@ Index: libvirt-0.5.1/docs/libvirt-api.xml
<function name='virDomainUndefine' file='libvirt' module='libvirt'>
<info>Undefine a domain but does not stop it if it is running</info>
<return type='int' info='0 in case of success, -1 in case of error'/>
Index: libvirt-0.5.1/python/libvirt-py.c
Index: libvirt-0.6.2/python/libvirt-py.c
===================================================================
--- libvirt-0.5.1.orig/python/libvirt-py.c
+++ libvirt-0.5.1/python/libvirt-py.c
--- libvirt-0.6.2.orig/python/libvirt-py.c
+++ libvirt-0.6.2/python/libvirt-py.c
@@ -25,6 +25,25 @@ LIBVIRT_END_ALLOW_THREADS;
}
@ -901,7 +884,7 @@ Index: libvirt-0.5.1/python/libvirt-py.c
libvirt_virStorageVolGetKey(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
PyObject *py_retval;
const char * c_retval;
@@ -847,6 +866,25 @@ LIBVIRT_END_ALLOW_THREADS;
@@ -883,6 +902,25 @@ LIBVIRT_END_ALLOW_THREADS;
}
PyObject *
@ -927,7 +910,7 @@ Index: libvirt-0.5.1/python/libvirt-py.c
libvirt_virNetworkDefineXML(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
PyObject *py_retval;
virNetworkPtr c_retval;
@@ -882,6 +920,24 @@ LIBVIRT_END_ALLOW_THREADS;
@@ -918,6 +956,24 @@ LIBVIRT_END_ALLOW_THREADS;
}
PyObject *
@ -952,10 +935,13 @@ Index: libvirt-0.5.1/python/libvirt-py.c
libvirt_virDomainResume(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
PyObject *py_retval;
int c_retval;
@@ -900,6 +956,25 @@ LIBVIRT_END_ALLOW_THREADS;
}
PyObject *
@@ -933,6 +989,25 @@ LIBVIRT_BEGIN_ALLOW_THREADS;
LIBVIRT_END_ALLOW_THREADS;
py_retval = libvirt_intWrap((int) c_retval);
return(py_retval);
+}
+
+PyObject *
+libvirt_virDomainSnapshotApply(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+ PyObject *py_retval;
+ int c_retval;
@ -972,16 +958,13 @@ Index: libvirt-0.5.1/python/libvirt-py.c
+LIBVIRT_END_ALLOW_THREADS;
+ py_retval = libvirt_intWrap((int) c_retval);
+ return(py_retval);
+}
+
+PyObject *
libvirt_virConnectGetHostname(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
PyObject *py_retval;
char * c_retval;
Index: libvirt-0.5.1/python/libvirt-py.h
}
PyObject *
Index: libvirt-0.6.2/python/libvirt-py.h
===================================================================
--- libvirt-0.5.1.orig/python/libvirt-py.h
+++ libvirt-0.5.1/python/libvirt-py.h
--- libvirt-0.6.2.orig/python/libvirt-py.h
+++ libvirt-0.6.2/python/libvirt-py.h
@@ -1,6 +1,7 @@
/* Generated */
@ -990,11 +973,11 @@ Index: libvirt-0.5.1/python/libvirt-py.h
PyObject * libvirt_virStorageVolGetKey(PyObject *self, PyObject *args);
PyObject * libvirt_virConnectClose(PyObject *self, PyObject *args);
PyObject * libvirt_virDomainDefineXML(PyObject *self, PyObject *args);
Index: libvirt-0.5.1/python/libvirt.py
Index: libvirt-0.6.2/python/libvirt.py
===================================================================
--- libvirt-0.5.1.orig/python/libvirt.py
+++ libvirt-0.5.1/python/libvirt.py
@@ -382,6 +382,12 @@ class virDomain:
--- libvirt-0.6.2.orig/python/libvirt.py
+++ libvirt-0.6.2/python/libvirt.py
@@ -384,6 +384,12 @@ class virDomain:
ret = libvirtmod.virDomainGetName(self._o)
return ret
@ -1007,7 +990,7 @@ Index: libvirt-0.5.1/python/libvirt.py
def reboot(self, flags):
"""Reboot a domain, the domain object is still usable there
after but the domain OS is being stopped for a restart.
@@ -456,6 +462,24 @@ class virDomain:
@@ -472,6 +478,24 @@ class virDomain:
if ret == -1: raise libvirtError ('virDomainShutdown() failed', dom=self)
return ret
@ -1032,7 +1015,7 @@ Index: libvirt-0.5.1/python/libvirt.py
def suspend(self):
"""Suspends an active domain, the process is frozen without
further access to CPU resources and I/O but the memory used
@@ -512,6 +536,12 @@ class virDomain:
@@ -528,6 +552,12 @@ class virDomain:
ret = libvirtmod.virDomainInterfaceStats(self._o, path)
return ret
@ -1045,10 +1028,10 @@ Index: libvirt-0.5.1/python/libvirt.py
def pinVcpu(self, vcpu, cpumap):
"""Dynamically change the real CPUs which can be allocated to
a virtual CPU. This function requires privileged access to
Index: libvirt-0.5.1/python/libvir.c
Index: libvirt-0.6.2/python/libvir.c
===================================================================
--- libvirt-0.5.1.orig/python/libvir.c
+++ libvirt-0.5.1/python/libvir.c
--- libvirt-0.6.2.orig/python/libvir.c
+++ libvirt-0.6.2/python/libvir.c
@@ -1375,6 +1375,35 @@ libvirt_virStoragePoolGetInfo(PyObject *
return(py_retval);
}
@ -1093,10 +1076,10 @@ Index: libvirt-0.5.1/python/libvir.c
{(char *) "virConnectListStoragePools", libvirt_virConnectListStoragePools, METH_VARARGS, NULL},
{(char *) "virConnectListDefinedStoragePools", libvirt_virConnectListDefinedStoragePools, METH_VARARGS, NULL},
{(char *) "virStoragePoolGetAutostart", libvirt_virStoragePoolGetAutostart, METH_VARARGS, NULL},
Index: libvirt-0.5.1/python/libvirt-python-api.xml
Index: libvirt-0.6.2/python/libvirt-python-api.xml
===================================================================
--- libvirt-0.5.1.orig/python/libvirt-python-api.xml
+++ libvirt-0.5.1/python/libvirt-python-api.xml
--- libvirt-0.6.2.orig/python/libvirt-python-api.xml
+++ libvirt-0.6.2/python/libvirt-python-api.xml
@@ -135,6 +135,11 @@
<arg name='domain' type='virDomainPtr' info='pointer to domain object'/>
<arg name='params' type='virSchedParameterPtr' info='pointer to scheduler parameter objects'/>
@ -1109,10 +1092,10 @@ Index: libvirt-0.5.1/python/libvirt-python-api.xml
<function name='virConnectListStoragePools' file='python'>
<info>list the storage pools, stores the pointers to the names in @names</info>
<arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
Index: libvirt-0.5.1/python/generator.py
Index: libvirt-0.6.2/python/generator.py
===================================================================
--- libvirt-0.5.1.orig/python/generator.py
+++ libvirt-0.5.1/python/generator.py
--- libvirt-0.6.2.orig/python/generator.py
+++ libvirt-0.6.2/python/generator.py
@@ -313,6 +313,7 @@ skip_impl = (
'virDomainSetSchedulerParameters',
'virDomainGetVcpus',
@ -1121,11 +1104,11 @@ Index: libvirt-0.5.1/python/generator.py
'virStoragePoolGetUUID',
'virStoragePoolGetUUIDString',
'virStoragePoolLookupByUUID',
Index: libvirt-0.5.1/src/libvirt_sym.version.in
Index: libvirt-0.6.2/src/libvirt_public.syms
===================================================================
--- libvirt-0.5.1.orig/src/libvirt_sym.version.in
+++ libvirt-0.5.1/src/libvirt_sym.version.in
@@ -224,6 +224,11 @@ LIBVIRT_0.4.2 {
--- libvirt-0.6.2.orig/src/libvirt_public.syms
+++ libvirt-0.6.2/src/libvirt_public.syms
@@ -215,6 +215,11 @@ LIBVIRT_0.4.2 {
LIBVIRT_0.4.5 {
global:
virConnectFindStoragePoolSources;

View File

@ -1,8 +1,8 @@
Index: libvirt-0.5.1/src/remote_internal.c
Index: libvirt-0.6.2/src/remote_internal.c
===================================================================
--- libvirt-0.5.1.orig/src/remote_internal.c
+++ libvirt-0.5.1/src/remote_internal.c
@@ -674,9 +674,22 @@ doRemoteOpen (virConnectPtr conn,
--- libvirt-0.6.2.orig/src/remote_internal.c
+++ libvirt-0.6.2/src/remote_internal.c
@@ -704,9 +704,22 @@ doRemoteOpen (virConnectPtr conn,
cmd_argv[j++] = strdup ("none");
}
cmd_argv[j++] = strdup (priv->hostname);

View File

@ -1,8 +1,8 @@
Index: libvirt-0.5.1/src/network_conf.c
Index: libvirt-0.6.2/src/network_conf.c
===================================================================
--- libvirt-0.5.1.orig/src/network_conf.c
+++ libvirt-0.5.1/src/network_conf.c
@@ -752,6 +752,137 @@ error:
--- libvirt-0.6.2.orig/src/network_conf.c
+++ libvirt-0.6.2/src/network_conf.c
@@ -768,6 +768,137 @@ error:
return NULL;
}
@ -140,7 +140,7 @@ Index: libvirt-0.5.1/src/network_conf.c
int virNetworkLoadAllConfigs(virConnectPtr conn,
virNetworkObjListPtr nets,
const char *configDir,
@@ -787,6 +918,7 @@ int virNetworkLoadAllConfigs(virConnectP
@@ -807,6 +938,7 @@ int virNetworkLoadAllConfigs(virConnectP
closedir(dir);
@ -148,25 +148,25 @@ Index: libvirt-0.5.1/src/network_conf.c
return 0;
}
Index: libvirt-0.5.1/src/network_conf.h
Index: libvirt-0.6.2/src/network_conf.h
===================================================================
--- libvirt-0.5.1.orig/src/network_conf.h
+++ libvirt-0.5.1/src/network_conf.h
@@ -86,6 +86,7 @@ struct _virNetworkObj {
--- libvirt-0.6.2.orig/src/network_conf.h
+++ libvirt-0.6.2/src/network_conf.h
@@ -89,6 +89,7 @@ struct _virNetworkObj {
unsigned int active : 1;
unsigned int autostart : 1;
unsigned int persistent : 1;
+ unsigned int readonly : 1;
char *configFile; /* Persistent config file path */
char *autostartLink; /* Symlink path for autostart */
Index: libvirt-0.5.1/src/network_driver.c
virNetworkDefPtr def; /* The current definition */
virNetworkDefPtr newDef; /* New definition to activate at shutdown */
Index: libvirt-0.6.2/src/network_driver.c
===================================================================
--- libvirt-0.5.1.orig/src/network_driver.c
+++ libvirt-0.5.1/src/network_driver.c
@@ -763,6 +763,11 @@ static int networkShutdownNetworkDaemon(
if (!virNetworkIsActive(network))
return 0;
--- libvirt-0.6.2.orig/src/network_driver.c
+++ libvirt-0.6.2/src/network_driver.c
@@ -914,6 +914,11 @@ static int networkShutdownNetworkDaemon(
unlink(stateFile);
VIR_FREE(stateFile);
+ if (network->readonly) {
+ networkLog(NETWORK_WARN, ": Network '%s' is readonly", network->def->name);
@ -176,8 +176,8 @@ Index: libvirt-0.5.1/src/network_driver.c
if (network->dnsmasqPid > 0)
kill(network->dnsmasqPid, SIGTERM);
@@ -1082,6 +1087,12 @@ static int networkSetAutostart(virNetwor
return -1;
@@ -1360,6 +1365,12 @@ static int networkSetAutostart(virNetwor
goto cleanup;
}
+ if (network->readonly) {
@ -188,4 +188,4 @@ Index: libvirt-0.5.1/src/network_driver.c
+
autostart = (autostart != 0);
if (network->autostart == autostart)
if (network->autostart != autostart) {

View File

@ -1,10 +1,10 @@
Index: libvirt-0.5.1/src/xend_internal.c
Index: libvirt-0.6.2/src/xend_internal.c
===================================================================
--- libvirt-0.5.1.orig/src/xend_internal.c
+++ libvirt-0.5.1/src/xend_internal.c
@@ -5021,7 +5021,10 @@ xenDaemonFormatSxprDisk(virConnectPtr co
def->device == VIR_DOMAIN_DISK_DEVICE_CDROM ?
"cdrom" : "disk");
--- libvirt-0.6.2.orig/src/xend_internal.c
+++ libvirt-0.6.2/src/xend_internal.c
@@ -5262,7 +5262,10 @@ xenDaemonFormatSxprDisk(virConnectPtr co
} else if (def->device == VIR_DOMAIN_DISK_DEVICE_CDROM) {
virBufferVSprintf(buf, "(dev '%s:cdrom')", def->dst);
} else {
- virBufferVSprintf(buf, "(dev '%s')", def->dst);
+ if (def->device == VIR_DOMAIN_DISK_DEVICE_CDROM)