SHA256
1
0
forked from pool/libvirt

Fix polkit vs PolicyKit Requires

OBS-URL: https://build.opensuse.org/package/show/Virtualization/libvirt?expand=0&rev=21
This commit is contained in:
James Fehlig 2009-11-05 03:56:27 +00:00 committed by Git OBS Bridge
parent 73e0472e89
commit c9dd98a09f
19 changed files with 395 additions and 2341 deletions

View File

@ -1,7 +1,7 @@
Index: src/lxc_container.c Index: src/lxc/lxc_container.c
=================================================================== ===================================================================
--- src/lxc_container.c.orig --- src/lxc/lxc_container.c.orig
+++ src/lxc_container.c +++ src/lxc/lxc_container.c
@@ -796,6 +796,9 @@ int lxcContainerStart(virDomainDefPtr de @@ -796,6 +796,9 @@ int lxcContainerStart(virDomainDefPtr de
lxc_child_argv_t args = { def, nveths, veths, control, ttyPath }; lxc_child_argv_t args = { def, nveths, veths, control, ttyPath };

View File

@ -1,8 +1,8 @@
Index: libvirt-0.7.1/src/xend_internal.c Index: libvirt-0.7.2/src/xen/xend_internal.c
=================================================================== ===================================================================
--- libvirt-0.7.1.orig/src/xend_internal.c --- libvirt-0.7.2.orig/src/xen/xend_internal.c
+++ libvirt-0.7.1/src/xend_internal.c +++ libvirt-0.7.2/src/xen/xend_internal.c
@@ -5877,7 +5877,7 @@ virDomainXMLDevID(virDomainPtr domain, @@ -5896,7 +5896,7 @@ virDomainXMLDevID(virDomainPtr domain,
return -1; return -1;
xenUnifiedLock(priv); xenUnifiedLock(priv);
xref = xenStoreDomainGetDiskID(domain->conn, domain->id, xref = xenStoreDomainGetDiskID(domain->conn, domain->id,
@ -11,11 +11,11 @@ Index: libvirt-0.7.1/src/xend_internal.c
xenUnifiedUnlock(priv); xenUnifiedUnlock(priv);
if (xref == NULL) if (xref == NULL)
return -1; return -1;
Index: libvirt-0.7.1/src/xs_internal.c Index: libvirt-0.7.2/src/xen/xs_internal.c
=================================================================== ===================================================================
--- libvirt-0.7.1.orig/src/xs_internal.c --- libvirt-0.7.2.orig/src/xen/xs_internal.c
+++ libvirt-0.7.1/src/xs_internal.c +++ libvirt-0.7.2/src/xen/xs_internal.c
@@ -966,7 +966,8 @@ xenStoreDomainGetNetworkID(virConnectPtr @@ -968,7 +968,8 @@ xenStoreDomainGetNetworkID(virConnectPtr
* freed by the caller. * freed by the caller.
*/ */
char * char *
@ -25,7 +25,7 @@ Index: libvirt-0.7.1/src/xs_internal.c
char dir[80], path[128], **list = NULL, *val = NULL; char dir[80], path[128], **list = NULL, *val = NULL;
unsigned int devlen, len, i, num; unsigned int devlen, len, i, num;
char *ret = NULL; char *ret = NULL;
@@ -984,7 +985,7 @@ xenStoreDomainGetDiskID(virConnectPtr co @@ -986,7 +987,7 @@ xenStoreDomainGetDiskID(virConnectPtr co
if (devlen <= 0) if (devlen <= 0)
return (NULL); return (NULL);
@ -34,10 +34,10 @@ Index: libvirt-0.7.1/src/xs_internal.c
list = xs_directory(priv->xshandle, 0, dir, &num); list = xs_directory(priv->xshandle, 0, dir, &num);
if (list != NULL) { if (list != NULL) {
for (i = 0; i < num; i++) { for (i = 0; i < num; i++) {
Index: libvirt-0.7.1/src/xs_internal.h Index: libvirt-0.7.2/src/xen/xs_internal.h
=================================================================== ===================================================================
--- libvirt-0.7.1.orig/src/xs_internal.h --- libvirt-0.7.2.orig/src/xen/xs_internal.h
+++ libvirt-0.7.1/src/xs_internal.h +++ libvirt-0.7.2/src/xen/xs_internal.h
@@ -49,7 +49,8 @@ char * xenStoreDomainGetNetworkID(virCo @@ -49,7 +49,8 @@ char * xenStoreDomainGetNetworkID(virCo
const char *mac); const char *mac);
char * xenStoreDomainGetDiskID(virConnectPtr conn, char * xenStoreDomainGetDiskID(virConnectPtr conn,

View File

@ -1,8 +1,8 @@
diff --git a/configure.in b/configure.in Index: libvirt-0.7.2/configure.in
index cb5ce55..d1711fd 100644 ===================================================================
--- a/configure.in --- libvirt-0.7.2.orig/configure.in
+++ b/configure.in +++ libvirt-0.7.2/configure.in
@@ -1227,11 +1227,22 @@ if test "$with_storage_mpath" = "yes"; then @@ -1304,11 +1304,22 @@ if test "$with_storage_mpath" = "yes"; t
DEVMAPPER_REQUIRED=0.0 DEVMAPPER_REQUIRED=0.0
DEVMAPPER_CFLAGS= DEVMAPPER_CFLAGS=
DEVMAPPER_LIBS= DEVMAPPER_LIBS=

25
fs-ocfs2.patch Normal file
View File

@ -0,0 +1,25 @@
Index: libvirt-0.7.2/src/conf/storage_conf.c
===================================================================
--- libvirt-0.7.2.orig/src/conf/storage_conf.c
+++ libvirt-0.7.2/src/conf/storage_conf.c
@@ -60,7 +60,7 @@ VIR_ENUM_IMPL(virStoragePoolFormatFileSy
VIR_STORAGE_POOL_FS_LAST,
"auto", "ext2", "ext3",
"ext4", "ufs", "iso9660", "udf",
- "gfs", "gfs2", "vfat", "hfs+", "xfs")
+ "gfs", "gfs2", "vfat", "hfs+", "xfs", "ocfs2")
VIR_ENUM_IMPL(virStoragePoolFormatFileSystemNet,
VIR_STORAGE_POOL_NETFS_LAST,
Index: libvirt-0.7.2/src/conf/storage_conf.h
===================================================================
--- libvirt-0.7.2.orig/src/conf/storage_conf.h
+++ libvirt-0.7.2/src/conf/storage_conf.h
@@ -395,6 +395,7 @@ enum virStoragePoolFormatFileSystem {
VIR_STORAGE_POOL_FS_VFAT,
VIR_STORAGE_POOL_FS_HFSPLUS,
VIR_STORAGE_POOL_FS_XFS,
+ VIR_STORAGE_POOL_FS_OCFS2,
VIR_STORAGE_POOL_FS_LAST,
};
VIR_ENUM_DECL(virStoragePoolFormatFileSystem)

View File

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

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

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

View File

@ -1,3 +1,34 @@
-------------------------------------------------------------------
Wed Nov 4 20:53:11 MDT 2009 - jfehlig@novell.com
- spec file: Fix polkit vs PolicyKit Requires
-------------------------------------------------------------------
Mon Oct 19 14:13:47 MDT 2009 - jfehlig@novell.com
- Fix compilation when selinux is enabled
selinux-ldflags.patch
- Fix compilation warnings
updated snapshots.patch
virsh-warning.patch
-------------------------------------------------------------------
Thu Oct 15 22:26:35 MDT 2009 - jfehlig@novell.com
- Updated to version 0.7.2
- sVirt AppArmor security driver
- Add public API definition for data stream handling
- ESX add esxDomainDefineXML()
- LXC: suspend/resume support
- Big code tree cleanup
- Lots of bug fixes and improvements
-------------------------------------------------------------------
Tue Oct 13 16:28:03 MDT 2009 - jfehlig@novell.com
- Add ocfs2 to list of supported fs pool types
fate#307387
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Oct 12 22:39:42 MDT 2009 - jfehlig@novell.com Mon Oct 12 22:39:42 MDT 2009 - jfehlig@novell.com

View File

@ -1,5 +1,5 @@
# #
# spec file for package libvirt (Version 0.7.1) # spec file for package libvirt (Version 0.7.2)
# #
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany. # Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
# #
@ -35,7 +35,7 @@
%endif %endif
Name: libvirt Name: libvirt
BuildRequires: bridge-utils cyrus-sasl-devel device-mapper-devel fdupes gettext gnutls-devel hal-devel iptables-devel libxml2-devel lvm2 ncurses-devel parted-devel pkg-config python-devel readline-devel util-linux xhtml-dtd BuildRequires: bridge-utils cyrus-sasl-devel device-mapper-devel fdupes gettext gnutls-devel hal-devel iptables-devel libxml2-devel lvm2 ncurses-devel parted-devel pkg-config python-devel python-xml readline-devel util-linux xhtml-dtd
%if %{with_xen} %if %{with_xen}
BuildRequires: xen-devel BuildRequires: xen-devel
%endif %endif
@ -64,7 +64,7 @@ Url: http://libvirt.org/
License: LGPL v2.1 or later License: LGPL v2.1 or later
Group: Development/Libraries/C and C++ Group: Development/Libraries/C and C++
AutoReqProv: yes AutoReqProv: yes
Version: 0.7.1 Version: 0.7.2
Release: 3 Release: 3
Summary: A C toolkit to interract with the virtualization capabilities of Linux Summary: A C toolkit to interract with the virtualization capabilities of Linux
Requires: readline Requires: readline
@ -83,7 +83,7 @@ Requires: socat
Requires: open-iscsi Requires: open-iscsi
Requires: nfs-client Requires: nfs-client
Requires: hal Requires: hal
%if 0%{?suse_version} > 1100 %if 0%{?suse_version} > 1110
Requires: polkit >= 0.9 Requires: polkit >= 0.9
%else %else
Requires: PolicyKit >= 0.6 Requires: PolicyKit >= 0.6
@ -92,9 +92,9 @@ Source0: %{name}-%{version}.tar.bz2
Source1: libvirtd.init Source1: libvirtd.init
# Upstream patches # Upstream patches
Patch0: devmap-no-pkgconfig.patch Patch0: devmap-no-pkgconfig.patch
Patch1: xen-refcnt.patch Patch1: fs-ocfs2.patch
Patch2: vshdeinit-recurse.patch Patch2: selinux-ldflags.patch
Patch3: msg-proc-memleak.patch Patch3: virsh-warning.patch
# Need to go upstream # Need to go upstream
Patch100: socat.patch Patch100: socat.patch
Patch101: clone.patch Patch101: clone.patch
@ -247,7 +247,6 @@ rm -rf $RPM_BUILD_ROOT/usr/share/locale/sr@latin
rm -f $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/autostart/default.xml rm -f $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/autostart/default.xml
mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/run/libvirt mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/run/libvirt
mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/lib/libvirt mkdir -p $RPM_BUILD_ROOT/%{_localstatedir}/lib/libvirt
rm $RPM_BUILD_ROOT%{_docdir}/%{name}/{*.c,examples.x*}
rm $RPM_BUILD_ROOT%{_libdir}/*.*a $RPM_BUILD_ROOT%{py_sitedir}/*.*a rm $RPM_BUILD_ROOT%{_libdir}/*.*a $RPM_BUILD_ROOT%{py_sitedir}/*.*a
ln_dupes() ln_dupes()
{ {
@ -288,12 +287,14 @@ rm -rf $RPM_BUILD_ROOT
%defattr(-, root, root) %defattr(-, root, root)
%{_bindir}/virsh %{_bindir}/virsh
%{_bindir}/virt-xml-validate %{_bindir}/virt-xml-validate
%{_bindir}/virt-pki-validate
%{_sbindir}/libvirtd %{_sbindir}/libvirtd
%doc %dir %{_docdir}/%{name} %doc %dir %{_docdir}/%{name}
%doc %{_docdir}/%{name}/[CNRT]* %doc %{_docdir}/%{name}/[CNRT]*
%doc %{_docdir}/%{name}/AUTHORS %doc %{_docdir}/%{name}/AUTHORS
%doc %{_mandir}/man1/virsh.1* %doc %{_mandir}/man1/virsh.1*
%doc %{_mandir}/man1/virt-xml-validate.1* %doc %{_mandir}/man1/virt-xml-validate.1*
%doc %{_mandir}/man1/virt-pki-validate.1*
%{_libdir}/*.so.* %{_libdir}/*.so.*
%dir %{_libdir}/%{name} %dir %{_libdir}/%{name}
%if 0%{?suse_version} > 1030 %if 0%{?suse_version} > 1030
@ -306,6 +307,9 @@ rm -rf $RPM_BUILD_ROOT
%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/ %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/
%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/autostart %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/autostart
%if %{with_lxc}
%config %{_sysconfdir}/libvirt/lxc.conf
%endif
%config %{_sysconfdir}/libvirt/qemu/networks/default.xml %config %{_sysconfdir}/libvirt/qemu/networks/default.xml
%config %{_sysconfdir}/logrotate.d/libvirtd %config %{_sysconfdir}/logrotate.d/libvirtd
%dir /%{_localstatedir}/run/libvirt/ %dir /%{_localstatedir}/run/libvirt/
@ -332,7 +336,6 @@ rm -rf $RPM_BUILD_ROOT
%files doc %files doc
%defattr(-, root, root) %defattr(-, root, root)
%{_datadir}/gtk-doc/html/libvirt %{_datadir}/gtk-doc/html/libvirt
%doc %{_docdir}/%{name}/*.gif
%doc %{_docdir}/%{name}/*.png %doc %{_docdir}/%{name}/*.png
%doc %{_docdir}/%{name}/*.html %doc %{_docdir}/%{name}/*.html
%doc %{_docdir}/%{name}/html %doc %{_docdir}/%{name}/html

View File

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

View File

@ -1,8 +1,8 @@
Index: libvirt-0.6.5/src/xend_internal.c Index: libvirt-0.7.2/src/xen/xend_internal.c
=================================================================== ===================================================================
--- libvirt-0.6.5.orig/src/xend_internal.c --- libvirt-0.7.2.orig/src/xen/xend_internal.c
+++ libvirt-0.6.5/src/xend_internal.c +++ libvirt-0.7.2/src/xen/xend_internal.c
@@ -4480,6 +4480,8 @@ xenDaemonDomainMigratePerform (virDomain @@ -4491,6 +4491,8 @@ xenDaemonDomainMigratePerform (virDomain
"node", "-1", "node", "-1",
"ssl", "0", "ssl", "0",
"resource", "0", /* required, xend ignores it */ "resource", "0", /* required, xend ignores it */

View File

@ -1,48 +0,0 @@
Index: libvirt-0.7.1/qemud/dispatch.c
===================================================================
--- libvirt-0.7.1.orig/qemud/dispatch.c
+++ libvirt-0.7.1/qemud/dispatch.c
@@ -191,6 +191,7 @@ remoteSerializeError(struct qemud_client
xdr_error:
xdr_destroy(&xdr);
+ VIR_FREE(msg);
fatal_error:
xdr_free((xdrproc_t)xdr_remote_error, (char *)rerr);
return -1;
@@ -336,6 +337,7 @@ remoteDispatchClientRequest (struct qemu
struct qemud_client *client,
struct qemud_client_message *msg)
{
+ int ret;
remote_error rerr;
memset(&rerr, 0, sizeof rerr);
@@ -364,7 +366,12 @@ remoteDispatchClientRequest (struct qemu
}
error:
- return remoteSerializeReplyError(client, &rerr, &msg->hdr);
+ ret = remoteSerializeReplyError(client, &rerr, &msg->hdr);
+
+ if (ret >= 0)
+ VIR_FREE(msg);
+
+ return ret;
}
@@ -521,8 +528,12 @@ remoteDispatchClientCall (struct qemud_s
rpc_error:
/* Semi-bad stuff happened, we can still try to send back
* an RPC error message to client */
- return remoteSerializeReplyError(client, &rerr, &msg->hdr);
+ rv = remoteSerializeReplyError(client, &rerr, &msg->hdr);
+
+ if (rv >= 0)
+ VIR_FREE(msg);
+ return rv;
xdr_error:
/* Seriously bad stuff happened, so we'll kill off this client

13
selinux-ldflags.patch Normal file
View File

@ -0,0 +1,13 @@
Index: libvirt-0.7.2/src/Makefile.am
===================================================================
--- libvirt-0.7.2.orig/src/Makefile.am
+++ libvirt-0.7.2/src/Makefile.am
@@ -657,6 +657,8 @@ libvirt_driver_security_la_CFLAGS = \
libvirt_driver_security_la_LDFLAGS =
if WITH_SECDRIVER_SELINUX
libvirt_driver_security_la_SOURCES += $(SECURITY_DRIVER_SELINUX_SOURCES)
+libvirt_driver_security_la_CFLAGS += $(SELINUX_CFLAGS)
+libvirt_driver_security_la_LDFLAGS += $(SELINUX_LIBS)
endif
if WITH_SECDRIVER_APPARMOR
libvirt_driver_security_la_SOURCES += $(SECURITY_DRIVER_APPARMOR_SOURCES)

View File

@ -1,8 +1,8 @@
Index: libvirt-0.7.1/include/libvirt/libvirt.h.in Index: libvirt-0.7.2/include/libvirt/libvirt.h.in
=================================================================== ===================================================================
--- libvirt-0.7.1.orig/include/libvirt/libvirt.h.in --- libvirt-0.7.2.orig/include/libvirt/libvirt.h.in
+++ libvirt-0.7.1/include/libvirt/libvirt.h.in +++ libvirt-0.7.2/include/libvirt/libvirt.h.in
@@ -537,6 +537,21 @@ int virDomainRestore @@ -561,6 +561,21 @@ int virDomainRestore
const char *from); const char *from);
/* /*
@ -24,16 +24,14 @@ Index: libvirt-0.7.1/include/libvirt/libvirt.h.in
* Domain core dump * Domain core dump
*/ */
int virDomainCoreDump (virDomainPtr domain, int virDomainCoreDump (virDomainPtr domain,
Index: libvirt-0.7.1/src/libvirt.c Index: libvirt-0.7.2/src/libvirt.c
=================================================================== ===================================================================
--- libvirt-0.7.1.orig/src/libvirt.c --- libvirt-0.7.2.orig/src/libvirt.c
+++ libvirt-0.7.1/src/libvirt.c +++ libvirt-0.7.2/src/libvirt.c
@@ -2245,6 +2245,168 @@ error: @@ -2234,6 +2234,166 @@ error:
return -1;
} }
+ /**
+/**
+ * virDomainSnapshotCreate: + * virDomainSnapshotCreate:
+ * @domain: a domain object + * @domain: a domain object
+ * @name: name for the new snapshot + * @name: name for the new snapshot
@ -193,15 +191,15 @@ Index: libvirt-0.7.1/src/libvirt.c
+ return -1; + return -1;
+} +}
+ +
+ +/**
/**
* virDomainCoreDump: * virDomainCoreDump:
* @domain: a domain object * @domain: a domain object
Index: libvirt-0.7.1/src/driver.h * @to: path for the core file
Index: libvirt-0.7.2/src/driver.h
=================================================================== ===================================================================
--- libvirt-0.7.1.orig/src/driver.h --- libvirt-0.7.2.orig/src/driver.h
+++ libvirt-0.7.1/src/driver.h +++ libvirt-0.7.2/src/driver.h
@@ -152,6 +152,21 @@ typedef int @@ -133,6 +133,21 @@ typedef int
(*virDrvDomainRestore) (virConnectPtr conn, (*virDrvDomainRestore) (virConnectPtr conn,
const char *from); const char *from);
typedef int typedef int
@ -223,10 +221,10 @@ Index: libvirt-0.7.1/src/driver.h
(*virDrvDomainCoreDump) (virDomainPtr domain, (*virDrvDomainCoreDump) (virDomainPtr domain,
const char *to, const char *to,
int flags); int flags);
@@ -427,6 +442,11 @@ struct _virDriver { @@ -418,6 +433,11 @@ struct _virDriver {
virDrvNodeDeviceDettach nodeDeviceDettach;
virDrvNodeDeviceReAttach nodeDeviceReAttach; virDrvNodeDeviceReAttach nodeDeviceReAttach;
virDrvNodeDeviceReset nodeDeviceReset; virDrvNodeDeviceReset nodeDeviceReset;
virDrvDomainMigratePrepareTunnel domainMigratePrepareTunnel;
+ virDrvDomainSnapshotCreate domainSnapshotCreate; + virDrvDomainSnapshotCreate domainSnapshotCreate;
+ virDrvDomainSnapshotApply domainSnapshotApply; + virDrvDomainSnapshotApply domainSnapshotApply;
+ virDrvDomainSnapshotDelete domainSnapshotDelete; + virDrvDomainSnapshotDelete domainSnapshotDelete;
@ -235,11 +233,11 @@ Index: libvirt-0.7.1/src/driver.h
}; };
typedef int typedef int
Index: libvirt-0.7.1/src/xen_unified.c Index: libvirt-0.7.2/src/xen/xen_driver.c
=================================================================== ===================================================================
--- libvirt-0.7.1.orig/src/xen_unified.c --- libvirt-0.7.2.orig/src/xen/xen_driver.c
+++ libvirt-0.7.1/src/xen_unified.c +++ libvirt-0.7.2/src/xen/xen_driver.c
@@ -952,6 +952,81 @@ xenUnifiedDomainRestore (virConnectPtr c @@ -955,6 +955,81 @@ xenUnifiedDomainRestore (virConnectPtr c
} }
static int static int
@ -321,10 +319,10 @@ Index: libvirt-0.7.1/src/xen_unified.c
xenUnifiedDomainCoreDump (virDomainPtr dom, const char *to, int flags) xenUnifiedDomainCoreDump (virDomainPtr dom, const char *to, int flags)
{ {
GET_PRIVATE(dom->conn); GET_PRIVATE(dom->conn);
@@ -1722,6 +1797,11 @@ static virDriver xenUnifiedDriver = { @@ -1726,6 +1801,11 @@ static virDriver xenUnifiedDriver = {
xenUnifiedNodeDeviceDettach, /* nodeDeviceDettach */
xenUnifiedNodeDeviceReAttach, /* nodeDeviceReAttach */ xenUnifiedNodeDeviceReAttach, /* nodeDeviceReAttach */
xenUnifiedNodeDeviceReset, /* nodeDeviceReset */ xenUnifiedNodeDeviceReset, /* nodeDeviceReset */
NULL, /* domainMigratePrepareTunnel */
+ xenUnifiedDomainSnapshotCreate, + xenUnifiedDomainSnapshotCreate,
+ xenUnifiedDomainSnapshotApply, + xenUnifiedDomainSnapshotApply,
+ xenUnifiedDomainSnapshotDelete, + xenUnifiedDomainSnapshotDelete,
@ -333,10 +331,10 @@ Index: libvirt-0.7.1/src/xen_unified.c
}; };
/** /**
Index: libvirt-0.7.1/src/xen_unified.h Index: libvirt-0.7.2/src/xen/xen_driver.h
=================================================================== ===================================================================
--- libvirt-0.7.1.orig/src/xen_unified.h --- libvirt-0.7.2.orig/src/xen/xen_driver.h
+++ libvirt-0.7.1/src/xen_unified.h +++ libvirt-0.7.2/src/xen/xen_driver.h
@@ -98,6 +98,11 @@ struct xenUnifiedDriver { @@ -98,6 +98,11 @@ struct xenUnifiedDriver {
virDrvDomainGetSchedulerType domainGetSchedulerType; virDrvDomainGetSchedulerType domainGetSchedulerType;
virDrvDomainGetSchedulerParameters domainGetSchedulerParameters; virDrvDomainGetSchedulerParameters domainGetSchedulerParameters;
@ -349,10 +347,10 @@ Index: libvirt-0.7.1/src/xen_unified.h
}; };
typedef struct xenXMConfCache *xenXMConfCachePtr; typedef struct xenXMConfCache *xenXMConfCachePtr;
Index: libvirt-0.7.1/src/xend_internal.c Index: libvirt-0.7.2/src/xen/xend_internal.c
=================================================================== ===================================================================
--- libvirt-0.7.1.orig/src/xend_internal.c --- libvirt-0.7.2.orig/src/xen/xend_internal.c
+++ libvirt-0.7.1/src/xend_internal.c +++ libvirt-0.7.2/src/xen/xend_internal.c
@@ -53,6 +53,12 @@ @@ -53,6 +53,12 @@
#ifndef PROXY #ifndef PROXY
@ -366,7 +364,7 @@ Index: libvirt-0.7.1/src/xend_internal.c
/* /*
* The number of Xen scheduler parameters * The number of Xen scheduler parameters
*/ */
@@ -3248,6 +3254,87 @@ xenDaemonDomainRestore(virConnectPtr con @@ -3257,6 +3263,87 @@ xenDaemonDomainRestore(virConnectPtr con
} }
return xend_op(conn, "", "op", "restore", "file", filename, NULL); return xend_op(conn, "", "op", "restore", "file", filename, NULL);
} }
@ -454,7 +452,7 @@ Index: libvirt-0.7.1/src/xend_internal.c
#endif /* !PROXY */ #endif /* !PROXY */
/** /**
@@ -5064,6 +5151,11 @@ struct xenUnifiedDriver xenDaemonDriver @@ -5082,6 +5169,11 @@ struct xenUnifiedDriver xenDaemonDriver
xenDaemonGetSchedulerType, /* domainGetSchedulerType */ xenDaemonGetSchedulerType, /* domainGetSchedulerType */
xenDaemonGetSchedulerParameters, /* domainGetSchedulerParameters */ xenDaemonGetSchedulerParameters, /* domainGetSchedulerParameters */
xenDaemonSetSchedulerParameters, /* domainSetSchedulerParameters */ xenDaemonSetSchedulerParameters, /* domainSetSchedulerParameters */
@ -466,10 +464,10 @@ Index: libvirt-0.7.1/src/xend_internal.c
}; };
/************************************************************************ /************************************************************************
Index: libvirt-0.7.1/src/proxy_internal.c Index: libvirt-0.7.2/src/xen/proxy_internal.c
=================================================================== ===================================================================
--- libvirt-0.7.1.orig/src/proxy_internal.c --- libvirt-0.7.2.orig/src/xen/proxy_internal.c
+++ libvirt-0.7.1/src/proxy_internal.c +++ libvirt-0.7.2/src/xen/proxy_internal.c
@@ -84,6 +84,11 @@ struct xenUnifiedDriver xenProxyDriver = @@ -84,6 +84,11 @@ struct xenUnifiedDriver xenProxyDriver =
NULL, /* domainGetSchedulerType */ NULL, /* domainGetSchedulerType */
NULL, /* domainGetSchedulerParameters */ NULL, /* domainGetSchedulerParameters */
@ -482,11 +480,11 @@ Index: libvirt-0.7.1/src/proxy_internal.c
}; };
Index: libvirt-0.7.1/src/xen_internal.c Index: libvirt-0.7.2/src/xen/xen_hypervisor.c
=================================================================== ===================================================================
--- libvirt-0.7.1.orig/src/xen_internal.c --- libvirt-0.7.2.orig/src/xen/xen_hypervisor.c
+++ libvirt-0.7.1/src/xen_internal.c +++ libvirt-0.7.2/src/xen/xen_hypervisor.c
@@ -741,6 +741,11 @@ struct xenUnifiedDriver xenHypervisorDri @@ -742,6 +742,11 @@ struct xenUnifiedDriver xenHypervisorDri
xenHypervisorGetSchedulerType, /* domainGetSchedulerType */ xenHypervisorGetSchedulerType, /* domainGetSchedulerType */
xenHypervisorGetSchedulerParameters, /* domainGetSchedulerParameters */ xenHypervisorGetSchedulerParameters, /* domainGetSchedulerParameters */
xenHypervisorSetSchedulerParameters, /* domainSetSchedulerParameters */ xenHypervisorSetSchedulerParameters, /* domainSetSchedulerParameters */
@ -498,10 +496,10 @@ Index: libvirt-0.7.1/src/xen_internal.c
}; };
#endif /* !PROXY */ #endif /* !PROXY */
Index: libvirt-0.7.1/src/xm_internal.c Index: libvirt-0.7.2/src/xen/xm_internal.c
=================================================================== ===================================================================
--- libvirt-0.7.1.orig/src/xm_internal.c --- libvirt-0.7.2.orig/src/xen/xm_internal.c
+++ libvirt-0.7.1/src/xm_internal.c +++ libvirt-0.7.2/src/xen/xm_internal.c
@@ -116,6 +116,11 @@ struct xenUnifiedDriver xenXMDriver = { @@ -116,6 +116,11 @@ struct xenUnifiedDriver xenXMDriver = {
NULL, /* domainGetSchedulerType */ NULL, /* domainGetSchedulerType */
NULL, /* domainGetSchedulerParameters */ NULL, /* domainGetSchedulerParameters */
@ -514,10 +512,10 @@ Index: libvirt-0.7.1/src/xm_internal.c
}; };
#define xenXMError(conn, code, fmt...) \ #define xenXMError(conn, code, fmt...) \
Index: libvirt-0.7.1/src/xs_internal.c Index: libvirt-0.7.2/src/xen/xs_internal.c
=================================================================== ===================================================================
--- libvirt-0.7.1.orig/src/xs_internal.c --- libvirt-0.7.2.orig/src/xen/xs_internal.c
+++ libvirt-0.7.1/src/xs_internal.c +++ libvirt-0.7.2/src/xen/xs_internal.c
@@ -83,6 +83,11 @@ struct xenUnifiedDriver xenStoreDriver = @@ -83,6 +83,11 @@ struct xenUnifiedDriver xenStoreDriver =
NULL, /* domainGetSchedulerType */ NULL, /* domainGetSchedulerType */
NULL, /* domainGetSchedulerParameters */ NULL, /* domainGetSchedulerParameters */
@ -530,16 +528,14 @@ Index: libvirt-0.7.1/src/xs_internal.c
}; };
#endif /* ! PROXY */ #endif /* ! PROXY */
Index: libvirt-0.7.1/src/virsh.c Index: libvirt-0.7.2/tools/virsh.c
=================================================================== ===================================================================
--- libvirt-0.7.1.orig/src/virsh.c --- libvirt-0.7.2.orig/tools/virsh.c
+++ libvirt-0.7.1/src/virsh.c +++ libvirt-0.7.2/tools/virsh.c
@@ -1167,6 +1167,189 @@ cmdSave(vshControl *ctl, const vshCmd *c @@ -1168,6 +1168,188 @@ cmdSave(vshControl *ctl, const vshCmd *c
return ret;
} }
+ /*
+/*
+ * "snapshot-create" command + * "snapshot-create" command
+ */ + */
+static vshCmdInfo info_snapshot_create[] = { +static vshCmdInfo info_snapshot_create[] = {
@ -575,8 +571,8 @@ Index: libvirt-0.7.1/src/virsh.c
+ if (virDomainSnapshotCreate(dom, name) == 0) { + if (virDomainSnapshotCreate(dom, name) == 0) {
+ vshPrint(ctl, _("Snapshot %s created for domain %s\n"), name, domain); + vshPrint(ctl, _("Snapshot %s created for domain %s\n"), name, domain);
+ } else { + } else {
+ vshError(ctl, FALSE, _("Failed to create snapshot %s for domain %s"), + vshError(ctl, _("Failed to create snapshot %s for domain %s"),
+ name, domain); + name, domain);
+ ret = FALSE; + ret = FALSE;
+ } + }
+ +
@ -621,8 +617,8 @@ Index: libvirt-0.7.1/src/virsh.c
+ vshPrint(ctl, _("Domain %s started using snapshot %s\n"), + vshPrint(ctl, _("Domain %s started using snapshot %s\n"),
+ domain, name); + domain, name);
+ } else { + } else {
+ vshError(ctl, FALSE, _("Failed to start domain %s using snapshot %s"), + vshError(ctl, _("Failed to start domain %s using snapshot %s"),
+ domain, name); + domain, name);
+ ret = FALSE; + ret = FALSE;
+ } + }
+ +
@ -666,8 +662,8 @@ Index: libvirt-0.7.1/src/virsh.c
+ if (virDomainSnapshotDelete(dom, name) == 0) { + if (virDomainSnapshotDelete(dom, name) == 0) {
+ vshPrint(ctl, _("Snapshot %s deleted from domain %s\n"), name, domain); + vshPrint(ctl, _("Snapshot %s deleted from domain %s\n"), name, domain);
+ } else { + } else {
+ vshError(ctl, FALSE, _("Failed to delete snapshot %s from domain %s"), + vshError(ctl, _("Failed to delete snapshot %s from domain %s"),
+ name, domain); + name, domain);
+ ret = FALSE; + ret = FALSE;
+ } + }
+ +
@ -721,10 +717,11 @@ Index: libvirt-0.7.1/src/virsh.c
+ return ret; + return ret;
+} +}
+ +
/* +/*
* "schedinfo" command * "schedinfo" command
*/ */
@@ -7252,6 +7435,12 @@ static const vshCmdDef commands[] = { static const vshCmdInfo info_schedinfo[] = {
@@ -7273,6 +7455,12 @@ static const vshCmdDef commands[] = {
{"undefine", cmdUndefine, opts_undefine, info_undefine}, {"undefine", cmdUndefine, opts_undefine, info_undefine},
{"uri", cmdURI, NULL, info_uri}, {"uri", cmdURI, NULL, info_uri},
@ -737,14 +734,14 @@ Index: libvirt-0.7.1/src/virsh.c
{"vol-create", cmdVolCreate, opts_vol_create, info_vol_create}, {"vol-create", cmdVolCreate, opts_vol_create, info_vol_create},
{"vol-create-from", cmdVolCreateFrom, opts_vol_create_from, info_vol_create_from}, {"vol-create-from", cmdVolCreateFrom, opts_vol_create_from, info_vol_create_from},
{"vol-create-as", cmdVolCreateAs, opts_vol_create_as, info_vol_create_as}, {"vol-create-as", cmdVolCreateAs, opts_vol_create_as, info_vol_create_as},
Index: libvirt-0.7.1/src/lxc_driver.c Index: libvirt-0.7.2/src/lxc/lxc_driver.c
=================================================================== ===================================================================
--- libvirt-0.7.1.orig/src/lxc_driver.c --- libvirt-0.7.2.orig/src/lxc/lxc_driver.c
+++ libvirt-0.7.1/src/lxc_driver.c +++ libvirt-0.7.2/src/lxc/lxc_driver.c
@@ -1931,6 +1931,11 @@ static virDriver lxcDriver = { @@ -2324,6 +2324,11 @@ static virDriver lxcDriver = {
NULL, /* nodeDeviceDettach */
NULL, /* nodeDeviceReAttach */ NULL, /* nodeDeviceReAttach */
NULL, /* nodeDeviceReset */ NULL, /* nodeDeviceReset */
NULL, /* domainMigratePrepareTunnel */
+ NULL, /* domainSnapshotCreate */ + NULL, /* domainSnapshotCreate */
+ NULL, /* domainSnapshotApply */ + NULL, /* domainSnapshotApply */
+ NULL, /* domainSnapshotDelete */ + NULL, /* domainSnapshotDelete */
@ -753,14 +750,14 @@ Index: libvirt-0.7.1/src/lxc_driver.c
}; };
static virStateDriver lxcStateDriver = { static virStateDriver lxcStateDriver = {
Index: libvirt-0.7.1/src/openvz_driver.c Index: libvirt-0.7.2/src/openvz/openvz_driver.c
=================================================================== ===================================================================
--- libvirt-0.7.1.orig/src/openvz_driver.c --- libvirt-0.7.2.orig/src/openvz/openvz_driver.c
+++ libvirt-0.7.1/src/openvz_driver.c +++ libvirt-0.7.2/src/openvz/openvz_driver.c
@@ -1392,6 +1392,11 @@ static virDriver openvzDriver = { @@ -1433,6 +1433,11 @@ static virDriver openvzDriver = {
NULL, /* nodeDeviceDettach */
NULL, /* nodeDeviceReAttach */ NULL, /* nodeDeviceReAttach */
NULL, /* nodeDeviceReset */ NULL, /* nodeDeviceReset */
NULL, /* domainMigratePrepareTunnel */
+ NULL, /* domainSnapshotCreate */ + NULL, /* domainSnapshotCreate */
+ NULL, /* domainSnapshotApply */ + NULL, /* domainSnapshotApply */
+ NULL, /* domainSnapshotDelete */ + NULL, /* domainSnapshotDelete */
@ -769,14 +766,14 @@ Index: libvirt-0.7.1/src/openvz_driver.c
}; };
int openvzRegister(void) { int openvzRegister(void) {
Index: libvirt-0.7.1/src/qemu_driver.c Index: libvirt-0.7.2/src/qemu/qemu_driver.c
=================================================================== ===================================================================
--- libvirt-0.7.1.orig/src/qemu_driver.c --- libvirt-0.7.2.orig/src/qemu/qemu_driver.c
+++ libvirt-0.7.1/src/qemu_driver.c +++ libvirt-0.7.2/src/qemu/qemu_driver.c
@@ -7576,6 +7576,11 @@ static virDriver qemuDriver = { @@ -7136,6 +7136,11 @@ static virDriver qemuDriver = {
qemudNodeDeviceDettach, /* nodeDeviceDettach */
qemudNodeDeviceReAttach, /* nodeDeviceReAttach */ qemudNodeDeviceReAttach, /* nodeDeviceReAttach */
qemudNodeDeviceReset, /* nodeDeviceReset */ qemudNodeDeviceReset, /* nodeDeviceReset */
qemudDomainMigratePrepareTunnel, /* domainMigratePrepareTunnel */
+ NULL, /* domainSnapshotCreate */ + NULL, /* domainSnapshotCreate */
+ NULL, /* domainSnapshotApply */ + NULL, /* domainSnapshotApply */
+ NULL, /* domainSnapshotDelete */ + NULL, /* domainSnapshotDelete */
@ -785,14 +782,30 @@ Index: libvirt-0.7.1/src/qemu_driver.c
}; };
Index: libvirt-0.7.1/src/test.c Index: libvirt-0.7.2/src/esx/esx_driver.c
=================================================================== ===================================================================
--- libvirt-0.7.1.orig/src/test.c --- libvirt-0.7.2.orig/src/esx/esx_driver.c
+++ libvirt-0.7.1/src/test.c +++ libvirt-0.7.2/src/esx/esx_driver.c
@@ -4257,6 +4257,11 @@ static virDriver testDriver = { @@ -3275,6 +3275,11 @@ static virDriver esxDriver = {
NULL, /* nodeDeviceDettach */ NULL, /* nodeDeviceReAttach */
NULL, /* nodeDeviceReset */
NULL, /* domainMigratePrepareTunnel */
+ NULL, /* domainSnapshotCreate */
+ NULL, /* domainSnapshotApply */
+ NULL, /* domainSnapshotDelete */
+ NULL, /* domainNumOfSnapshots */
+ NULL, /* domainListSnapshots */
};
Index: libvirt-0.7.2/src/test/test_driver.c
===================================================================
--- libvirt-0.7.2.orig/src/test/test_driver.c
+++ libvirt-0.7.2/src/test/test_driver.c
@@ -4558,6 +4558,11 @@ static virDriver testDriver = {
NULL, /* nodeDeviceReAttach */ NULL, /* nodeDeviceReAttach */
NULL, /* nodeDeviceReset */ NULL, /* nodeDeviceReset */
NULL, /* domainMigratePrepareTunnel */
+ NULL, /* domainSnapshotCreate */ + NULL, /* domainSnapshotCreate */
+ NULL, /* domainSnapshotApply */ + NULL, /* domainSnapshotApply */
+ NULL, /* domainSnapshotDelete */ + NULL, /* domainSnapshotDelete */
@ -801,23 +814,103 @@ Index: libvirt-0.7.1/src/test.c
}; };
static virNetworkDriver testNetworkDriver = { static virNetworkDriver testNetworkDriver = {
Index: libvirt-0.7.1/docs/libvirt-api.xml Index: libvirt-0.7.2/src/uml/uml_driver.c
=================================================================== ===================================================================
--- libvirt-0.7.1.orig/docs/libvirt-api.xml --- libvirt-0.7.2.orig/src/uml/uml_driver.c
+++ libvirt-0.7.1/docs/libvirt-api.xml +++ libvirt-0.7.2/src/uml/uml_driver.c
@@ -208,6 +208,11 @@ @@ -1862,6 +1862,11 @@ static virDriver umlDriver = {
<exports symbol='virInterfaceDefineXML' type='function'/> NULL, /* nodeDeviceReAttach */
<exports symbol='virDomainMigrate' type='function'/> NULL, /* nodeDeviceReset */
NULL, /* domainMigratePrepareTunnel */
+ NULL, /* domainSnapshotCreate */
+ NULL, /* domainSnapshotApply */
+ NULL, /* domainSnapshotDelete */
+ NULL, /* domainNumOfSnapshots */
+ NULL, /* domainListSnapshots */
};
Index: libvirt-0.7.2/src/vbox/vbox_tmpl.c
===================================================================
--- libvirt-0.7.2.orig/src/vbox/vbox_tmpl.c
+++ libvirt-0.7.2/src/vbox/vbox_tmpl.c
@@ -6468,6 +6468,11 @@ virDriver NAME(Driver) = {
NULL, /* nodeDeviceReAttach */
NULL, /* nodeDeviceReset */
NULL, /* domainMigratePrepareTunnel */
+ NULL, /* domainSnapshotCreate */
+ NULL, /* domainSnapshotApply */
+ NULL, /* domainSnapshotDelete */
+ NULL, /* domainNumOfSnapshots */
+ NULL, /* domainListSnapshots */
};
virNetworkDriver NAME(NetworkDriver) = {
Index: libvirt-0.7.2/src/opennebula/one_driver.c
===================================================================
--- libvirt-0.7.2.orig/src/opennebula/one_driver.c
+++ libvirt-0.7.2/src/opennebula/one_driver.c
@@ -788,6 +788,11 @@ static virDriver oneDriver = {
NULL, /* nodeDeviceReAttach; */
NULL, /* nodeDeviceReset; */
NULL, /* domainMigratePrepareTunnel */
+ NULL, /* domainSnapshotCreate */
+ NULL, /* domainSnapshotApply */
+ NULL, /* domainSnapshotDelete */
+ NULL, /* domainNumOfSnapshots */
+ NULL, /* domainListSnapshots */
};
static virStateDriver oneStateDriver = {
Index: libvirt-0.7.2/src/phyp/phyp_driver.c
===================================================================
--- libvirt-0.7.2.orig/src/phyp/phyp_driver.c
+++ libvirt-0.7.2/src/phyp/phyp_driver.c
@@ -1378,6 +1378,11 @@ virDriver phypDriver = {
NULL, /* nodeDeviceReAttach */
NULL, /* nodeDeviceReset */
NULL, /* domainMigratePrepareTunnel */
+ NULL, /* domainSnapshotCreate */
+ NULL, /* domainSnapshotApply */
+ NULL, /* domainSnapshotDelete */
+ NULL, /* domainNumOfSnapshots */
+ NULL, /* domainListSnapshots */
};
int
Index: libvirt-0.7.2/src/remote/remote_driver.c
===================================================================
--- libvirt-0.7.2.orig/src/remote/remote_driver.c
+++ libvirt-0.7.2/src/remote/remote_driver.c
@@ -8466,6 +8466,11 @@ static virDriver remote_driver = {
remoteNodeDeviceReAttach, /* nodeDeviceReAttach */
remoteNodeDeviceReset, /* nodeDeviceReset */
remoteDomainMigratePrepareTunnel, /* domainMigratePrepareTunnel */
+ NULL, /* domainSnapshotCreate */
+ NULL, /* domainSnapshotApply */
+ NULL, /* domainSnapshotDelete */
+ NULL, /* domainNumOfSnapshots */
+ NULL, /* domainListSnapshots */
};
static virNetworkDriver network_driver = {
Index: libvirt-0.7.2/docs/libvirt-api.xml
===================================================================
--- libvirt-0.7.2.orig/docs/libvirt-api.xml
+++ libvirt-0.7.2/docs/libvirt-api.xml
@@ -262,6 +262,11 @@
<exports symbol='virDomainSetVcpus' type='function'/>
<exports symbol='virDomainShutdown' type='function'/>
<exports symbol='virDomainSuspend' type='function'/> <exports symbol='virDomainSuspend' type='function'/>
+ <exports symbol='virDomainSnapshotApply' type='function'/> + <exports symbol='virDomainSnapshotApply' type='function'/>
+ <exports symbol='virDomainSnapshotCreate' type='function'/> + <exports symbol='virDomainSnapshotCreate' type='function'/>
+ <exports symbol='virDomainSnapshotDelete' type='function'/> + <exports symbol='virDomainSnapshotDelete' type='function'/>
+ <exports symbol='virDomainNumOfSnapshots' type='function'/> + <exports symbol='virDomainNumOfSnapshots' type='function'/>
+ <exports symbol='virDomainListSnapshots' type='function'/> + <exports symbol='virDomainListSnapshots' type='function'/>
<exports symbol='virDomainCreateLinux' type='function'/> <exports symbol='virDomainUndefine' type='function'/>
<exports symbol='virNodeDeviceGetXMLDesc' type='function'/> <exports symbol='virEventAddHandleFunc' type='function'/>
<exports symbol='virEventUpdateHandleFunc' type='function'/> <exports symbol='virEventAddTimeoutFunc' type='function'/>
@@ -1432,6 +1437,36 @@ see note above'/> @@ -1817,6 +1822,36 @@ This function may requires privileged ac
<return type='int' info='0 in case of success and -1 in case of failure.'/> <return type='int' info='0 in case of success and -1 in case of failure.'/>
<arg name='domain' type='virDomainPtr' info='a domain object'/> <arg name='domain' type='virDomainPtr' info='a domain object'/>
</function> </function>
@ -852,187 +945,41 @@ Index: libvirt-0.7.1/docs/libvirt-api.xml
+ <arg name='maxnames' type='int' info='size of the names array'/> + <arg name='maxnames' type='int' info='size of the names array'/>
+ </function> + </function>
<function name='virDomainUndefine' file='libvirt' module='libvirt'> <function name='virDomainUndefine' file='libvirt' module='libvirt'>
<info>Undefine a domain but does not stop it if it is running</info> <info><![CDATA[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'/> <return type='int' info='0 in case of success, -1 in case of error'/>
Index: libvirt-0.7.1/python/libvirt-py.c Index: libvirt-0.7.2/src/libvirt_public.syms
=================================================================== ===================================================================
--- libvirt-0.7.1.orig/python/libvirt-py.c --- libvirt-0.7.2.orig/src/libvirt_public.syms
+++ libvirt-0.7.1/python/libvirt-py.c +++ libvirt-0.7.2/src/libvirt_public.syms
@@ -25,6 +25,25 @@ LIBVIRT_END_ALLOW_THREADS; @@ -215,6 +215,11 @@ LIBVIRT_0.4.2 {
} LIBVIRT_0.4.5 {
global:
virConnectFindStoragePoolSources;
+ virDomainSnapshotCreate;
+ virDomainSnapshotApply;
+ virDomainSnapshotDelete;
+ virDomainNumOfSnapshots;
+ virDomainListSnapshots;
} LIBVIRT_0.4.2;
PyObject * LIBVIRT_0.5.0 {
+libvirt_virDomainSnapshotDelete(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { Index: libvirt-0.7.2/python/generator.py
+ PyObject *py_retval;
+ int c_retval;
+ virDomainPtr domain;
+ PyObject *pyobj_domain;
+ char * name;
+
+ if (!PyArg_ParseTuple(args, (char *)"Oz:virDomainSnapshotDelete", &pyobj_domain, &name))
+ return(NULL);
+ domain = (virDomainPtr) PyvirDomain_Get(pyobj_domain);
+LIBVIRT_BEGIN_ALLOW_THREADS;
+
+ c_retval = virDomainSnapshotDelete(domain, name);
+LIBVIRT_END_ALLOW_THREADS;
+ py_retval = libvirt_intWrap((int) c_retval);
+ return(py_retval);
+}
+
+PyObject *
libvirt_virStorageVolGetKey(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
PyObject *py_retval;
const char * c_retval;
@@ -1151,6 +1170,25 @@ LIBVIRT_END_ALLOW_THREADS;
}
PyObject *
+libvirt_virDomainSnapshotCreate(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+ PyObject *py_retval;
+ int c_retval;
+ virDomainPtr domain;
+ PyObject *pyobj_domain;
+ char * name;
+
+ if (!PyArg_ParseTuple(args, (char *)"Oz:virDomainSnapshotCreate", &pyobj_domain, &name))
+ return(NULL);
+ domain = (virDomainPtr) PyvirDomain_Get(pyobj_domain);
+LIBVIRT_BEGIN_ALLOW_THREADS;
+
+ c_retval = virDomainSnapshotCreate(domain, name);
+LIBVIRT_END_ALLOW_THREADS;
+ py_retval = libvirt_intWrap((int) c_retval);
+ return(py_retval);
+}
+
+PyObject *
libvirt_virNetworkDefineXML(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
PyObject *py_retval;
virNetworkPtr c_retval;
@@ -1186,6 +1224,24 @@ LIBVIRT_END_ALLOW_THREADS;
}
PyObject *
+libvirt_virDomainNumOfSnapshots(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+ PyObject *py_retval;
+ int c_retval;
+ virDomainPtr domain;
+ PyObject *pyobj_domain;
+
+ if (!PyArg_ParseTuple(args, (char *)"O:virDomainNumOfSnapshots", &pyobj_domain))
+ return(NULL);
+ domain = (virDomainPtr) PyvirDomain_Get(pyobj_domain);
+LIBVIRT_BEGIN_ALLOW_THREADS;
+
+ c_retval = virDomainNumOfSnapshots(domain);
+LIBVIRT_END_ALLOW_THREADS;
+ py_retval = libvirt_intWrap((int) c_retval);
+ return(py_retval);
+}
+
+PyObject *
libvirt_virDomainResume(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
PyObject *py_retval;
int c_retval;
@@ -1201,6 +1257,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;
+ virDomainPtr domain;
+ PyObject *pyobj_domain;
+ char * name;
+
+ if (!PyArg_ParseTuple(args, (char *)"Oz:virDomainSnapshotApply", &pyobj_domain, &name))
+ return(NULL);
+ domain = (virDomainPtr) PyvirDomain_Get(pyobj_domain);
+LIBVIRT_BEGIN_ALLOW_THREADS;
+
+ c_retval = virDomainSnapshotApply(domain, name);
+LIBVIRT_END_ALLOW_THREADS;
+ py_retval = libvirt_intWrap((int) c_retval);
+ return(py_retval);
}
PyObject *
Index: libvirt-0.7.1/python/libvirt-py.h
=================================================================== ===================================================================
--- libvirt-0.7.1.orig/python/libvirt-py.h --- libvirt-0.7.2.orig/python/generator.py
+++ libvirt-0.7.1/python/libvirt-py.h +++ libvirt-0.7.2/python/generator.py
@@ -1,6 +1,7 @@ @@ -286,6 +286,7 @@ skip_impl = (
/* Generated */ 'virDomainSetSchedulerParameters',
'virDomainGetVcpus',
PyObject * libvirt_virStoragePoolGetXMLDesc(PyObject *self, PyObject *args); 'virDomainPinVcpu',
+PyObject * libvirt_virDomainSnapshotDelete(PyObject *self, PyObject *args); + 'virDomainListSnapshots',
PyObject * libvirt_virStorageVolGetKey(PyObject *self, PyObject *args); 'virSecretGetValue',
PyObject * libvirt_virDomainUndefine(PyObject *self, PyObject *args); 'virSecretSetValue',
PyObject * libvirt_virDomainDefineXML(PyObject *self, PyObject *args); 'virSecretGetUUID',
Index: libvirt-0.7.1/python/libvirt.py Index: libvirt-0.7.2/python/libvirt-override.c
=================================================================== ===================================================================
--- libvirt-0.7.1.orig/python/libvirt.py --- libvirt-0.7.2.orig/python/libvirt-override.c
+++ libvirt-0.7.1/python/libvirt.py +++ libvirt-0.7.2/python/libvirt-override.c
@@ -390,6 +390,12 @@ class virDomain: @@ -1375,6 +1375,34 @@ libvirt_virStoragePoolGetInfo(PyObject *
ret = libvirtmod.virDomainGetName(self._o)
return ret
+ def numOfSnapshots(self):
+ """Returns the number of snapshot a given domain has """
+ ret = libvirtmod.virDomainNumOfSnapshots(self._o)
+ if ret == -1: raise libvirtError ('virDomainNumOfSnapshots() failed', dom=self)
+ return ret
+
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.
@@ -478,6 +484,24 @@ class virDomain:
if ret == -1: raise libvirtError ('virDomainShutdown() failed', dom=self)
return ret
+ def snapshotApply(self, name):
+ """Start a shut off domain based on a previously taken snapshot """
+ ret = libvirtmod.virDomainSnapshotApply(self._o, name)
+ if ret == -1: raise libvirtError ('virDomainSnapshotApply() failed', dom=self)
+ return ret
+
+ def snapshotCreate(self, name):
+ """Create a snapshot from a running domain """
+ ret = libvirtmod.virDomainSnapshotCreate(self._o, name)
+ if ret == -1: raise libvirtError ('virDomainSnapshotCreate() failed', dom=self)
+ return ret
+
+ def snapshotDelete(self, name):
+ """Delete a snapshot from a domain """
+ ret = libvirtmod.virDomainSnapshotDelete(self._o, name)
+ if ret == -1: raise libvirtError ('virDomainSnapshotDelete() failed', dom=self)
+ return ret
+
def suspend(self):
"""Suspends an active domain, the process is frozen without
further access to CPU resources and I/O but the memory used
@@ -536,6 +560,12 @@ class virDomain:
if ret is None: raise libvirtError ('virDomainInterfaceStats() failed', dom=self)
return ret
+ def listSnapshots(self):
+ """Returns the names of the snapshots of a domain """
+ ret = libvirtmod.virDomainListSnapshots(self._o)
+ if ret is None: raise libvirtError ('virDomainListSnapshots() failed', dom=self)
+ return ret
+
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.7.1/python/libvir.c
===================================================================
--- libvirt-0.7.1.orig/python/libvir.c
+++ libvirt-0.7.1/python/libvir.c
@@ -1375,6 +1375,35 @@ libvirt_virStoragePoolGetInfo(PyObject *
return(py_retval); return(py_retval);
} }
@ -1064,22 +1011,21 @@ Index: libvirt-0.7.1/python/libvir.c
+ +
+ return(py_retval); + return(py_retval);
+} +}
+
static PyObject * static PyObject *
libvirt_virStorageVolGetInfo(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) { libvirt_virStorageVolGetInfo(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
@@ -2420,6 +2449,7 @@ static PyMethodDef libvirtMethods[] = { @@ -2425,6 +2453,7 @@ static PyMethodDef libvirtMethods[] = {
{(char *) "virDomainSetSchedulerParameters", libvirt_virDomainSetSchedulerParameters, METH_VARARGS, NULL},
{(char *) "virDomainGetVcpus", libvirt_virDomainGetVcpus, METH_VARARGS, NULL},
{(char *) "virDomainPinVcpu", libvirt_virDomainPinVcpu, METH_VARARGS, NULL},
+ {(char *) "virDomainListSnapshots", libvirt_virDomainListSnapshots, METH_VARARGS, NULL},
{(char *) "virConnectListStoragePools", libvirt_virConnectListStoragePools, METH_VARARGS, NULL},
{(char *) "virConnectListDefinedStoragePools", libvirt_virConnectListDefinedStoragePools, METH_VARARGS, NULL},
{(char *) "virStoragePoolGetAutostart", libvirt_virStoragePoolGetAutostart, METH_VARARGS, NULL}, {(char *) "virStoragePoolGetAutostart", libvirt_virStoragePoolGetAutostart, METH_VARARGS, NULL},
Index: libvirt-0.7.1/python/libvirt-python-api.xml {(char *) "virStoragePoolListVolumes", libvirt_virStoragePoolListVolumes, METH_VARARGS, NULL},
{(char *) "virStoragePoolGetInfo", libvirt_virStoragePoolGetInfo, METH_VARARGS, NULL},
+ {(char *) "virDomainListSnapshots", libvirt_virDomainListSnapshots, METH_VARARGS, NULL},
{(char *) "virStorageVolGetInfo", libvirt_virStorageVolGetInfo, METH_VARARGS, NULL},
{(char *) "virStoragePoolGetUUID", libvirt_virStoragePoolGetUUID, METH_VARARGS, NULL},
{(char *) "virStoragePoolGetUUIDString", libvirt_virStoragePoolGetUUIDString, METH_VARARGS, NULL},
Index: libvirt-0.7.2/python/libvirt-override-api.xml
=================================================================== ===================================================================
--- libvirt-0.7.1.orig/python/libvirt-python-api.xml --- libvirt-0.7.2.orig/python/libvirt-override-api.xml
+++ libvirt-0.7.1/python/libvirt-python-api.xml +++ libvirt-0.7.2/python/libvirt-override-api.xml
@@ -135,6 +135,11 @@ @@ -135,6 +135,11 @@
<arg name='domain' type='virDomainPtr' info='pointer to domain object'/> <arg name='domain' type='virDomainPtr' info='pointer to domain object'/>
<arg name='params' type='virSchedParameterPtr' info='pointer to scheduler parameter objects'/> <arg name='params' type='virSchedParameterPtr' info='pointer to scheduler parameter objects'/>
@ -1092,31 +1038,19 @@ Index: libvirt-0.7.1/python/libvirt-python-api.xml
<function name='virConnectListStoragePools' file='python'> <function name='virConnectListStoragePools' file='python'>
<info>list the storage pools, stores the pointers to the names in @names</info> <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'/> <arg name='conn' type='virConnectPtr' info='pointer to the hypervisor connection'/>
Index: libvirt-0.7.1/python/generator.py Index: libvirt-0.7.2/src/xen/xen_inotify.c
=================================================================== ===================================================================
--- libvirt-0.7.1.orig/python/generator.py --- libvirt-0.7.2.orig/src/xen/xen_inotify.c
+++ libvirt-0.7.1/python/generator.py +++ libvirt-0.7.2/src/xen/xen_inotify.c
@@ -326,6 +326,7 @@ skip_impl = ( @@ -88,6 +88,11 @@ struct xenUnifiedDriver xenInotifyDriver
'virDomainSetSchedulerParameters', NULL, /* domainGetSchedulerType */
'virDomainGetVcpus', NULL, /* domainGetSchedulerParameters */
'virDomainPinVcpu', NULL, /* domainSetSchedulerParameters */
+ 'virDomainListSnapshots', + NULL, /* domainSnapshotCreate */
'virSecretGetValue', + NULL, /* domainSnapshotApply */
'virSecretSetValue', + NULL, /* domainSnapshotDelete */
'virSecretGetUUID', + NULL, /* domainNumOfSnapshots */
Index: libvirt-0.7.1/src/libvirt_public.syms + NULL, /* domainListSnapshots */
=================================================================== };
--- libvirt-0.7.1.orig/src/libvirt_public.syms
+++ libvirt-0.7.1/src/libvirt_public.syms
@@ -215,6 +215,11 @@ LIBVIRT_0.4.2 {
LIBVIRT_0.4.5 {
global:
virConnectFindStoragePoolSources;
+ virDomainSnapshotCreate;
+ virDomainSnapshotApply;
+ virDomainSnapshotDelete;
+ virDomainNumOfSnapshots;
+ virDomainListSnapshots;
} LIBVIRT_0.4.2;
LIBVIRT_0.5.0 { static int

View File

@ -1,8 +1,8 @@
Index: libvirt-0.7.1/src/remote_internal.c Index: libvirt-0.7.2/src/remote/remote_driver.c
=================================================================== ===================================================================
--- libvirt-0.7.1.orig/src/remote_internal.c --- libvirt-0.7.2.orig/src/remote/remote_driver.c
+++ libvirt-0.7.1/src/remote_internal.c +++ libvirt-0.7.2/src/remote/remote_driver.c
@@ -728,12 +728,29 @@ doRemoteOpen (virConnectPtr conn, @@ -760,12 +760,29 @@ doRemoteOpen (virConnectPtr conn,
cmd_argv[j++] = strdup ("none"); cmd_argv[j++] = strdup ("none");
} }
cmd_argv[j++] = strdup (priv->hostname); cmd_argv[j++] = strdup (priv->hostname);

View File

@ -1,8 +1,8 @@
Index: libvirt-0.7.1/src/network_conf.c Index: libvirt-0.7.2/src/conf/network_conf.c
=================================================================== ===================================================================
--- libvirt-0.7.1.orig/src/network_conf.c --- libvirt-0.7.2.orig/src/conf/network_conf.c
+++ libvirt-0.7.1/src/network_conf.c +++ libvirt-0.7.2/src/conf/network_conf.c
@@ -770,6 +770,137 @@ error: @@ -824,6 +824,137 @@ error:
return NULL; return NULL;
} }
@ -140,7 +140,7 @@ Index: libvirt-0.7.1/src/network_conf.c
int virNetworkLoadAllConfigs(virConnectPtr conn, int virNetworkLoadAllConfigs(virConnectPtr conn,
virNetworkObjListPtr nets, virNetworkObjListPtr nets,
const char *configDir, const char *configDir,
@@ -809,6 +940,7 @@ int virNetworkLoadAllConfigs(virConnectP @@ -863,6 +994,7 @@ int virNetworkLoadAllConfigs(virConnectP
closedir(dir); closedir(dir);
@ -148,11 +148,11 @@ Index: libvirt-0.7.1/src/network_conf.c
return 0; return 0;
} }
Index: libvirt-0.7.1/src/network_conf.h Index: libvirt-0.7.2/src/conf/network_conf.h
=================================================================== ===================================================================
--- libvirt-0.7.1.orig/src/network_conf.h --- libvirt-0.7.2.orig/src/conf/network_conf.h
+++ libvirt-0.7.1/src/network_conf.h +++ libvirt-0.7.2/src/conf/network_conf.h
@@ -89,6 +89,7 @@ struct _virNetworkObj { @@ -92,6 +92,7 @@ struct _virNetworkObj {
unsigned int active : 1; unsigned int active : 1;
unsigned int autostart : 1; unsigned int autostart : 1;
unsigned int persistent : 1; unsigned int persistent : 1;
@ -160,11 +160,11 @@ Index: libvirt-0.7.1/src/network_conf.h
virNetworkDefPtr def; /* The current definition */ virNetworkDefPtr def; /* The current definition */
virNetworkDefPtr newDef; /* New definition to activate at shutdown */ virNetworkDefPtr newDef; /* New definition to activate at shutdown */
Index: libvirt-0.7.1/src/network_driver.c Index: libvirt-0.7.2/src/network/bridge_driver.c
=================================================================== ===================================================================
--- libvirt-0.7.1.orig/src/network_driver.c --- libvirt-0.7.2.orig/src/network/bridge_driver.c
+++ libvirt-0.7.1/src/network_driver.c +++ libvirt-0.7.2/src/network/bridge_driver.c
@@ -963,6 +963,11 @@ static int networkShutdownNetworkDaemon( @@ -977,6 +977,11 @@ static int networkShutdownNetworkDaemon(
unlink(stateFile); unlink(stateFile);
VIR_FREE(stateFile); VIR_FREE(stateFile);
@ -176,7 +176,7 @@ Index: libvirt-0.7.1/src/network_driver.c
if (network->dnsmasqPid > 0) if (network->dnsmasqPid > 0)
kill(network->dnsmasqPid, SIGTERM); kill(network->dnsmasqPid, SIGTERM);
@@ -1419,6 +1424,12 @@ static int networkSetAutostart(virNetwor @@ -1433,6 +1438,12 @@ static int networkSetAutostart(virNetwor
goto cleanup; goto cleanup;
} }

19
virsh-warning.patch Normal file
View File

@ -0,0 +1,19 @@
commit edea3dfdd861d5eee4712da43781908f0fa2a6d5
Author: Jim Fehlig <jfehlig@novell.com>
Date: Mon Oct 19 13:53:40 2009 -0600
Remove extra arg in call to vshError()
Index: libvirt-0.7.2/tools/virsh.c
===================================================================
--- libvirt-0.7.2.orig/tools/virsh.c
+++ libvirt-0.7.2/tools/virsh.c
@@ -2510,7 +2510,7 @@ cmdMigrate (vshControl *ctl, const vshCm
* a libvirt URI, or a hypervisor specific URI. */
if (migrateuri != NULL) {
- vshError(ctl, FALSE, "%s", _("migrate: Unexpected migrateuri for peer2peer/direct migration"));
+ vshError(ctl, "%s", _("migrate: Unexpected migrateuri for peer2peer/direct migration"));
goto done;
}

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +1,8 @@
Index: libvirt-0.7.1/src/xend_internal.c Index: libvirt-0.7.2/src/xen/xend_internal.c
=================================================================== ===================================================================
--- libvirt-0.7.1.orig/src/xend_internal.c --- libvirt-0.7.2.orig/src/xen/xend_internal.c
+++ libvirt-0.7.1/src/xend_internal.c +++ libvirt-0.7.2/src/xen/xend_internal.c
@@ -5306,7 +5306,10 @@ xenDaemonFormatSxprDisk(virConnectPtr co @@ -5324,7 +5324,10 @@ xenDaemonFormatSxprDisk(virConnectPtr co
} else if (def->device == VIR_DOMAIN_DISK_DEVICE_CDROM) { } else if (def->device == VIR_DOMAIN_DISK_DEVICE_CDROM) {
virBufferVSprintf(buf, "(dev '%s:cdrom')", def->dst); virBufferVSprintf(buf, "(dev '%s:cdrom')", def->dst);
} else { } else {

View File

@ -1,41 +0,0 @@
Index: libvirt-0.7.1/src/xen_inotify.c
===================================================================
--- libvirt-0.7.1.orig/src/xen_inotify.c
+++ libvirt-0.7.1/src/xen_inotify.c
@@ -463,7 +463,6 @@ xenInotifyOpen(virConnectPtr conn ATTRIB
DEBUG0("Failed to add inotify handle, disabling events");
}
- virConnectRef(conn);
return 0;
}
@@ -486,7 +485,6 @@ xenInotifyClose(virConnectPtr conn)
if (priv->inotifyWatch != -1)
virEventRemoveHandle(priv->inotifyWatch);
close(priv->inotifyFD);
- virUnrefConnect(conn);
return 0;
}
Index: libvirt-0.7.1/src/xs_internal.c
===================================================================
--- libvirt-0.7.1.orig/src/xs_internal.c
+++ libvirt-0.7.1/src/xs_internal.c
@@ -1139,8 +1139,6 @@ int xenStoreAddWatch(virConnectPtr conn,
list->watches[n] = watch;
list->count++;
- conn->refs++;
-
return xs_watch(priv->xshandle, watch->path, watch->token);
}
@@ -1190,7 +1188,6 @@ int xenStoreRemoveWatch(virConnectPtr co
; /* Failure to reduce memory allocation isn't fatal */
}
list->count--;
- virUnrefConnect(conn);
return 0;
}
}