diff --git a/clone.patch b/clone.patch
index 77a6481..7c92647 100644
--- a/clone.patch
+++ b/clone.patch
@@ -1,7 +1,7 @@
-Index: src/lxc_container.c
+Index: src/lxc/lxc_container.c
===================================================================
---- src/lxc_container.c.orig
-+++ src/lxc_container.c
+--- src/lxc/lxc_container.c.orig
++++ src/lxc/lxc_container.c
@@ -796,6 +796,9 @@ int lxcContainerStart(virDomainDefPtr de
lxc_child_argv_t args = { def, nveths, veths, control, ttyPath };
diff --git a/detach-disk.patch b/detach-disk.patch
index d6df91f..834deec 100644
--- a/detach-disk.patch
+++ b/detach-disk.patch
@@ -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.1/src/xend_internal.c
-@@ -5877,7 +5877,7 @@ virDomainXMLDevID(virDomainPtr domain,
+--- libvirt-0.7.2.orig/src/xen/xend_internal.c
++++ libvirt-0.7.2/src/xen/xend_internal.c
+@@ -5896,7 +5896,7 @@ virDomainXMLDevID(virDomainPtr domain,
return -1;
xenUnifiedLock(priv);
xref = xenStoreDomainGetDiskID(domain->conn, domain->id,
@@ -11,11 +11,11 @@ Index: libvirt-0.7.1/src/xend_internal.c
xenUnifiedUnlock(priv);
if (xref == NULL)
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.1/src/xs_internal.c
-@@ -966,7 +966,8 @@ xenStoreDomainGetNetworkID(virConnectPtr
+--- libvirt-0.7.2.orig/src/xen/xs_internal.c
++++ libvirt-0.7.2/src/xen/xs_internal.c
+@@ -968,7 +968,8 @@ xenStoreDomainGetNetworkID(virConnectPtr
* freed by the caller.
*/
char *
@@ -25,7 +25,7 @@ Index: libvirt-0.7.1/src/xs_internal.c
char dir[80], path[128], **list = NULL, *val = NULL;
unsigned int devlen, len, i, num;
char *ret = NULL;
-@@ -984,7 +985,7 @@ xenStoreDomainGetDiskID(virConnectPtr co
+@@ -986,7 +987,7 @@ xenStoreDomainGetDiskID(virConnectPtr co
if (devlen <= 0)
return (NULL);
@@ -34,10 +34,10 @@ Index: libvirt-0.7.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.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.1/src/xs_internal.h
+--- libvirt-0.7.2.orig/src/xen/xs_internal.h
++++ libvirt-0.7.2/src/xen/xs_internal.h
@@ -49,7 +49,8 @@ char * xenStoreDomainGetNetworkID(virCo
const char *mac);
char * xenStoreDomainGetDiskID(virConnectPtr conn,
diff --git a/devmap-no-pkgconfig.patch b/devmap-no-pkgconfig.patch
index 6956081..78d9b22 100644
--- a/devmap-no-pkgconfig.patch
+++ b/devmap-no-pkgconfig.patch
@@ -1,8 +1,8 @@
-diff --git a/configure.in b/configure.in
-index cb5ce55..d1711fd 100644
---- a/configure.in
-+++ b/configure.in
-@@ -1227,11 +1227,22 @@ if test "$with_storage_mpath" = "yes"; then
+Index: libvirt-0.7.2/configure.in
+===================================================================
+--- libvirt-0.7.2.orig/configure.in
++++ libvirt-0.7.2/configure.in
+@@ -1304,11 +1304,22 @@ if test "$with_storage_mpath" = "yes"; t
DEVMAPPER_REQUIRED=0.0
DEVMAPPER_CFLAGS=
DEVMAPPER_LIBS=
diff --git a/fs-ocfs2.patch b/fs-ocfs2.patch
new file mode 100644
index 0000000..95e84c7
--- /dev/null
+++ b/fs-ocfs2.patch
@@ -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)
diff --git a/libvirt-0.7.1.tar.bz2 b/libvirt-0.7.1.tar.bz2
deleted file mode 100644
index 701a7c6..0000000
--- a/libvirt-0.7.1.tar.bz2
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8edde9577fbf0e90d0b33d4b328a79c51cc821c78a4c04b101007c1d6eed1909
-size 5440029
diff --git a/libvirt-0.7.2.tar.bz2 b/libvirt-0.7.2.tar.bz2
new file mode 100644
index 0000000..9e7e304
--- /dev/null
+++ b/libvirt-0.7.2.tar.bz2
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:311817f34ace89ee44b09a4d4854bbc3a5c0567bf9a8e8a6772c494432f94b33
+size 5563880
diff --git a/libvirt.changes b/libvirt.changes
index e2e6164..de22566 100644
--- a/libvirt.changes
+++ b/libvirt.changes
@@ -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
diff --git a/libvirt.spec b/libvirt.spec
index 3a24ac3..30d4bda 100644
--- a/libvirt.spec
+++ b/libvirt.spec
@@ -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.
#
@@ -35,7 +35,7 @@
%endif
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}
BuildRequires: xen-devel
%endif
@@ -64,7 +64,7 @@ Url: http://libvirt.org/
License: LGPL v2.1 or later
Group: Development/Libraries/C and C++
AutoReqProv: yes
-Version: 0.7.1
+Version: 0.7.2
Release: 3
Summary: A C toolkit to interract with the virtualization capabilities of Linux
Requires: readline
@@ -83,7 +83,7 @@ Requires: socat
Requires: open-iscsi
Requires: nfs-client
Requires: hal
-%if 0%{?suse_version} > 1100
+%if 0%{?suse_version} > 1110
Requires: polkit >= 0.9
%else
Requires: PolicyKit >= 0.6
@@ -92,9 +92,9 @@ Source0: %{name}-%{version}.tar.bz2
Source1: libvirtd.init
# Upstream patches
Patch0: devmap-no-pkgconfig.patch
-Patch1: xen-refcnt.patch
-Patch2: vshdeinit-recurse.patch
-Patch3: msg-proc-memleak.patch
+Patch1: fs-ocfs2.patch
+Patch2: selinux-ldflags.patch
+Patch3: virsh-warning.patch
# Need to go upstream
Patch100: socat.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
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*}
rm $RPM_BUILD_ROOT%{_libdir}/*.*a $RPM_BUILD_ROOT%{py_sitedir}/*.*a
ln_dupes()
{
@@ -288,12 +287,14 @@ rm -rf $RPM_BUILD_ROOT
%defattr(-, root, root)
%{_bindir}/virsh
%{_bindir}/virt-xml-validate
+%{_bindir}/virt-pki-validate
%{_sbindir}/libvirtd
%doc %dir %{_docdir}/%{name}
%doc %{_docdir}/%{name}/[CNRT]*
%doc %{_docdir}/%{name}/AUTHORS
%doc %{_mandir}/man1/virsh.1*
%doc %{_mandir}/man1/virt-xml-validate.1*
+%doc %{_mandir}/man1/virt-pki-validate.1*
%{_libdir}/*.so.*
%dir %{_libdir}/%{name}
%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/networks/
%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}/logrotate.d/libvirtd
%dir /%{_localstatedir}/run/libvirt/
@@ -332,7 +336,6 @@ rm -rf $RPM_BUILD_ROOT
%files doc
%defattr(-, root, root)
%{_datadir}/gtk-doc/html/libvirt
-%doc %{_docdir}/%{name}/*.gif
%doc %{_docdir}/%{name}/*.png
%doc %{_docdir}/%{name}/*.html
%doc %{_docdir}/%{name}/html
diff --git a/libvirtd-defaults.patch b/libvirtd-defaults.patch
index f0d484d..ac89e2a 100644
--- a/libvirtd-defaults.patch
+++ b/libvirtd-defaults.patch
@@ -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.1/qemud/libvirtd.conf
+--- libvirt-0.7.2.orig/daemon/libvirtd.conf
++++ libvirt-0.7.2/daemon/libvirtd.conf
@@ -18,8 +18,8 @@
# It is necessary to setup a CA and issue server certificates before
# using this capability.
@@ -28,11 +28,11 @@ Index: libvirt-0.7.1/qemud/libvirtd.conf
# Override the default mDNS advertizement name. This must be
# 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.1/qemud/qemud.c
-@@ -134,7 +134,7 @@ static int sigwrite = -1; /* Signa
+--- libvirt-0.7.2.orig/daemon/libvirtd.c
++++ libvirt-0.7.2/daemon/libvirtd.c
+@@ -135,7 +135,7 @@ static int sigwrite = -1; /* Signa
static int ipsock = 0; /* -l Listen for TCP/IP */
/* Defaults for configuration file elements */
@@ -41,7 +41,7 @@ Index: libvirt-0.7.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;
-@@ -156,7 +156,7 @@ static int auth_tcp = REMOTE_AUTH_NONE;
+@@ -157,7 +157,7 @@ static int auth_tcp = REMOTE_AUTH_NONE;
#endif
static int auth_tls = REMOTE_AUTH_NONE;
diff --git a/migrate-params.patch b/migrate-params.patch
index c619f6a..fbcf3d9 100644
--- a/migrate-params.patch
+++ b/migrate-params.patch
@@ -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.6.5/src/xend_internal.c
-@@ -4480,6 +4480,8 @@ xenDaemonDomainMigratePerform (virDomain
+--- libvirt-0.7.2.orig/src/xen/xend_internal.c
++++ libvirt-0.7.2/src/xen/xend_internal.c
+@@ -4491,6 +4491,8 @@ xenDaemonDomainMigratePerform (virDomain
"node", "-1",
"ssl", "0",
"resource", "0", /* required, xend ignores it */
diff --git a/msg-proc-memleak.patch b/msg-proc-memleak.patch
deleted file mode 100644
index cd40f75..0000000
--- a/msg-proc-memleak.patch
+++ /dev/null
@@ -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
diff --git a/selinux-ldflags.patch b/selinux-ldflags.patch
new file mode 100644
index 0000000..7b92fce
--- /dev/null
+++ b/selinux-ldflags.patch
@@ -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)
diff --git a/snapshots.patch b/snapshots.patch
index d4a32f6..a00c62e 100644
--- a/snapshots.patch
+++ b/snapshots.patch
@@ -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.1/include/libvirt/libvirt.h.in
-@@ -537,6 +537,21 @@ int virDomainRestore
+--- libvirt-0.7.2.orig/include/libvirt/libvirt.h.in
++++ libvirt-0.7.2/include/libvirt/libvirt.h.in
+@@ -561,6 +561,21 @@ int virDomainRestore
const char *from);
/*
@@ -24,16 +24,14 @@ Index: libvirt-0.7.1/include/libvirt/libvirt.h.in
* Domain core dump
*/
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.1/src/libvirt.c
-@@ -2245,6 +2245,168 @@ error:
- return -1;
+--- libvirt-0.7.2.orig/src/libvirt.c
++++ libvirt-0.7.2/src/libvirt.c
+@@ -2234,6 +2234,166 @@ error:
}
-+
-+/**
+ /**
+ * virDomainSnapshotCreate:
+ * @domain: a domain object
+ * @name: name for the new snapshot
@@ -193,15 +191,15 @@ Index: libvirt-0.7.1/src/libvirt.c
+ return -1;
+}
+
-+
- /**
++/**
* virDomainCoreDump:
* @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.1/src/driver.h
-@@ -152,6 +152,21 @@ typedef int
+--- libvirt-0.7.2.orig/src/driver.h
++++ libvirt-0.7.2/src/driver.h
+@@ -133,6 +133,21 @@ typedef int
(*virDrvDomainRestore) (virConnectPtr conn,
const char *from);
typedef int
@@ -223,10 +221,10 @@ Index: libvirt-0.7.1/src/driver.h
(*virDrvDomainCoreDump) (virDomainPtr domain,
const char *to,
int flags);
-@@ -427,6 +442,11 @@ struct _virDriver {
- virDrvNodeDeviceDettach nodeDeviceDettach;
+@@ -418,6 +433,11 @@ struct _virDriver {
virDrvNodeDeviceReAttach nodeDeviceReAttach;
virDrvNodeDeviceReset nodeDeviceReset;
+ virDrvDomainMigratePrepareTunnel domainMigratePrepareTunnel;
+ virDrvDomainSnapshotCreate domainSnapshotCreate;
+ virDrvDomainSnapshotApply domainSnapshotApply;
+ virDrvDomainSnapshotDelete domainSnapshotDelete;
@@ -235,11 +233,11 @@ Index: libvirt-0.7.1/src/driver.h
};
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.1/src/xen_unified.c
-@@ -952,6 +952,81 @@ xenUnifiedDomainRestore (virConnectPtr c
+--- libvirt-0.7.2.orig/src/xen/xen_driver.c
++++ libvirt-0.7.2/src/xen/xen_driver.c
+@@ -955,6 +955,81 @@ xenUnifiedDomainRestore (virConnectPtr c
}
static int
@@ -321,10 +319,10 @@ Index: libvirt-0.7.1/src/xen_unified.c
xenUnifiedDomainCoreDump (virDomainPtr dom, const char *to, int flags)
{
GET_PRIVATE(dom->conn);
-@@ -1722,6 +1797,11 @@ static virDriver xenUnifiedDriver = {
- xenUnifiedNodeDeviceDettach, /* nodeDeviceDettach */
+@@ -1726,6 +1801,11 @@ static virDriver xenUnifiedDriver = {
xenUnifiedNodeDeviceReAttach, /* nodeDeviceReAttach */
xenUnifiedNodeDeviceReset, /* nodeDeviceReset */
+ NULL, /* domainMigratePrepareTunnel */
+ xenUnifiedDomainSnapshotCreate,
+ xenUnifiedDomainSnapshotApply,
+ 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.1/src/xen_unified.h
+--- libvirt-0.7.2.orig/src/xen/xen_driver.h
++++ libvirt-0.7.2/src/xen/xen_driver.h
@@ -98,6 +98,11 @@ struct xenUnifiedDriver {
virDrvDomainGetSchedulerType domainGetSchedulerType;
virDrvDomainGetSchedulerParameters domainGetSchedulerParameters;
@@ -349,10 +347,10 @@ Index: libvirt-0.7.1/src/xen_unified.h
};
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.1/src/xend_internal.c
+--- libvirt-0.7.2.orig/src/xen/xend_internal.c
++++ libvirt-0.7.2/src/xen/xend_internal.c
@@ -53,6 +53,12 @@
#ifndef PROXY
@@ -366,7 +364,7 @@ Index: libvirt-0.7.1/src/xend_internal.c
/*
* 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);
}
@@ -454,7 +452,7 @@ Index: libvirt-0.7.1/src/xend_internal.c
#endif /* !PROXY */
/**
-@@ -5064,6 +5151,11 @@ struct xenUnifiedDriver xenDaemonDriver
+@@ -5082,6 +5169,11 @@ struct xenUnifiedDriver xenDaemonDriver
xenDaemonGetSchedulerType, /* domainGetSchedulerType */
xenDaemonGetSchedulerParameters, /* domainGetSchedulerParameters */
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.1/src/proxy_internal.c
+--- libvirt-0.7.2.orig/src/xen/proxy_internal.c
++++ libvirt-0.7.2/src/xen/proxy_internal.c
@@ -84,6 +84,11 @@ struct xenUnifiedDriver xenProxyDriver =
NULL, /* domainGetSchedulerType */
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.1/src/xen_internal.c
-@@ -741,6 +741,11 @@ struct xenUnifiedDriver xenHypervisorDri
+--- libvirt-0.7.2.orig/src/xen/xen_hypervisor.c
++++ libvirt-0.7.2/src/xen/xen_hypervisor.c
+@@ -742,6 +742,11 @@ struct xenUnifiedDriver xenHypervisorDri
xenHypervisorGetSchedulerType, /* domainGetSchedulerType */
xenHypervisorGetSchedulerParameters, /* domainGetSchedulerParameters */
xenHypervisorSetSchedulerParameters, /* domainSetSchedulerParameters */
@@ -498,10 +496,10 @@ Index: libvirt-0.7.1/src/xen_internal.c
};
#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.1/src/xm_internal.c
+--- libvirt-0.7.2.orig/src/xen/xm_internal.c
++++ libvirt-0.7.2/src/xen/xm_internal.c
@@ -116,6 +116,11 @@ struct xenUnifiedDriver xenXMDriver = {
NULL, /* domainGetSchedulerType */
NULL, /* domainGetSchedulerParameters */
@@ -514,10 +512,10 @@ Index: libvirt-0.7.1/src/xm_internal.c
};
#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.1/src/xs_internal.c
+--- libvirt-0.7.2.orig/src/xen/xs_internal.c
++++ libvirt-0.7.2/src/xen/xs_internal.c
@@ -83,6 +83,11 @@ struct xenUnifiedDriver xenStoreDriver =
NULL, /* domainGetSchedulerType */
NULL, /* domainGetSchedulerParameters */
@@ -530,16 +528,14 @@ Index: libvirt-0.7.1/src/xs_internal.c
};
#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.1/src/virsh.c
-@@ -1167,6 +1167,189 @@ cmdSave(vshControl *ctl, const vshCmd *c
- return ret;
+--- libvirt-0.7.2.orig/tools/virsh.c
++++ libvirt-0.7.2/tools/virsh.c
+@@ -1168,6 +1168,188 @@ cmdSave(vshControl *ctl, const vshCmd *c
}
-+
-+/*
+ /*
+ * "snapshot-create" command
+ */
+static vshCmdInfo info_snapshot_create[] = {
@@ -575,8 +571,8 @@ Index: libvirt-0.7.1/src/virsh.c
+ if (virDomainSnapshotCreate(dom, name) == 0) {
+ vshPrint(ctl, _("Snapshot %s created for domain %s\n"), name, domain);
+ } else {
-+ vshError(ctl, FALSE, _("Failed to create snapshot %s for domain %s"),
-+ name, domain);
++ vshError(ctl, _("Failed to create snapshot %s for domain %s"),
++ name, domain);
+ ret = FALSE;
+ }
+
@@ -621,8 +617,8 @@ Index: libvirt-0.7.1/src/virsh.c
+ vshPrint(ctl, _("Domain %s started using snapshot %s\n"),
+ domain, name);
+ } else {
-+ vshError(ctl, FALSE, _("Failed to start domain %s using snapshot %s"),
-+ domain, name);
++ vshError(ctl, _("Failed to start domain %s using snapshot %s"),
++ domain, name);
+ ret = FALSE;
+ }
+
@@ -666,8 +662,8 @@ Index: libvirt-0.7.1/src/virsh.c
+ if (virDomainSnapshotDelete(dom, name) == 0) {
+ vshPrint(ctl, _("Snapshot %s deleted from domain %s\n"), name, domain);
+ } else {
-+ vshError(ctl, FALSE, _("Failed to delete snapshot %s from domain %s"),
-+ name, domain);
++ vshError(ctl, _("Failed to delete snapshot %s from domain %s"),
++ name, domain);
+ ret = FALSE;
+ }
+
@@ -721,10 +717,11 @@ Index: libvirt-0.7.1/src/virsh.c
+ return ret;
+}
+
- /*
++/*
* "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},
{"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-from", cmdVolCreateFrom, opts_vol_create_from, info_vol_create_from},
{"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.1/src/lxc_driver.c
-@@ -1931,6 +1931,11 @@ static virDriver lxcDriver = {
- NULL, /* nodeDeviceDettach */
+--- libvirt-0.7.2.orig/src/lxc/lxc_driver.c
++++ libvirt-0.7.2/src/lxc/lxc_driver.c
+@@ -2324,6 +2324,11 @@ static virDriver lxcDriver = {
NULL, /* nodeDeviceReAttach */
NULL, /* nodeDeviceReset */
+ NULL, /* domainMigratePrepareTunnel */
+ NULL, /* domainSnapshotCreate */
+ NULL, /* domainSnapshotApply */
+ NULL, /* domainSnapshotDelete */
@@ -753,14 +750,14 @@ Index: libvirt-0.7.1/src/lxc_driver.c
};
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.1/src/openvz_driver.c
-@@ -1392,6 +1392,11 @@ static virDriver openvzDriver = {
- NULL, /* nodeDeviceDettach */
+--- libvirt-0.7.2.orig/src/openvz/openvz_driver.c
++++ libvirt-0.7.2/src/openvz/openvz_driver.c
+@@ -1433,6 +1433,11 @@ static virDriver openvzDriver = {
NULL, /* nodeDeviceReAttach */
NULL, /* nodeDeviceReset */
+ NULL, /* domainMigratePrepareTunnel */
+ NULL, /* domainSnapshotCreate */
+ NULL, /* domainSnapshotApply */
+ NULL, /* domainSnapshotDelete */
@@ -769,14 +766,14 @@ Index: libvirt-0.7.1/src/openvz_driver.c
};
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.1/src/qemu_driver.c
-@@ -7576,6 +7576,11 @@ static virDriver qemuDriver = {
- qemudNodeDeviceDettach, /* nodeDeviceDettach */
+--- libvirt-0.7.2.orig/src/qemu/qemu_driver.c
++++ libvirt-0.7.2/src/qemu/qemu_driver.c
+@@ -7136,6 +7136,11 @@ static virDriver qemuDriver = {
qemudNodeDeviceReAttach, /* nodeDeviceReAttach */
qemudNodeDeviceReset, /* nodeDeviceReset */
+ qemudDomainMigratePrepareTunnel, /* domainMigratePrepareTunnel */
+ NULL, /* domainSnapshotCreate */
+ NULL, /* domainSnapshotApply */
+ 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.1/src/test.c
-@@ -4257,6 +4257,11 @@ static virDriver testDriver = {
- NULL, /* nodeDeviceDettach */
+--- libvirt-0.7.2.orig/src/esx/esx_driver.c
++++ libvirt-0.7.2/src/esx/esx_driver.c
+@@ -3275,6 +3275,11 @@ static virDriver esxDriver = {
+ 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, /* nodeDeviceReset */
+ NULL, /* domainMigratePrepareTunnel */
+ NULL, /* domainSnapshotCreate */
+ NULL, /* domainSnapshotApply */
+ NULL, /* domainSnapshotDelete */
@@ -801,23 +814,103 @@ Index: libvirt-0.7.1/src/test.c
};
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.1/docs/libvirt-api.xml
-@@ -208,6 +208,11 @@
-
-
+--- libvirt-0.7.2.orig/src/uml/uml_driver.c
++++ libvirt-0.7.2/src/uml/uml_driver.c
+@@ -1862,6 +1862,11 @@ static virDriver umlDriver = {
+ NULL, /* nodeDeviceReAttach */
+ 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 @@
+
+
+
+
+
+
+
-
-
-
-@@ -1432,6 +1437,36 @@ see note above'/>
+
+
+
+@@ -1817,6 +1822,36 @@ This function may requires privileged ac
@@ -852,187 +945,41 @@ Index: libvirt-0.7.1/docs/libvirt-api.xml
+
+
- Undefine a domain but does not stop it if it is running
+
-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.1/python/libvirt-py.c
-@@ -25,6 +25,25 @@ LIBVIRT_END_ALLOW_THREADS;
- }
+--- libvirt-0.7.2.orig/src/libvirt_public.syms
++++ libvirt-0.7.2/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;
- PyObject *
-+libvirt_virDomainSnapshotDelete(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: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.5.0 {
+Index: libvirt-0.7.2/python/generator.py
===================================================================
---- libvirt-0.7.1.orig/python/libvirt-py.h
-+++ libvirt-0.7.1/python/libvirt-py.h
-@@ -1,6 +1,7 @@
- /* Generated */
-
- PyObject * libvirt_virStoragePoolGetXMLDesc(PyObject *self, PyObject *args);
-+PyObject * libvirt_virDomainSnapshotDelete(PyObject *self, PyObject *args);
- PyObject * libvirt_virStorageVolGetKey(PyObject *self, PyObject *args);
- PyObject * libvirt_virDomainUndefine(PyObject *self, PyObject *args);
- PyObject * libvirt_virDomainDefineXML(PyObject *self, PyObject *args);
-Index: libvirt-0.7.1/python/libvirt.py
+--- libvirt-0.7.2.orig/python/generator.py
++++ libvirt-0.7.2/python/generator.py
+@@ -286,6 +286,7 @@ skip_impl = (
+ 'virDomainSetSchedulerParameters',
+ 'virDomainGetVcpus',
+ 'virDomainPinVcpu',
++ 'virDomainListSnapshots',
+ 'virSecretGetValue',
+ 'virSecretSetValue',
+ 'virSecretGetUUID',
+Index: libvirt-0.7.2/python/libvirt-override.c
===================================================================
---- libvirt-0.7.1.orig/python/libvirt.py
-+++ libvirt-0.7.1/python/libvirt.py
-@@ -390,6 +390,12 @@ class virDomain:
- 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 *
+--- libvirt-0.7.2.orig/python/libvirt-override.c
++++ libvirt-0.7.2/python/libvirt-override.c
+@@ -1375,6 +1375,34 @@ libvirt_virStoragePoolGetInfo(PyObject *
return(py_retval);
}
@@ -1064,22 +1011,21 @@ Index: libvirt-0.7.1/python/libvir.c
+
+ return(py_retval);
+}
-+
static PyObject *
libvirt_virStorageVolGetInfo(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
-@@ -2420,6 +2449,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},
+@@ -2425,6 +2453,7 @@ static PyMethodDef libvirtMethods[] = {
{(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.1/python/libvirt-python-api.xml
+--- libvirt-0.7.2.orig/python/libvirt-override-api.xml
++++ libvirt-0.7.2/python/libvirt-override-api.xml
@@ -135,6 +135,11 @@
@@ -1092,31 +1038,19 @@ Index: libvirt-0.7.1/python/libvirt-python-api.xml
list the storage pools, stores the pointers to the names in @names
-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.1/python/generator.py
-@@ -326,6 +326,7 @@ skip_impl = (
- 'virDomainSetSchedulerParameters',
- 'virDomainGetVcpus',
- 'virDomainPinVcpu',
-+ 'virDomainListSnapshots',
- 'virSecretGetValue',
- 'virSecretSetValue',
- 'virSecretGetUUID',
-Index: libvirt-0.7.1/src/libvirt_public.syms
-===================================================================
---- 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.7.2.orig/src/xen/xen_inotify.c
++++ libvirt-0.7.2/src/xen/xen_inotify.c
+@@ -88,6 +88,11 @@ struct xenUnifiedDriver xenInotifyDriver
+ NULL, /* domainGetSchedulerType */
+ NULL, /* domainGetSchedulerParameters */
+ NULL, /* domainSetSchedulerParameters */
++ NULL, /* domainSnapshotCreate */
++ NULL, /* domainSnapshotApply */
++ NULL, /* domainSnapshotDelete */
++ NULL, /* domainNumOfSnapshots */
++ NULL, /* domainListSnapshots */
+ };
- LIBVIRT_0.5.0 {
+ static int
diff --git a/socat.patch b/socat.patch
index 95e5213..de709b7 100644
--- a/socat.patch
+++ b/socat.patch
@@ -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.1/src/remote_internal.c
-@@ -728,12 +728,29 @@ doRemoteOpen (virConnectPtr conn,
+--- libvirt-0.7.2.orig/src/remote/remote_driver.c
++++ libvirt-0.7.2/src/remote/remote_driver.c
+@@ -760,12 +760,29 @@ doRemoteOpen (virConnectPtr conn,
cmd_argv[j++] = strdup ("none");
}
cmd_argv[j++] = strdup (priv->hostname);
diff --git a/suse-network.patch b/suse-network.patch
index 4bea8eb..9e9767f 100644
--- a/suse-network.patch
+++ b/suse-network.patch
@@ -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.1/src/network_conf.c
-@@ -770,6 +770,137 @@ error:
+--- libvirt-0.7.2.orig/src/conf/network_conf.c
++++ libvirt-0.7.2/src/conf/network_conf.c
+@@ -824,6 +824,137 @@ error:
return NULL;
}
@@ -140,7 +140,7 @@ Index: libvirt-0.7.1/src/network_conf.c
int virNetworkLoadAllConfigs(virConnectPtr conn,
virNetworkObjListPtr nets,
const char *configDir,
-@@ -809,6 +940,7 @@ int virNetworkLoadAllConfigs(virConnectP
+@@ -863,6 +994,7 @@ int virNetworkLoadAllConfigs(virConnectP
closedir(dir);
@@ -148,11 +148,11 @@ Index: libvirt-0.7.1/src/network_conf.c
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.1/src/network_conf.h
-@@ -89,6 +89,7 @@ struct _virNetworkObj {
+--- libvirt-0.7.2.orig/src/conf/network_conf.h
++++ libvirt-0.7.2/src/conf/network_conf.h
+@@ -92,6 +92,7 @@ struct _virNetworkObj {
unsigned int active : 1;
unsigned int autostart : 1;
unsigned int persistent : 1;
@@ -160,11 +160,11 @@ Index: libvirt-0.7.1/src/network_conf.h
virNetworkDefPtr def; /* The current definition */
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.1/src/network_driver.c
-@@ -963,6 +963,11 @@ static int networkShutdownNetworkDaemon(
+--- libvirt-0.7.2.orig/src/network/bridge_driver.c
++++ libvirt-0.7.2/src/network/bridge_driver.c
+@@ -977,6 +977,11 @@ static int networkShutdownNetworkDaemon(
unlink(stateFile);
VIR_FREE(stateFile);
@@ -176,7 +176,7 @@ Index: libvirt-0.7.1/src/network_driver.c
if (network->dnsmasqPid > 0)
kill(network->dnsmasqPid, SIGTERM);
-@@ -1419,6 +1424,12 @@ static int networkSetAutostart(virNetwor
+@@ -1433,6 +1438,12 @@ static int networkSetAutostart(virNetwor
goto cleanup;
}
diff --git a/virsh-warning.patch b/virsh-warning.patch
new file mode 100644
index 0000000..69da082
--- /dev/null
+++ b/virsh-warning.patch
@@ -0,0 +1,19 @@
+commit edea3dfdd861d5eee4712da43781908f0fa2a6d5
+Author: Jim Fehlig
+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;
+ }
+
diff --git a/vshdeinit-recurse.patch b/vshdeinit-recurse.patch
deleted file mode 100644
index b8e7244..0000000
--- a/vshdeinit-recurse.patch
+++ /dev/null
@@ -1,1882 +0,0 @@
-Index: libvirt-0.7.1/src/virsh.c
-===================================================================
---- libvirt-0.7.1.orig/src/virsh.c
-+++ libvirt-0.7.1/src/virsh.c
-@@ -202,8 +202,8 @@ typedef struct __vshControl {
-
- static const vshCmdDef commands[];
-
--static void vshError(vshControl *ctl, int doexit, const char *format, ...)
-- ATTRIBUTE_FMT_PRINTF(3, 4);
-+static void vshError(vshControl *ctl, const char *format, ...)
-+ ATTRIBUTE_FMT_PRINTF(2, 3);
- static int vshInit(vshControl *ctl);
- static int vshDeinit(vshControl *ctl);
- static void vshUsage(void);
-@@ -351,11 +351,11 @@ virshReportError(vshControl *ctl)
- return;
-
- if (last_error->code == VIR_ERR_OK) {
-- vshError(ctl, FALSE, "%s", _("unknown error"));
-+ vshError(ctl, "%s", _("unknown error"));
- goto out;
- }
-
-- vshError(ctl, FALSE, "%s", last_error->message);
-+ vshError(ctl, "%s", last_error->message);
-
- out:
- virFreeError(last_error);
-@@ -433,11 +433,9 @@ cmdAutostart(vshControl *ctl, const vshC
-
- if (virDomainSetAutostart(dom, autostart) < 0) {
- if (autostart)
-- vshError(ctl, FALSE, _("Failed to mark domain %s as autostarted"),
-- name);
-+ vshError(ctl, _("Failed to mark domain %s as autostarted"), name);
- else
-- vshError(ctl, FALSE, _("Failed to unmark domain %s as autostarted"),
-- name);
-+ vshError(ctl, _("Failed to unmark domain %s as autostarted"), name);
- virDomainFree(dom);
- return FALSE;
- }
-@@ -474,8 +472,7 @@ cmdConnect(vshControl *ctl, const vshCmd
-
- if (ctl->conn) {
- if (virConnectClose(ctl->conn) != 0) {
-- vshError(ctl, FALSE, "%s",
-- _("Failed to disconnect from the hypervisor"));
-+ vshError(ctl, "%s", _("Failed to disconnect from the hypervisor"));
- return FALSE;
- }
- ctl->conn = NULL;
-@@ -494,7 +491,7 @@ cmdConnect(vshControl *ctl, const vshCmd
- ctl->readonly ? VIR_CONNECT_RO : 0);
-
- if (!ctl->conn)
-- vshError(ctl, FALSE, "%s", _("Failed to connect to the hypervisor"));
-+ vshError(ctl, "%s", _("Failed to connect to the hypervisor"));
-
- return ctl->conn ? TRUE : FALSE;
- }
-@@ -528,17 +525,17 @@ cmdRunConsole(vshControl *ctl, virDomain
- char *thisHost = NULL;
-
- if (!(thisHost = virGetHostname())) {
-- vshError(ctl, FALSE, "%s", _("Failed to get local hostname"));
-+ vshError(ctl, "%s", _("Failed to get local hostname"));
- goto cleanup;
- }
-
- if (!(thatHost = virConnectGetHostname(ctl->conn))) {
-- vshError(ctl, FALSE, "%s", _("Failed to get connection hostname"));
-+ vshError(ctl, "%s", _("Failed to get connection hostname"));
- goto cleanup;
- }
-
- if (STRNEQ(thisHost, thatHost)) {
-- vshError(ctl, FALSE, "%s", _("Cannot connect to a remote console device"));
-+ vshError(ctl, "%s", _("Cannot connect to a remote console device"));
- goto cleanup;
- }
-
-@@ -632,14 +629,14 @@ cmdList(vshControl *ctl, const vshCmd *c
- if (active) {
- maxid = virConnectNumOfDomains(ctl->conn);
- if (maxid < 0) {
-- vshError(ctl, FALSE, "%s", _("Failed to list active domains"));
-+ vshError(ctl, "%s", _("Failed to list active domains"));
- return FALSE;
- }
- if (maxid) {
- ids = vshMalloc(ctl, sizeof(int) * maxid);
-
- if ((maxid = virConnectListDomains(ctl->conn, &ids[0], maxid)) < 0) {
-- vshError(ctl, FALSE, "%s", _("Failed to list active domains"));
-+ vshError(ctl, "%s", _("Failed to list active domains"));
- free(ids);
- return FALSE;
- }
-@@ -650,7 +647,7 @@ cmdList(vshControl *ctl, const vshCmd *c
- if (inactive) {
- maxname = virConnectNumOfDefinedDomains(ctl->conn);
- if (maxname < 0) {
-- vshError(ctl, FALSE, "%s", _("Failed to list inactive domains"));
-+ vshError(ctl, "%s", _("Failed to list inactive domains"));
- free(ids);
- return FALSE;
- }
-@@ -658,7 +655,7 @@ cmdList(vshControl *ctl, const vshCmd *c
- names = vshMalloc(ctl, sizeof(char *) * maxname);
-
- if ((maxname = virConnectListDefinedDomains(ctl->conn, names, maxname)) < 0) {
-- vshError(ctl, FALSE, "%s", _("Failed to list inactive domains"));
-+ vshError(ctl, "%s", _("Failed to list inactive domains"));
- free(ids);
- free(names);
- return FALSE;
-@@ -786,8 +783,7 @@ cmdDomblkstat (vshControl *ctl, const vs
- }
-
- if (virDomainBlockStats (dom, device, &stats, sizeof stats) == -1) {
-- vshError (ctl, FALSE, _("Failed to get block stats %s %s"),
-- name, device);
-+ vshError(ctl, _("Failed to get block stats %s %s"), name, device);
- virDomainFree(dom);
- return FALSE;
- }
-@@ -844,8 +840,7 @@ cmdDomIfstat (vshControl *ctl, const vsh
- }
-
- if (virDomainInterfaceStats (dom, device, &stats, sizeof stats) == -1) {
-- vshError (ctl, FALSE, _("Failed to get interface stats %s %s"),
-- name, device);
-+ vshError(ctl, _("Failed to get interface stats %s %s"), name, device);
- virDomainFree(dom);
- return FALSE;
- }
-@@ -908,7 +903,7 @@ cmdSuspend(vshControl *ctl, const vshCmd
- if (virDomainSuspend(dom) == 0) {
- vshPrint(ctl, _("Domain %s suspended\n"), name);
- } else {
-- vshError(ctl, FALSE, _("Failed to suspend domain %s"), name);
-+ vshError(ctl, _("Failed to suspend domain %s"), name);
- ret = FALSE;
- }
-
-@@ -967,7 +962,7 @@ cmdCreate(vshControl *ctl, const vshCmd
- #endif
- virDomainFree(dom);
- } else {
-- vshError(ctl, FALSE, _("Failed to create domain from %s"), from);
-+ vshError(ctl, _("Failed to create domain from %s"), from);
- ret = FALSE;
- }
- return ret;
-@@ -1014,7 +1009,7 @@ cmdDefine(vshControl *ctl, const vshCmd
- virDomainGetName(dom), from);
- virDomainFree(dom);
- } else {
-- vshError(ctl, FALSE, _("Failed to define domain from %s"), from);
-+ vshError(ctl, _("Failed to define domain from %s"), from);
- ret = FALSE;
- }
- return ret;
-@@ -1052,9 +1047,11 @@ cmdUndefine(vshControl *ctl, const vshCm
-
- if (name && virStrToLong_i(name, NULL, 10, &id) == 0
- && id >= 0 && (dom = virDomainLookupByID(ctl->conn, id))) {
-- vshError(ctl, FALSE, _("a running domain like %s cannot be undefined;\n"
-- "to undefine, first shutdown then undefine"
-- " using its name or UUID"), name);
-+ vshError(ctl,
-+ _("a running domain like %s cannot be undefined;\n"
-+ "to undefine, first shutdown then undefine"
-+ " using its name or UUID"),
-+ name);
- virDomainFree(dom);
- return FALSE;
- }
-@@ -1065,7 +1062,7 @@ cmdUndefine(vshControl *ctl, const vshCm
- if (virDomainUndefine(dom) == 0) {
- vshPrint(ctl, _("Domain %s has been undefined\n"), name);
- } else {
-- vshError(ctl, FALSE, _("Failed to undefine domain %s"), name);
-+ vshError(ctl, _("Failed to undefine domain %s"), name);
- ret = FALSE;
- }
-
-@@ -1107,7 +1104,7 @@ cmdStart(vshControl *ctl, const vshCmd *
- return FALSE;
-
- if (virDomainGetID(dom) != (unsigned int)-1) {
-- vshError(ctl, FALSE, "%s", _("Domain is already active"));
-+ vshError(ctl, "%s", _("Domain is already active"));
- virDomainFree(dom);
- return FALSE;
- }
-@@ -1120,8 +1117,7 @@ cmdStart(vshControl *ctl, const vshCmd *
- cmdRunConsole(ctl, dom);
- #endif
- } else {
-- vshError(ctl, FALSE, _("Failed to start domain %s"),
-- virDomainGetName(dom));
-+ vshError(ctl, _("Failed to start domain %s"), virDomainGetName(dom));
- ret = FALSE;
- }
- virDomainFree(dom);
-@@ -1163,7 +1159,7 @@ cmdSave(vshControl *ctl, const vshCmd *c
- if (virDomainSave(dom, to) == 0) {
- vshPrint(ctl, _("Domain %s saved to %s\n"), name, to);
- } else {
-- vshError(ctl, FALSE, _("Failed to save domain %s to %s"), name, to);
-+ vshError(ctl, _("Failed to save domain %s to %s"), name, to);
- ret = FALSE;
- }
-
-@@ -1202,7 +1198,7 @@ cmdSchedInfoUpdate(vshControl *ctl, cons
- int val;
- val = vshCommandOptInt(cmd, "weight", &found);
- if (!found) {
-- vshError(ctl, FALSE, "%s", _("Invalid value of weight"));
-+ vshError(ctl, "%s", _("Invalid value of weight"));
- return -1;
- } else {
- param->value.ui = val;
-@@ -1217,7 +1213,7 @@ cmdSchedInfoUpdate(vshControl *ctl, cons
- int val;
- val = vshCommandOptInt(cmd, "cap", &found);
- if (!found) {
-- vshError(ctl, FALSE, "%s", _("Invalid value of cap"));
-+ vshError(ctl, "%s", _("Invalid value of cap"));
- return -1;
- } else {
- param->value.ui = val;
-@@ -1229,7 +1225,7 @@ cmdSchedInfoUpdate(vshControl *ctl, cons
- char *val = strchr(data, '=');
- int match = 0;
- if (!val) {
-- vshError(ctl, FALSE, "%s", _("Invalid syntax for --set, expecting name=value"));
-+ vshError(ctl, "%s", _("Invalid syntax for --set, expecting name=value"));
- return -1;
- }
- *val = '\0';
-@@ -1243,35 +1239,35 @@ cmdSchedInfoUpdate(vshControl *ctl, cons
- switch (param->type) {
- case VIR_DOMAIN_SCHED_FIELD_INT:
- if (virStrToLong_i(val, NULL, 10, ¶m->value.i) < 0) {
-- vshError(ctl, FALSE, "%s",
-+ vshError(ctl, "%s",
- _("Invalid value for parameter, expecting an int"));
- return -1;
- }
- break;
- case VIR_DOMAIN_SCHED_FIELD_UINT:
- if (virStrToLong_ui(val, NULL, 10, ¶m->value.ui) < 0) {
-- vshError(ctl, FALSE, "%s",
-+ vshError(ctl, "%s",
- _("Invalid value for parameter, expecting an unsigned int"));
- return -1;
- }
- break;
- case VIR_DOMAIN_SCHED_FIELD_LLONG:
- if (virStrToLong_ll(val, NULL, 10, ¶m->value.l) < 0) {
-- vshError(ctl, FALSE, "%s",
-+ vshError(ctl, "%s",
- _("Invalid value for parameter, expecting an long long"));
- return -1;
- }
- break;
- case VIR_DOMAIN_SCHED_FIELD_ULLONG:
- if (virStrToLong_ull(val, NULL, 10, ¶m->value.ul) < 0) {
-- vshError(ctl, FALSE, "%s",
-+ vshError(ctl, "%s",
- _("Invalid value for parameter, expecting an unsigned long long"));
- return -1;
- }
- break;
- case VIR_DOMAIN_SCHED_FIELD_DOUBLE:
- if (virStrToDouble(val, NULL, ¶m->value.d) < 0) {
-- vshError(ctl, FALSE, "%s", _("Invalid value for parameter, expecting a double"));
-+ vshError(ctl, "%s", _("Invalid value for parameter, expecting a double"));
- return -1;
- }
- break;
-@@ -1408,7 +1404,7 @@ cmdRestore(vshControl *ctl, const vshCmd
- if (virDomainRestore(ctl->conn, from) == 0) {
- vshPrint(ctl, _("Domain restored from %s\n"), from);
- } else {
-- vshError(ctl, FALSE, _("Failed to restore domain from %s"), from);
-+ vshError(ctl, _("Failed to restore domain from %s"), from);
- ret = FALSE;
- }
- return ret;
-@@ -1449,8 +1445,7 @@ cmdDump(vshControl *ctl, const vshCmd *c
- if (virDomainCoreDump(dom, to, 0) == 0) {
- vshPrint(ctl, _("Domain %s dumped to %s\n"), name, to);
- } else {
-- vshError(ctl, FALSE, _("Failed to core dump domain %s to %s"),
-- name, to);
-+ vshError(ctl, _("Failed to core dump domain %s to %s"), name, to);
- ret = FALSE;
- }
-
-@@ -1488,7 +1483,7 @@ cmdResume(vshControl *ctl, const vshCmd
- if (virDomainResume(dom) == 0) {
- vshPrint(ctl, _("Domain %s resumed\n"), name);
- } else {
-- vshError(ctl, FALSE, _("Failed to resume domain %s"), name);
-+ vshError(ctl, _("Failed to resume domain %s"), name);
- ret = FALSE;
- }
-
-@@ -1526,7 +1521,7 @@ cmdShutdown(vshControl *ctl, const vshCm
- if (virDomainShutdown(dom) == 0) {
- vshPrint(ctl, _("Domain %s is being shutdown\n"), name);
- } else {
-- vshError(ctl, FALSE, _("Failed to shutdown domain %s"), name);
-+ vshError(ctl, _("Failed to shutdown domain %s"), name);
- ret = FALSE;
- }
-
-@@ -1564,7 +1559,7 @@ cmdReboot(vshControl *ctl, const vshCmd
- if (virDomainReboot(dom, 0) == 0) {
- vshPrint(ctl, _("Domain %s is being rebooted\n"), name);
- } else {
-- vshError(ctl, FALSE, _("Failed to reboot domain %s"), name);
-+ vshError(ctl, _("Failed to reboot domain %s"), name);
- ret = FALSE;
- }
-
-@@ -1602,7 +1597,7 @@ cmdDestroy(vshControl *ctl, const vshCmd
- if (virDomainDestroy(dom) == 0) {
- vshPrint(ctl, _("Domain %s destroyed\n"), name);
- } else {
-- vshError(ctl, FALSE, _("Failed to destroy domain %s"), name);
-+ vshError(ctl, _("Failed to destroy domain %s"), name);
- ret = FALSE;
- }
-
-@@ -1835,8 +1830,8 @@ cmdVcpuinfo(vshControl *ctl, const vshCm
- }
- } else {
- if (info.state == VIR_DOMAIN_SHUTOFF) {
-- vshError(ctl, FALSE, "%s",
-- _("Domain shut off, virtual CPUs not present."));
-+ vshError(ctl, "%s",
-+ _("Domain shut off, virtual CPUs not present."));
- }
- ret = FALSE;
- }
-@@ -1886,14 +1881,13 @@ cmdVcpupin(vshControl *ctl, const vshCmd
-
- vcpu = vshCommandOptInt(cmd, "vcpu", &vcpufound);
- if (!vcpufound) {
-- vshError(ctl, FALSE, "%s",
-- _("vcpupin: Invalid or missing vCPU number."));
-+ vshError(ctl, "%s", _("vcpupin: Invalid or missing vCPU number."));
- virDomainFree(dom);
- return FALSE;
- }
-
- if (!(cpulist = vshCommandOptString(cmd, "cpulist", NULL))) {
-- vshError(ctl, FALSE, "%s", _("vcpupin: Missing cpulist"));
-+ vshError(ctl, "%s", _("vcpupin: Missing cpulist"));
- virDomainFree(dom);
- return FALSE;
- }
-@@ -1904,14 +1898,13 @@ cmdVcpupin(vshControl *ctl, const vshCmd
- }
-
- if (virDomainGetInfo(dom, &info) != 0) {
-- vshError(ctl, FALSE, "%s",
-- _("vcpupin: failed to get domain informations."));
-+ vshError(ctl, "%s", _("vcpupin: failed to get domain informations."));
- virDomainFree(dom);
- return FALSE;
- }
-
- if (vcpu >= info.nrVirtCpu) {
-- vshError(ctl, FALSE, "%s", _("vcpupin: Invalid vCPU number."));
-+ vshError(ctl, "%s", _("vcpupin: Invalid vCPU number."));
- virDomainFree(dom);
- return FALSE;
- }
-@@ -1920,7 +1913,7 @@ cmdVcpupin(vshControl *ctl, const vshCmd
- * numbers and give an intelligent error message if not.
- */
- if (cpulist[0] == '\0') {
-- vshError(ctl, FALSE, "%s", _("cpulist: Invalid format. Empty string."));
-+ vshError(ctl, "%s", _("cpulist: Invalid format. Empty string."));
- virDomainFree (dom);
- return FALSE;
- }
-@@ -1930,7 +1923,9 @@ cmdVcpupin(vshControl *ctl, const vshCmd
- switch (state) {
- case expect_num:
- if (!c_isdigit (cpulist[i])) {
-- vshError( ctl, FALSE, _("cpulist: %s: Invalid format. Expecting digit at position %d (near '%c')."), cpulist, i, cpulist[i]);
-+ vshError(ctl, _("cpulist: %s: Invalid format. Expecting "
-+ "digit at position %d (near '%c')."),
-+ cpulist, i, cpulist[i]);
- virDomainFree (dom);
- return FALSE;
- }
-@@ -1940,14 +1935,18 @@ cmdVcpupin(vshControl *ctl, const vshCmd
- if (cpulist[i] == ',')
- state = expect_num;
- else if (!c_isdigit (cpulist[i])) {
-- vshError(ctl, FALSE, _("cpulist: %s: Invalid format. Expecting digit or comma at position %d (near '%c')."), cpulist, i, cpulist[i]);
-+ vshError(ctl, _("cpulist: %s: Invalid format. Expecting "
-+ "digit or comma at position %d (near '%c')."),
-+ cpulist, i, cpulist[i]);
- virDomainFree (dom);
- return FALSE;
- }
- }
- }
- if (state == expect_num) {
-- vshError(ctl, FALSE, _("cpulist: %s: Invalid format. Trailing comma at position %d."), cpulist, i);
-+ vshError(ctl, _("cpulist: %s: Invalid format. Trailing comma "
-+ "at position %d."),
-+ cpulist, i);
- virDomainFree (dom);
- return FALSE;
- }
-@@ -1961,7 +1960,7 @@ cmdVcpupin(vshControl *ctl, const vshCmd
- if (cpu < VIR_NODEINFO_MAXCPUS(nodeinfo)) {
- VIR_USE_CPU(cpumap, cpu);
- } else {
-- vshError(ctl, FALSE, _("Physical CPU %d doesn't exist."), cpu);
-+ vshError(ctl, _("Physical CPU %d doesn't exist."), cpu);
- free(cpumap);
- virDomainFree(dom);
- return FALSE;
-@@ -2011,7 +2010,7 @@ cmdSetvcpus(vshControl *ctl, const vshCm
-
- count = vshCommandOptInt(cmd, "count", &count);
- if (count <= 0) {
-- vshError(ctl, FALSE, "%s", _("Invalid number of virtual CPUs."));
-+ vshError(ctl, "%s", _("Invalid number of virtual CPUs."));
- virDomainFree(dom);
- return FALSE;
- }
-@@ -2023,7 +2022,7 @@ cmdSetvcpus(vshControl *ctl, const vshCm
- }
-
- if (count > maxcpu) {
-- vshError(ctl, FALSE, "%s", _("Too many virtual CPUs."));
-+ vshError(ctl, "%s", _("Too many virtual CPUs."));
- virDomainFree(dom);
- return FALSE;
- }
-@@ -2068,19 +2067,19 @@ cmdSetmem(vshControl *ctl, const vshCmd
- kilobytes = vshCommandOptInt(cmd, "kilobytes", &kilobytes);
- if (kilobytes <= 0) {
- virDomainFree(dom);
-- vshError(ctl, FALSE, _("Invalid value of %d for memory size"), kilobytes);
-+ vshError(ctl, _("Invalid value of %d for memory size"), kilobytes);
- return FALSE;
- }
-
- if (virDomainGetInfo(dom, &info) != 0) {
- virDomainFree(dom);
-- vshError(ctl, FALSE, "%s", _("Unable to verify MaxMemorySize"));
-+ vshError(ctl, "%s", _("Unable to verify MaxMemorySize"));
- return FALSE;
- }
-
- if (kilobytes > info.maxMem) {
- virDomainFree(dom);
-- vshError(ctl, FALSE, _("Invalid value of %d for memory size"), kilobytes);
-+ vshError(ctl, _("Invalid value of %d for memory size"), kilobytes);
- return FALSE;
- }
-
-@@ -2124,26 +2123,26 @@ cmdSetmaxmem(vshControl *ctl, const vshC
- kilobytes = vshCommandOptInt(cmd, "kilobytes", &kilobytes);
- if (kilobytes <= 0) {
- virDomainFree(dom);
-- vshError(ctl, FALSE, _("Invalid value of %d for memory size"), kilobytes);
-+ vshError(ctl, _("Invalid value of %d for memory size"), kilobytes);
- return FALSE;
- }
-
- if (virDomainGetInfo(dom, &info) != 0) {
- virDomainFree(dom);
-- vshError(ctl, FALSE, "%s", _("Unable to verify current MemorySize"));
-+ vshError(ctl, "%s", _("Unable to verify current MemorySize"));
- return FALSE;
- }
-
- if (kilobytes < info.memory) {
- if (virDomainSetMemory(dom, kilobytes) != 0) {
- virDomainFree(dom);
-- vshError(ctl, FALSE, "%s", _("Unable to shrink current MemorySize"));
-+ vshError(ctl, "%s", _("Unable to shrink current MemorySize"));
- return FALSE;
- }
- }
-
- if (virDomainSetMaxMemory(dom, kilobytes) != 0) {
-- vshError(ctl, FALSE, "%s", _("Unable to change MaxMemorySize"));
-+ vshError(ctl, "%s", _("Unable to change MaxMemorySize"));
- ret = FALSE;
- }
-
-@@ -2169,7 +2168,7 @@ cmdNodeinfo(vshControl *ctl, const vshCm
- return FALSE;
-
- if (virNodeGetInfo(ctl->conn, &info) < 0) {
-- vshError(ctl, FALSE, "%s", _("failed to get node information"));
-+ vshError(ctl, "%s", _("failed to get node information"));
- return FALSE;
- }
- vshPrint(ctl, "%-20s %s\n", _("CPU model:"), info.model);
-@@ -2202,7 +2201,7 @@ cmdCapabilities (vshControl *ctl, const
- return FALSE;
-
- if ((caps = virConnectGetCapabilities (ctl->conn)) == NULL) {
-- vshError(ctl, FALSE, "%s", _("failed to get capabilities"));
-+ vshError(ctl, "%s", _("failed to get capabilities"));
- return FALSE;
- }
- vshPrint (ctl, "%s\n", caps);
-@@ -2446,7 +2445,7 @@ cmdDomuuid(vshControl *ctl, const vshCmd
- if (virDomainGetUUIDString(dom, uuid) != -1)
- vshPrint(ctl, "%s\n", uuid);
- else
-- vshError(ctl, FALSE, "%s", _("failed to get domain UUID"));
-+ vshError(ctl, "%s", _("failed to get domain UUID"));
-
- virDomainFree(dom);
- return TRUE;
-@@ -2489,7 +2488,7 @@ cmdMigrate (vshControl *ctl, const vshCm
-
- desturi = vshCommandOptString (cmd, "desturi", &found);
- if (!found) {
-- vshError (ctl, FALSE, "%s", _("migrate: Missing desturi"));
-+ vshError(ctl, "%s", _("migrate: Missing desturi"));
- goto done;
- }
-
-@@ -2550,11 +2549,9 @@ cmdNetworkAutostart(vshControl *ctl, con
-
- if (virNetworkSetAutostart(network, autostart) < 0) {
- if (autostart)
-- vshError(ctl, FALSE, _("failed to mark network %s as autostarted"),
-- name);
-+ vshError(ctl, _("failed to mark network %s as autostarted"), name);
- else
-- vshError(ctl, FALSE,_("failed to unmark network %s as autostarted"),
-- name);
-+ vshError(ctl, _("failed to unmark network %s as autostarted"), name);
- virNetworkFree(network);
- return FALSE;
- }
-@@ -2609,7 +2606,7 @@ cmdNetworkCreate(vshControl *ctl, const
- virNetworkGetName(network), from);
- virNetworkFree(network);
- } else {
-- vshError(ctl, FALSE, _("Failed to create network from %s"), from);
-+ vshError(ctl, _("Failed to create network from %s"), from);
- ret = FALSE;
- }
- return ret;
-@@ -2657,7 +2654,7 @@ cmdNetworkDefine(vshControl *ctl, const
- virNetworkGetName(network), from);
- virNetworkFree(network);
- } else {
-- vshError(ctl, FALSE, _("Failed to define network from %s"), from);
-+ vshError(ctl, _("Failed to define network from %s"), from);
- ret = FALSE;
- }
- return ret;
-@@ -2694,7 +2691,7 @@ cmdNetworkDestroy(vshControl *ctl, const
- if (virNetworkDestroy(network) == 0) {
- vshPrint(ctl, _("Network %s destroyed\n"), name);
- } else {
-- vshError(ctl, FALSE, _("Failed to destroy network %s"), name);
-+ vshError(ctl, _("Failed to destroy network %s"), name);
- ret = FALSE;
- }
-
-@@ -2811,8 +2808,8 @@ cmdInterfaceEdit (vshControl *ctl, const
- goto cleanup;
-
- if (STRNEQ (doc, doc_reread)) {
-- vshError (ctl, FALSE, "%s",
-- _("ERROR: the XML configuration was changed by another user"));
-+ vshError(ctl, "%s",
-+ _("ERROR: the XML configuration was changed by another user"));
- goto cleanup;
- }
-
-@@ -2874,7 +2871,7 @@ cmdNetworkList(vshControl *ctl, const vs
- if (active) {
- maxactive = virConnectNumOfNetworks(ctl->conn);
- if (maxactive < 0) {
-- vshError(ctl, FALSE, "%s", _("Failed to list active networks"));
-+ vshError(ctl, "%s", _("Failed to list active networks"));
- return FALSE;
- }
- if (maxactive) {
-@@ -2882,7 +2879,7 @@ cmdNetworkList(vshControl *ctl, const vs
-
- if ((maxactive = virConnectListNetworks(ctl->conn, activeNames,
- maxactive)) < 0) {
-- vshError(ctl, FALSE, "%s", _("Failed to list active networks"));
-+ vshError(ctl, "%s", _("Failed to list active networks"));
- free(activeNames);
- return FALSE;
- }
-@@ -2893,7 +2890,7 @@ cmdNetworkList(vshControl *ctl, const vs
- if (inactive) {
- maxinactive = virConnectNumOfDefinedNetworks(ctl->conn);
- if (maxinactive < 0) {
-- vshError(ctl, FALSE, "%s", _("Failed to list inactive networks"));
-+ vshError(ctl, "%s", _("Failed to list inactive networks"));
- free(activeNames);
- return FALSE;
- }
-@@ -2903,8 +2900,7 @@ cmdNetworkList(vshControl *ctl, const vs
- if ((maxinactive =
- virConnectListDefinedNetworks(ctl->conn, inactiveNames,
- maxinactive)) < 0) {
-- vshError(ctl, FALSE, "%s",
-- _("Failed to list inactive networks"));
-+ vshError(ctl, "%s", _("Failed to list inactive networks"));
- free(activeNames);
- free(inactiveNames);
- return FALSE;
-@@ -3032,7 +3028,7 @@ cmdNetworkStart(vshControl *ctl, const v
- vshPrint(ctl, _("Network %s started\n"),
- virNetworkGetName(network));
- } else {
-- vshError(ctl, FALSE, _("Failed to start network %s"),
-+ vshError(ctl, _("Failed to start network %s"),
- virNetworkGetName(network));
- ret = FALSE;
- }
-@@ -3071,7 +3067,7 @@ cmdNetworkUndefine(vshControl *ctl, cons
- if (virNetworkUndefine(network) == 0) {
- vshPrint(ctl, _("Network %s has been undefined\n"), name);
- } else {
-- vshError(ctl, FALSE, _("Failed to undefine network %s"), name);
-+ vshError(ctl, _("Failed to undefine network %s"), name);
- ret = FALSE;
- }
-
-@@ -3110,7 +3106,7 @@ cmdNetworkUuid(vshControl *ctl, const vs
- if (virNetworkGetUUIDString(network, uuid) != -1)
- vshPrint(ctl, "%s\n", uuid);
- else
-- vshError(ctl, FALSE, "%s", _("failed to get network UUID"));
-+ vshError(ctl, "%s", _("failed to get network UUID"));
-
- virNetworkFree(network);
- return TRUE;
-@@ -3148,7 +3144,7 @@ cmdInterfaceList(vshControl *ctl, const
- if (active) {
- maxactive = virConnectNumOfInterfaces(ctl->conn);
- if (maxactive < 0) {
-- vshError(ctl, FALSE, "%s", _("Failed to list active interfaces"));
-+ vshError(ctl, "%s", _("Failed to list active interfaces"));
- return FALSE;
- }
- if (maxactive) {
-@@ -3156,8 +3152,7 @@ cmdInterfaceList(vshControl *ctl, const
-
- if ((maxactive = virConnectListInterfaces(ctl->conn, activeNames,
- maxactive)) < 0) {
-- vshError(ctl, FALSE, "%s",
-- _("Failed to list active interfaces"));
-+ vshError(ctl, "%s", _("Failed to list active interfaces"));
- free(activeNames);
- return FALSE;
- }
-@@ -3168,8 +3163,7 @@ cmdInterfaceList(vshControl *ctl, const
- if (inactive) {
- maxinactive = virConnectNumOfDefinedInterfaces(ctl->conn);
- if (maxinactive < 0) {
-- vshError(ctl, FALSE, "%s",
-- _("Failed to list inactive interfaces"));
-+ vshError(ctl, "%s", _("Failed to list inactive interfaces"));
- free(activeNames);
- return FALSE;
- }
-@@ -3179,8 +3173,7 @@ cmdInterfaceList(vshControl *ctl, const
- if ((maxinactive =
- virConnectListDefinedInterfaces(ctl->conn, inactiveNames,
- maxinactive)) < 0) {
-- vshError(ctl, FALSE, "%s",
-- _("Failed to list inactive interfaces"));
-+ vshError(ctl, "%s", _("Failed to list inactive interfaces"));
- free(activeNames);
- free(inactiveNames);
- return FALSE;
-@@ -3373,7 +3366,7 @@ cmdInterfaceDefine(vshControl *ctl, cons
- virInterfaceGetName(iface), from);
- virInterfaceFree (iface);
- } else {
-- vshError(ctl, FALSE, _("Failed to define interface from %s"), from);
-+ vshError(ctl, _("Failed to define interface from %s"), from);
- ret = FALSE;
- }
- return ret;
-@@ -3409,7 +3402,7 @@ cmdInterfaceUndefine(vshControl *ctl, co
- if (virInterfaceUndefine(iface) == 0) {
- vshPrint(ctl, _("Interface %s undefined\n"), name);
- } else {
-- vshError(ctl, FALSE, _("Failed to undefine interface %s"), name);
-+ vshError(ctl, _("Failed to undefine interface %s"), name);
- ret = FALSE;
- }
-
-@@ -3447,7 +3440,7 @@ cmdInterfaceStart(vshControl *ctl, const
- if (virInterfaceCreate(iface, 0) == 0) {
- vshPrint(ctl, _("Interface %s started\n"), name);
- } else {
-- vshError(ctl, FALSE, _("Failed to start interface %s"), name);
-+ vshError(ctl, _("Failed to start interface %s"), name);
- ret = FALSE;
- }
-
-@@ -3485,7 +3478,7 @@ cmdInterfaceDestroy(vshControl *ctl, con
- if (virInterfaceDestroy(iface, 0) == 0) {
- vshPrint(ctl, _("Interface %s destroyed\n"), name);
- } else {
-- vshError(ctl, FALSE, _("Failed to destroy interface %s"), name);
-+ vshError(ctl, _("Failed to destroy interface %s"), name);
- ret = FALSE;
- }
-
-@@ -3527,11 +3520,9 @@ cmdPoolAutostart(vshControl *ctl, const
-
- if (virStoragePoolSetAutostart(pool, autostart) < 0) {
- if (autostart)
-- vshError(ctl, FALSE, _("failed to mark pool %s as autostarted"),
-- name);
-+ vshError(ctl, _("failed to mark pool %s as autostarted"), name);
- else
-- vshError(ctl, FALSE,_("failed to unmark pool %s as autostarted"),
-- name);
-+ vshError(ctl, _("failed to unmark pool %s as autostarted"), name);
- virStoragePoolFree(pool);
- return FALSE;
- }
-@@ -3587,7 +3578,7 @@ cmdPoolCreate(vshControl *ctl, const vsh
- virStoragePoolGetName(pool), from);
- virStoragePoolFree(pool);
- } else {
-- vshError(ctl, FALSE, _("Failed to create pool from %s"), from);
-+ vshError(ctl, _("Failed to create pool from %s"), from);
- ret = FALSE;
- }
- return ret;
-@@ -3641,7 +3632,7 @@ cmdNodeDeviceCreate(vshControl *ctl, con
- virNodeDeviceGetName(dev), from);
- virNodeDeviceFree(dev);
- } else {
-- vshError(ctl, FALSE, _("Failed to create node device from %s"), from);
-+ vshError(ctl, _("Failed to create node device from %s"), from);
- ret = FALSE;
- }
-
-@@ -3687,7 +3678,7 @@ cmdNodeDeviceDestroy(vshControl *ctl, co
- if (virNodeDeviceDestroy(dev) == 0) {
- vshPrint(ctl, _("Destroyed node device '%s'\n"), name);
- } else {
-- vshError(ctl, FALSE, _("Failed to destroy node device '%s'"), name);
-+ vshError(ctl, _("Failed to destroy node device '%s'"), name);
- ret = FALSE;
- }
-
-@@ -3800,7 +3791,7 @@ cmdPoolCreateAs(vshControl *ctl, const v
- vshPrint(ctl, _("Pool %s created\n"), name);
- virStoragePoolFree(pool);
- } else {
-- vshError(ctl, FALSE, _("Failed to create pool %s"), name);
-+ vshError(ctl, _("Failed to create pool %s"), name);
- return FALSE;
- }
- }
-@@ -3849,7 +3840,7 @@ cmdPoolDefine(vshControl *ctl, const vsh
- virStoragePoolGetName(pool), from);
- virStoragePoolFree(pool);
- } else {
-- vshError(ctl, FALSE, _("Failed to define pool from %s"), from);
-+ vshError(ctl, _("Failed to define pool from %s"), from);
- ret = FALSE;
- }
- return ret;
-@@ -3889,7 +3880,7 @@ cmdPoolDefineAs(vshControl *ctl, const v
- vshPrint(ctl, _("Pool %s defined\n"), name);
- virStoragePoolFree(pool);
- } else {
-- vshError(ctl, FALSE, _("Failed to define pool %s"), name);
-+ vshError(ctl, _("Failed to define pool %s"), name);
- return FALSE;
- }
- }
-@@ -3927,7 +3918,7 @@ cmdPoolBuild(vshControl *ctl, const vshC
- if (virStoragePoolBuild(pool, 0) == 0) {
- vshPrint(ctl, _("Pool %s built\n"), name);
- } else {
-- vshError(ctl, FALSE, _("Failed to build pool %s"), name);
-+ vshError(ctl, _("Failed to build pool %s"), name);
- ret = FALSE;
- virStoragePoolFree(pool);
- }
-@@ -3966,7 +3957,7 @@ cmdPoolDestroy(vshControl *ctl, const vs
- if (virStoragePoolDestroy(pool) == 0) {
- vshPrint(ctl, _("Pool %s destroyed\n"), name);
- } else {
-- vshError(ctl, FALSE, _("Failed to destroy pool %s"), name);
-+ vshError(ctl, _("Failed to destroy pool %s"), name);
- ret = FALSE;
- }
-
-@@ -4005,7 +3996,7 @@ cmdPoolDelete(vshControl *ctl, const vsh
- if (virStoragePoolDelete(pool, 0) == 0) {
- vshPrint(ctl, _("Pool %s deleted\n"), name);
- } else {
-- vshError(ctl, FALSE, _("Failed to delete pool %s"), name);
-+ vshError(ctl, _("Failed to delete pool %s"), name);
- ret = FALSE;
- }
-
-@@ -4044,7 +4035,7 @@ cmdPoolRefresh(vshControl *ctl, const vs
- if (virStoragePoolRefresh(pool, 0) == 0) {
- vshPrint(ctl, _("Pool %s refreshed\n"), name);
- } else {
-- vshError(ctl, FALSE, _("Failed to refresh pool %s"), name);
-+ vshError(ctl, _("Failed to refresh pool %s"), name);
- ret = FALSE;
- }
- virStoragePoolFree(pool);
-@@ -4124,7 +4115,7 @@ cmdPoolList(vshControl *ctl, const vshCm
- if (active) {
- maxactive = virConnectNumOfStoragePools(ctl->conn);
- if (maxactive < 0) {
-- vshError(ctl, FALSE, "%s", _("Failed to list active pools"));
-+ vshError(ctl, "%s", _("Failed to list active pools"));
- return FALSE;
- }
- if (maxactive) {
-@@ -4132,7 +4123,7 @@ cmdPoolList(vshControl *ctl, const vshCm
-
- if ((maxactive = virConnectListStoragePools(ctl->conn, activeNames,
- maxactive)) < 0) {
-- vshError(ctl, FALSE, "%s", _("Failed to list active pools"));
-+ vshError(ctl, "%s", _("Failed to list active pools"));
- free(activeNames);
- return FALSE;
- }
-@@ -4143,7 +4134,7 @@ cmdPoolList(vshControl *ctl, const vshCm
- if (inactive) {
- maxinactive = virConnectNumOfDefinedStoragePools(ctl->conn);
- if (maxinactive < 0) {
-- vshError(ctl, FALSE, "%s", _("Failed to list inactive pools"));
-+ vshError(ctl, "%s", _("Failed to list inactive pools"));
- free(activeNames);
- return FALSE;
- }
-@@ -4151,7 +4142,7 @@ cmdPoolList(vshControl *ctl, const vshCm
- inactiveNames = vshMalloc(ctl, sizeof(char *) * maxinactive);
-
- if ((maxinactive = virConnectListDefinedStoragePools(ctl->conn, inactiveNames, maxinactive)) < 0) {
-- vshError(ctl, FALSE, "%s", _("Failed to list inactive pools"));
-+ vshError(ctl, "%s", _("Failed to list inactive pools"));
- free(activeNames);
- free(inactiveNames);
- return FALSE;
-@@ -4273,10 +4264,10 @@ cmdPoolDiscoverSourcesAs(vshControl * ct
- if (ret < 0) {
- switch (errno) {
- case ENOMEM:
-- vshError(ctl, FALSE, "%s", _("Out of memory"));
-+ vshError(ctl, "%s", _("Out of memory"));
- break;
- default:
-- vshError(ctl, FALSE, _("virAsprintf failed (errno %d)"), errno);
-+ vshError(ctl, _("virAsprintf failed (errno %d)"), errno);
- }
- return FALSE;
- }
-@@ -4285,7 +4276,7 @@ cmdPoolDiscoverSourcesAs(vshControl * ct
- srcList = virConnectFindStoragePoolSources(ctl->conn, type, srcSpec, 0);
- free(srcSpec);
- if (srcList == NULL) {
-- vshError(ctl, FALSE, _("Failed to find any %s pool sources"), type);
-+ vshError(ctl, _("Failed to find any %s pool sources"), type);
- return FALSE;
- }
- vshPrint(ctl, "%s", srcList);
-@@ -4336,7 +4327,7 @@ cmdPoolDiscoverSources(vshControl * ctl,
- srcList = virConnectFindStoragePoolSources(ctl->conn, type, srcSpec, 0);
- free(srcSpec);
- if (srcList == NULL) {
-- vshError(ctl, FALSE, _("Failed to find any %s pool sources"), type);
-+ vshError(ctl, _("Failed to find any %s pool sources"), type);
- return FALSE;
- }
- vshPrint(ctl, "%s", srcList);
-@@ -4503,8 +4494,7 @@ cmdPoolStart(vshControl *ctl, const vshC
- vshPrint(ctl, _("Pool %s started\n"),
- virStoragePoolGetName(pool));
- } else {
-- vshError(ctl, FALSE, _("Failed to start pool %s"),
-- virStoragePoolGetName(pool));
-+ vshError(ctl, _("Failed to start pool %s"), virStoragePoolGetName(pool));
- ret = FALSE;
- }
-
-@@ -4585,12 +4575,12 @@ cmdVolCreateAs(vshControl *ctl, const vs
- if (!found)
- goto cleanup;
- if (cmdVolSize(capacityStr, &capacity) < 0)
-- vshError(ctl, FALSE, _("Malformed size %s"), capacityStr);
-+ vshError(ctl, _("Malformed size %s"), capacityStr);
-
- allocationStr = vshCommandOptString(cmd, "allocation", &found);
- if (allocationStr &&
- cmdVolSize(allocationStr, &allocation) < 0)
-- vshError(ctl, FALSE, _("Malformed size %s"), allocationStr);
-+ vshError(ctl, _("Malformed size %s"), allocationStr);
-
- format = vshCommandOptString(cmd, "format", &found);
-
-@@ -4623,7 +4613,7 @@ cmdVolCreateAs(vshControl *ctl, const vs
- virStorageVolFree(vol);
- return TRUE;
- } else {
-- vshError(ctl, FALSE, _("Failed to create vol %s"), name);
-+ vshError(ctl, _("Failed to create vol %s"), name);
- return FALSE;
- }
-
-@@ -4664,7 +4654,7 @@ cmdPoolUndefine(vshControl *ctl, const v
- if (virStoragePoolUndefine(pool) == 0) {
- vshPrint(ctl, _("Pool %s has been undefined\n"), name);
- } else {
-- vshError(ctl, FALSE, _("Failed to undefine pool %s"), name);
-+ vshError(ctl, _("Failed to undefine pool %s"), name);
- ret = FALSE;
- }
-
-@@ -4703,7 +4693,7 @@ cmdPoolUuid(vshControl *ctl, const vshCm
- if (virStoragePoolGetUUIDString(pool, uuid) != -1)
- vshPrint(ctl, "%s\n", uuid);
- else
-- vshError(ctl, FALSE, "%s", _("failed to get pool UUID"));
-+ vshError(ctl, "%s", _("failed to get pool UUID"));
-
- virStoragePoolFree(pool);
- return TRUE;
-@@ -4762,7 +4752,7 @@ cmdVolCreate(vshControl *ctl, const vshC
- virStorageVolGetName(vol), from);
- virStorageVolFree(vol);
- } else {
-- vshError(ctl, FALSE, _("Failed to create vol from %s"), from);
-+ vshError(ctl, _("Failed to create vol from %s"), from);
- ret = FALSE;
- }
- return ret;
-@@ -4819,7 +4809,7 @@ cmdVolCreateFrom(vshControl *ctl, const
- vshPrint(ctl, _("Vol %s created from input vol %s\n"),
- virStorageVolGetName(newvol), virStorageVolGetName(inputvol));
- } else {
-- vshError(ctl, FALSE, _("Failed to create vol from %s"), from);
-+ vshError(ctl, _("Failed to create vol from %s"), from);
- goto cleanup;
- }
-
-@@ -4901,7 +4891,7 @@ cmdVolClone(vshControl *ctl, const vshCm
-
- origpool = virStoragePoolLookupByVolume(origvol);
- if (!origpool) {
-- vshError(ctl, FALSE, "%s", _("failed to get parent pool"));
-+ vshError(ctl, "%s", _("failed to get parent pool"));
- goto cleanup;
- }
-
-@@ -4925,7 +4915,7 @@ cmdVolClone(vshControl *ctl, const vshCm
- vshPrint(ctl, _("Vol %s cloned from %s\n"),
- virStorageVolGetName(newvol), virStorageVolGetName(origvol));
- } else {
-- vshError(ctl, FALSE, _("Failed to clone vol from %s"),
-+ vshError(ctl, _("Failed to clone vol from %s"),
- virStorageVolGetName(origvol));
- goto cleanup;
- }
-@@ -4976,7 +4966,7 @@ cmdVolDelete(vshControl *ctl, const vshC
- if (virStorageVolDelete(vol, 0) == 0) {
- vshPrint(ctl, _("Vol %s deleted\n"), name);
- } else {
-- vshError(ctl, FALSE, _("Failed to delete vol %s"), name);
-+ vshError(ctl, _("Failed to delete vol %s"), name);
- ret = FALSE;
- }
-
-@@ -5107,7 +5097,7 @@ cmdVolList(vshControl *ctl, const vshCmd
- maxactive = virStoragePoolNumOfVolumes(pool);
- if (maxactive < 0) {
- virStoragePoolFree(pool);
-- vshError(ctl, FALSE, "%s", _("Failed to list active vols"));
-+ vshError(ctl, "%s", _("Failed to list active vols"));
- return FALSE;
- }
- if (maxactive) {
-@@ -5115,7 +5105,7 @@ cmdVolList(vshControl *ctl, const vshCmd
-
- if ((maxactive = virStoragePoolListVolumes(pool, activeNames,
- maxactive)) < 0) {
-- vshError(ctl, FALSE, "%s", _("Failed to list active vols"));
-+ vshError(ctl, "%s", _("Failed to list active vols"));
- free(activeNames);
- virStoragePoolFree(pool);
- return FALSE;
-@@ -5288,12 +5278,11 @@ cmdSecretDefine(vshControl *ctl, const v
- free (buffer);
-
- if (res == NULL) {
-- vshError(ctl, FALSE, _("Failed to set attributes from %s"), from);
-+ vshError(ctl, _("Failed to set attributes from %s"), from);
- return FALSE;
- }
- if (virSecretGetUUIDString(res, &(uuid[0])) < 0) {
-- vshError(ctl, FALSE, "%s",
-- _("Failed to get UUID of created secret"));
-+ vshError(ctl, "%s", _("Failed to get UUID of created secret"));
- virSecretFree(res);
- return FALSE;
- }
-@@ -5377,11 +5366,11 @@ cmdSecretSetValue(vshControl *ctl, const
- goto cleanup;
-
- if (!base64_decode_alloc(base64, strlen(base64), &value, &value_size)) {
-- vshError(ctl, FALSE, _("Invalid base64 data"));
-+ vshError(ctl, _("Invalid base64 data"));
- goto cleanup;
- }
- if (value == NULL) {
-- vshError(ctl, FALSE, "%s", _("Failed to allocate memory"));
-+ vshError(ctl, "%s", _("Failed to allocate memory"));
- return FALSE;
- }
-
-@@ -5390,7 +5379,7 @@ cmdSecretSetValue(vshControl *ctl, const
- free (value);
-
- if (res != 0) {
-- vshError(ctl, FALSE, "%s", _("Failed to set secret value"));
-+ vshError(ctl, "%s", _("Failed to set secret value"));
- goto cleanup;
- }
- vshPrint(ctl, "%s", _("Secret value set\n"));
-@@ -5440,7 +5429,7 @@ cmdSecretGetValue(vshControl *ctl, const
- free(value);
-
- if (base64 == NULL) {
-- vshError(ctl, FALSE, "%s", _("Failed to allocate memory"));
-+ vshError(ctl, "%s", _("Failed to allocate memory"));
- goto cleanup;
- }
- printf("%s", base64);
-@@ -5482,7 +5471,7 @@ cmdSecretUndefine(vshControl *ctl, const
- return FALSE;
-
- if (virSecretUndefine(secret) < 0) {
-- vshError(ctl, FALSE, _("Failed to delete secret %s"), uuid);
-+ vshError(ctl, _("Failed to delete secret %s"), uuid);
- goto cleanup;
- }
- vshPrint(ctl, _("Secret %s deleted\n"), uuid);
-@@ -5513,14 +5502,14 @@ cmdSecretList(vshControl *ctl, const vsh
-
- maxuuids = virConnectNumOfSecrets(ctl->conn);
- if (maxuuids < 0) {
-- vshError(ctl, FALSE, "%s", _("Failed to list secrets"));
-+ vshError(ctl, "%s", _("Failed to list secrets"));
- return FALSE;
- }
- uuids = vshMalloc(ctl, sizeof(*uuids) * maxuuids);
-
- maxuuids = virConnectListSecrets(ctl->conn, uuids, maxuuids);
- if (maxuuids < 0) {
-- vshError(ctl, FALSE, "%s", _("Failed to list secrets"));
-+ vshError(ctl, "%s", _("Failed to list secrets"));
- free(uuids);
- return FALSE;
- }
-@@ -5589,7 +5578,7 @@ cmdVersion(vshControl *ctl, const vshCmd
-
- hvType = virConnectGetType(ctl->conn);
- if (hvType == NULL) {
-- vshError(ctl, FALSE, "%s", _("failed to get hypervisor type"));
-+ vshError(ctl, "%s", _("failed to get hypervisor type"));
- return FALSE;
- }
-
-@@ -5603,7 +5592,7 @@ cmdVersion(vshControl *ctl, const vshCmd
-
- ret = virGetVersion(&libVersion, hvType, &apiVersion);
- if (ret < 0) {
-- vshError(ctl, FALSE, "%s", _("failed to get the library version"));
-+ vshError(ctl, "%s", _("failed to get the library version"));
- return FALSE;
- }
- major = libVersion / 1000000;
-@@ -5622,7 +5611,7 @@ cmdVersion(vshControl *ctl, const vshCmd
-
- ret = virConnectGetVersion(ctl->conn, &hvVersion);
- if (ret < 0) {
-- vshError(ctl, FALSE, "%s", _("failed to get the hypervisor version"));
-+ vshError(ctl, "%s", _("failed to get the hypervisor version"));
- return FALSE;
- }
- if (hvVersion == 0) {
-@@ -5752,7 +5741,7 @@ cmdNodeListDevices (vshControl *ctl, con
-
- num_devices = virNodeNumOfDevices(ctl->conn, cap, 0);
- if (num_devices < 0) {
-- vshError(ctl, FALSE, "%s", _("Failed to count node devices"));
-+ vshError(ctl, "%s", _("Failed to count node devices"));
- return FALSE;
- } else if (num_devices == 0) {
- return TRUE;
-@@ -5762,7 +5751,7 @@ cmdNodeListDevices (vshControl *ctl, con
- num_devices =
- virNodeListDevices(ctl->conn, cap, devices, num_devices, 0);
- if (num_devices < 0) {
-- vshError(ctl, FALSE, "%s", _("Failed to list node devices"));
-+ vshError(ctl, "%s", _("Failed to list node devices"));
- free(devices);
- return FALSE;
- }
-@@ -5835,7 +5824,7 @@ cmdNodeDeviceDumpXML (vshControl *ctl, c
- if (!(name = vshCommandOptString(cmd, "device", NULL)))
- return FALSE;
- if (!(device = virNodeDeviceLookupByName(ctl->conn, name))) {
-- vshError(ctl, FALSE, "%s '%s'", _("Could not find matching device"), name);
-+ vshError(ctl, "%s '%s'", _("Could not find matching device"), name);
- return FALSE;
- }
-
-@@ -5878,14 +5867,14 @@ cmdNodeDeviceDettach (vshControl *ctl, c
- if (!(name = vshCommandOptString(cmd, "device", NULL)))
- return FALSE;
- if (!(device = virNodeDeviceLookupByName(ctl->conn, name))) {
-- vshError(ctl, FALSE, "%s '%s'", _("Could not find matching device"), name);
-+ vshError(ctl, "%s '%s'", _("Could not find matching device"), name);
- return FALSE;
- }
-
- if (virNodeDeviceDettach(device) == 0) {
- vshPrint(ctl, _("Device %s dettached\n"), name);
- } else {
-- vshError(ctl, FALSE, _("Failed to dettach device %s"), name);
-+ vshError(ctl, _("Failed to dettach device %s"), name);
- ret = FALSE;
- }
- virNodeDeviceFree(device);
-@@ -5919,14 +5908,14 @@ cmdNodeDeviceReAttach (vshControl *ctl,
- if (!(name = vshCommandOptString(cmd, "device", NULL)))
- return FALSE;
- if (!(device = virNodeDeviceLookupByName(ctl->conn, name))) {
-- vshError(ctl, FALSE, "%s '%s'", _("Could not find matching device"), name);
-+ vshError(ctl, "%s '%s'", _("Could not find matching device"), name);
- return FALSE;
- }
-
- if (virNodeDeviceReAttach(device) == 0) {
- vshPrint(ctl, _("Device %s re-attached\n"), name);
- } else {
-- vshError(ctl, FALSE, _("Failed to re-attach device %s"), name);
-+ vshError(ctl, _("Failed to re-attach device %s"), name);
- ret = FALSE;
- }
- virNodeDeviceFree(device);
-@@ -5960,14 +5949,14 @@ cmdNodeDeviceReset (vshControl *ctl, con
- if (!(name = vshCommandOptString(cmd, "device", NULL)))
- return FALSE;
- if (!(device = virNodeDeviceLookupByName(ctl->conn, name))) {
-- vshError(ctl, FALSE, "%s '%s'", _("Could not find matching device"), name);
-+ vshError(ctl, "%s '%s'", _("Could not find matching device"), name);
- return FALSE;
- }
-
- if (virNodeDeviceReset(device) == 0) {
- vshPrint(ctl, _("Device %s reset\n"), name);
- } else {
-- vshError(ctl, FALSE, _("Failed to reset device %s"), name);
-+ vshError(ctl, _("Failed to reset device %s"), name);
- ret = FALSE;
- }
- virNodeDeviceFree(device);
-@@ -5993,7 +5982,7 @@ cmdHostname (vshControl *ctl, const vshC
-
- hostname = virConnectGetHostname (ctl->conn);
- if (hostname == NULL) {
-- vshError(ctl, FALSE, "%s", _("failed to get hostname"));
-+ vshError(ctl, "%s", _("failed to get hostname"));
- return FALSE;
- }
-
-@@ -6022,7 +6011,7 @@ cmdURI (vshControl *ctl, const vshCmd *c
-
- uri = virConnectGetURI (ctl->conn);
- if (uri == NULL) {
-- vshError(ctl, FALSE, "%s", _("failed to get URI"));
-+ vshError(ctl, "%s", _("failed to get URI"));
- return FALSE;
- }
-
-@@ -6200,7 +6189,7 @@ cmdAttachDevice(vshControl *ctl, const v
-
- from = vshCommandOptString(cmd, "file", &found);
- if (!found) {
-- vshError(ctl, FALSE, "%s", _("attach-device: Missing option"));
-+ vshError(ctl, "%s", _("attach-device: Missing option"));
- virDomainFree(dom);
- return FALSE;
- }
-@@ -6214,7 +6203,7 @@ cmdAttachDevice(vshControl *ctl, const v
- free (buffer);
-
- if (ret < 0) {
-- vshError(ctl, FALSE, _("Failed to attach device from %s"), from);
-+ vshError(ctl, _("Failed to attach device from %s"), from);
- virDomainFree(dom);
- return FALSE;
- } else {
-@@ -6258,7 +6247,7 @@ cmdDetachDevice(vshControl *ctl, const v
-
- from = vshCommandOptString(cmd, "file", &found);
- if (!found) {
-- vshError(ctl, FALSE, "%s", _("detach-device: Missing option"));
-+ vshError(ctl, "%s", _("detach-device: Missing option"));
- virDomainFree(dom);
- return FALSE;
- }
-@@ -6272,7 +6261,7 @@ cmdDetachDevice(vshControl *ctl, const v
- free (buffer);
-
- if (ret < 0) {
-- vshError(ctl, FALSE, _("Failed to detach device from %s"), from);
-+ vshError(ctl, _("Failed to detach device from %s"), from);
- virDomainFree(dom);
- return FALSE;
- } else {
-@@ -6331,7 +6320,7 @@ cmdAttachInterface(vshControl *ctl, cons
- } else if (STREQ(type, "bridge")) {
- typ = 2;
- } else {
-- vshError(ctl, FALSE, _("No support %s in command 'attach-interface'"), type);
-+ vshError(ctl, _("No support %s in command 'attach-interface'"), type);
- goto cleanup;
- }
-
-@@ -6450,12 +6439,12 @@ cmdDetachInterface(vshControl *ctl, cons
- XML_PARSE_NOWARNING);
- free(doc);
- if (!xml) {
-- vshError(ctl, FALSE, "%s", _("Failed to get interface information"));
-+ vshError(ctl, "%s", _("Failed to get interface information"));
- goto cleanup;
- }
- ctxt = xmlXPathNewContext(xml);
- if (!ctxt) {
-- vshError(ctl, FALSE, "%s", _("Failed to get interface information"));
-+ vshError(ctl, "%s", _("Failed to get interface information"));
- goto cleanup;
- }
-
-@@ -6463,7 +6452,7 @@ cmdDetachInterface(vshControl *ctl, cons
- obj = xmlXPathEval(BAD_CAST buf, ctxt);
- if ((obj == NULL) || (obj->type != XPATH_NODESET) ||
- (obj->nodesetval == NULL) || (obj->nodesetval->nodeNr == 0)) {
-- vshError(ctl, FALSE, _("No found interface whose type is %s"), type);
-+ vshError(ctl, _("No found interface whose type is %s"), type);
- goto cleanup;
- }
-
-@@ -6485,18 +6474,18 @@ cmdDetachInterface(vshControl *ctl, cons
- cur = cur->next;
- }
- }
-- vshError(ctl, FALSE, _("No found interface whose MAC address is %s"), mac);
-+ vshError(ctl, _("No found interface whose MAC address is %s"), mac);
- goto cleanup;
-
- hit:
- xml_buf = xmlBufferCreate();
- if (!xml_buf) {
-- vshError(ctl, FALSE, "%s", _("Failed to allocate memory"));
-+ vshError(ctl, "%s", _("Failed to allocate memory"));
- goto cleanup;
- }
-
- if(xmlNodeDump(xml_buf, xml, obj->nodesetval->nodeTab[i], 0, 0) < 0){
-- vshError(ctl, FALSE, "%s", _("Failed to create XML"));
-+ vshError(ctl, "%s", _("Failed to create XML"));
- goto cleanup;
- }
-
-@@ -6569,14 +6558,14 @@ cmdAttachDisk(vshControl *ctl, const vsh
- if (STREQ(driver, "file") || STREQ(driver, "tap")) {
- isFile = 1;
- } else if (STRNEQ(driver, "phy")) {
-- vshError(ctl, FALSE, _("No support %s in command 'attach-disk'"), driver);
-+ vshError(ctl, _("No support %s in command 'attach-disk'"), driver);
- goto cleanup;
- }
- }
-
- if (mode) {
- if (STRNEQ(mode, "readonly") && STRNEQ(mode, "shareable")) {
-- vshError(ctl, FALSE, _("No support %s in command 'attach-disk'"), mode);
-+ vshError(ctl, _("No support %s in command 'attach-disk'"), mode);
- goto cleanup;
- }
- }
-@@ -6723,19 +6712,19 @@ cmdDetachDisk(vshControl *ctl, const vsh
- XML_PARSE_NOWARNING);
- free(doc);
- if (!xml) {
-- vshError(ctl, FALSE, "%s", _("Failed to get disk information"));
-+ vshError(ctl, "%s", _("Failed to get disk information"));
- goto cleanup;
- }
- ctxt = xmlXPathNewContext(xml);
- if (!ctxt) {
-- vshError(ctl, FALSE, "%s", _("Failed to get disk information"));
-+ vshError(ctl, "%s", _("Failed to get disk information"));
- goto cleanup;
- }
-
- obj = xmlXPathEval(BAD_CAST "/domain/devices/disk", ctxt);
- if ((obj == NULL) || (obj->type != XPATH_NODESET) ||
- (obj->nodesetval == NULL) || (obj->nodesetval->nodeNr == 0)) {
-- vshError(ctl, FALSE, "%s", _("Failed to get disk information"));
-+ vshError(ctl, "%s", _("Failed to get disk information"));
- goto cleanup;
- }
-
-@@ -6754,18 +6743,18 @@ cmdDetachDisk(vshControl *ctl, const vsh
- cur = cur->next;
- }
- }
-- vshError(ctl, FALSE, _("No found disk whose target is %s"), target);
-+ vshError(ctl, _("No found disk whose target is %s"), target);
- goto cleanup;
-
- hit:
- xml_buf = xmlBufferCreate();
- if (!xml_buf) {
-- vshError(ctl, FALSE, "%s", _("Failed to allocate memory"));
-+ vshError(ctl, "%s", _("Failed to allocate memory"));
- goto cleanup;
- }
-
- if(xmlNodeDump(xml_buf, xml, obj->nodesetval->nodeTab[i], 0, 0) < 0){
-- vshError(ctl, FALSE, "%s", _("Failed to create XML"));
-+ vshError(ctl, "%s", _("Failed to create XML"));
- goto cleanup;
- }
-
-@@ -6799,9 +6788,8 @@ editWriteToTempFile (vshControl *ctl, co
-
- ret = malloc (PATH_MAX);
- if (!ret) {
-- vshError(ctl, FALSE,
-- _("malloc: failed to allocate temporary file name: %s"),
-- strerror (errno));
-+ vshError(ctl, _("malloc: failed to allocate temporary file name: %s"),
-+ strerror(errno));
- return NULL;
- }
-
-@@ -6810,25 +6798,22 @@ editWriteToTempFile (vshControl *ctl, co
- snprintf (ret, PATH_MAX, "%s/virshXXXXXX", tmpdir);
- fd = mkstemp (ret);
- if (fd == -1) {
-- vshError(ctl, FALSE,
-- _("mkstemp: failed to create temporary file: %s"),
-- strerror (errno));
-+ vshError(ctl, _("mkstemp: failed to create temporary file: %s"),
-+ strerror(errno));
- return NULL;
- }
-
- if (safewrite (fd, doc, strlen (doc)) == -1) {
-- vshError(ctl, FALSE,
-- _("write: %s: failed to write to temporary file: %s"),
-- ret, strerror (errno));
-+ vshError(ctl, _("write: %s: failed to write to temporary file: %s"),
-+ ret, strerror(errno));
- close (fd);
- unlink (ret);
- free (ret);
- return NULL;
- }
- if (close (fd) == -1) {
-- vshError(ctl, FALSE,
-- _("close: %s: failed to write or close temporary file: %s"),
-- ret, strerror (errno));
-+ vshError(ctl, _("close: %s: failed to write or close temporary file: %s"),
-+ ret, strerror(errno));
- unlink (ret);
- free (ret);
- return NULL;
-@@ -6856,35 +6841,37 @@ editFile (vshControl *ctl, const char *f
- * it does, refuse to run.
- */
- if (strspn (editor, ACCEPTED_CHARS) != strlen (editor)) {
-- vshError(ctl, FALSE,
-- _("%s: $EDITOR environment variable contains shell meta or other unacceptable characters"),
-+ vshError(ctl,
-+ _("%s: $EDITOR environment variable contains shell meta or "
-+ "other unacceptable characters"),
- editor);
- return -1;
- }
- /* Same for the filename. */
- if (strspn (filename, ACCEPTED_CHARS) != strlen (filename)) {
-- vshError(ctl, FALSE,
-- _("%s: temporary filename contains shell meta or other unacceptable characters (is $TMPDIR wrong?)"),
-+ vshError(ctl,
-+ _("%s: temporary filename contains shell meta or other "
-+ "unacceptable characters (is $TMPDIR wrong?)"),
- filename);
- return -1;
- }
-
- if (virAsprintf(&command, "%s %s", editor, filename) == -1) {
-- vshError(ctl, FALSE,
-+ vshError(ctl,
- _("virAsprintf: could not create editing command: %s"),
-- strerror (errno));
-+ strerror(errno));
- return -1;
- }
-
- command_ret = system (command);
- if (command_ret == -1) {
-- vshError(ctl, FALSE,
-- _("%s: edit command failed: %s"), command, strerror (errno));
-+ vshError(ctl,
-+ _("%s: edit command failed: %s"), command, strerror(errno));
- free (command);
- return -1;
- }
- if (command_ret != WEXITSTATUS (0)) {
-- vshError(ctl, FALSE,
-+ vshError(ctl,
- _("%s: command exited with non-zero status"), command);
- free (command);
- return -1;
-@@ -6899,9 +6886,9 @@ editReadBackFile (vshControl *ctl, const
- char *ret;
-
- if (virFileReadAll (filename, VIRSH_MAX_XML_FILE, &ret) == -1) {
-- vshError(ctl, FALSE,
-+ vshError(ctl,
- _("%s: failed to read temporary file: %s"),
-- filename, strerror (errno));
-+ filename, strerror(errno));
- return NULL;
- }
- return ret;
-@@ -6930,8 +6917,7 @@ cmdCd(vshControl *ctl, const vshCmd *cmd
- int found;
-
- if (!ctl->imode) {
-- vshError(ctl, FALSE, "%s",
-- _("cd: command valid only in interactive mode"));
-+ vshError(ctl, "%s", _("cd: command valid only in interactive mode"));
- return -1;
- }
-
-@@ -6944,7 +6930,7 @@ cmdCd(vshControl *ctl, const vshCmd *cmd
- dir = "/";
-
- if (chdir (dir) == -1) {
-- vshError(ctl, FALSE, _("cd: %s: %s"), strerror (errno), dir);
-+ vshError(ctl, _("cd: %s: %s"), strerror(errno), dir);
- return -1;
- }
-
-@@ -6982,7 +6968,8 @@ cmdPwd(vshControl *ctl, const vshCmd *cm
- }
-
- if (err)
-- vshError(ctl, FALSE, _("pwd: cannot get current directory: %s"), strerror (errno));
-+ vshError(ctl, _("pwd: cannot get current directory: %s"),
-+ strerror(errno));
- else
- vshPrint (ctl, _("%s\n"), cwd);
-
-@@ -7062,8 +7049,8 @@ cmdEdit (vshControl *ctl, const vshCmd *
- goto cleanup;
-
- if (STRNEQ (doc, doc_reread)) {
-- vshError (ctl, FALSE,
-- "%s", _("ERROR: the XML configuration was changed by another user"));
-+ vshError(ctl,
-+ "%s", _("ERROR: the XML configuration was changed by another user"));
- goto cleanup;
- }
-
-@@ -7348,7 +7335,7 @@ vshCommandCheckOpts(vshControl *ctl, con
- o = o->next;
- }
- if (!ok) {
-- vshError(ctl, FALSE,
-+ vshError(ctl,
- d->type == VSH_OT_DATA ?
- _("command '%s' requires <%s> option") :
- _("command '%s' requires --%s option"),
-@@ -7378,7 +7365,7 @@ vshCmddefHelp(vshControl *ctl, const cha
- const vshCmdDef *def = vshCmddefSearch(cmdname);
-
- if (!def) {
-- vshError(ctl, FALSE, _("command '%s' doesn't exist"), cmdname);
-+ vshError(ctl, _("command '%s' doesn't exist"), cmdname);
- return FALSE;
- } else {
- const char *desc = N_(vshCmddefGetInfo(def, "desc"));
-@@ -7577,8 +7564,7 @@ cmd_has_option (vshControl *ctl, const v
- }
-
- if (!found)
-- vshError(ctl, FALSE,
-- _("internal error: virsh %s: no %s VSH_OT_DATA option"),
-+ vshError(ctl, _("internal error: virsh %s: no %s VSH_OT_DATA option"),
- cmd->def->name, optname);
- return found;
- }
-@@ -7595,7 +7581,7 @@ vshCommandOptDomainBy(vshControl *ctl, c
- return NULL;
-
- if (!(n = vshCommandOptString(cmd, optname, NULL))) {
-- vshError(ctl, FALSE, "%s", _("undefined domain name or id"));
-+ vshError(ctl, "%s", _("undefined domain name or id"));
- return NULL;
- }
-
-@@ -7627,7 +7613,7 @@ vshCommandOptDomainBy(vshControl *ctl, c
- }
-
- if (!dom)
-- vshError(ctl, FALSE, _("failed to get domain '%s'"), n);
-+ vshError(ctl, _("failed to get domain '%s'"), n);
-
- return dom;
- }
-@@ -7643,7 +7629,7 @@ vshCommandOptNetworkBy(vshControl *ctl,
- return NULL;
-
- if (!(n = vshCommandOptString(cmd, optname, NULL))) {
-- vshError(ctl, FALSE, "%s", _("undefined network name"));
-+ vshError(ctl, "%s", _("undefined network name"));
- return NULL;
- }
-
-@@ -7667,7 +7653,7 @@ vshCommandOptNetworkBy(vshControl *ctl,
- }
-
- if (!network)
-- vshError(ctl, FALSE, _("failed to get network '%s'"), n);
-+ vshError(ctl, _("failed to get network '%s'"), n);
-
- return network;
- }
-@@ -7683,7 +7669,7 @@ vshCommandOptInterfaceBy(vshControl *ctl
- return NULL;
-
- if (!(n = vshCommandOptString(cmd, optname, NULL))) {
-- vshError(ctl, FALSE, "%s", _("undefined interface identifier"));
-+ vshError(ctl, "%s", _("undefined interface identifier"));
- return NULL;
- }
-
-@@ -7707,7 +7693,7 @@ vshCommandOptInterfaceBy(vshControl *ctl
- }
-
- if (!iface)
-- vshError(ctl, FALSE, _("failed to get interface '%s'"), n);
-+ vshError(ctl, _("failed to get interface '%s'"), n);
-
- return iface;
- }
-@@ -7720,7 +7706,7 @@ vshCommandOptPoolBy(vshControl *ctl, con
- char *n;
-
- if (!(n = vshCommandOptString(cmd, optname, NULL))) {
-- vshError(ctl, FALSE, "%s", _("undefined pool name"));
-+ vshError(ctl, "%s", _("undefined pool name"));
- return NULL;
- }
-
-@@ -7744,7 +7730,7 @@ vshCommandOptPoolBy(vshControl *ctl, con
- }
-
- if (!pool)
-- vshError(ctl, FALSE, _("failed to get pool '%s'"), n);
-+ vshError(ctl, _("failed to get pool '%s'"), n);
-
- return pool;
- }
-@@ -7761,12 +7747,12 @@ vshCommandOptVolBy(vshControl *ctl, cons
- int found;
-
- if (!(n = vshCommandOptString(cmd, optname, NULL))) {
-- vshError(ctl, FALSE, "%s", _("undefined vol name"));
-+ vshError(ctl, "%s", _("undefined vol name"));
- return NULL;
- }
-
- if (!(p = vshCommandOptString(cmd, pooloptname, &found)) && found) {
-- vshError(ctl, FALSE, "%s", _("undefined pool name"));
-+ vshError(ctl, "%s", _("undefined pool name"));
- return NULL;
- }
-
-@@ -7797,7 +7783,7 @@ vshCommandOptVolBy(vshControl *ctl, cons
- }
-
- if (!vol)
-- vshError(ctl, FALSE, _("failed to get vol '%s'"), n);
-+ vshError(ctl, _("failed to get vol '%s'"), n);
-
- if (pool)
- virStoragePoolFree(pool);
-@@ -7817,7 +7803,7 @@ vshCommandOptSecret(vshControl *ctl, con
-
- n = vshCommandOptString(cmd, optname, NULL);
- if (n == NULL) {
-- vshError(ctl, FALSE, "%s", _("undefined secret UUID"));
-+ vshError(ctl, "%s", _("undefined secret UUID"));
- return NULL;
- }
-
-@@ -7829,7 +7815,7 @@ vshCommandOptSecret(vshControl *ctl, con
- secret = virSecretLookupByUUIDString(ctl->conn, n);
-
- if (secret == NULL)
-- vshError(ctl, FALSE, _("failed to get secret '%s'"), n);
-+ vshError(ctl, _("failed to get secret '%s'"), n);
-
- return secret;
- }
-@@ -7934,7 +7920,7 @@ vshCommandGetToken(vshControl *ctl, char
- sz++;
- }
- if (quote) {
-- vshError(ctl, FALSE, "%s", _("missing \""));
-+ vshError(ctl, "%s", _("missing \""));
- return VSH_TK_ERROR;
- }
- if (tkstr == NULL || *tkstr == '\0' || p == NULL)
-@@ -7994,19 +7980,19 @@ vshCommandParse(vshControl *ctl, char *c
- if (cmd == NULL) {
- /* first token must be command name */
- if (tk != VSH_TK_DATA) {
-- vshError(ctl, FALSE,
-+ vshError(ctl,
- _("unexpected token (command name): '%s'"),
- tkdata);
- goto syntaxError;
- }
- if (!(cmd = vshCmddefSearch(tkdata))) {
-- vshError(ctl, FALSE, _("unknown command: '%s'"), tkdata);
-+ vshError(ctl, _("unknown command: '%s'"), tkdata);
- goto syntaxError; /* ... or ignore this command only? */
- }
- free(tkdata);
- } else if (tk == VSH_TK_OPTION) {
- if (!(opt = vshCmddefGetOption(cmd, tkdata))) {
-- vshError(ctl, FALSE,
-+ vshError(ctl,
- _("command '%s' doesn't support option --%s"),
- cmd->name, tkdata);
- goto syntaxError;
-@@ -8021,7 +8007,7 @@ vshCommandParse(vshControl *ctl, char *c
- if (tk == VSH_TK_ERROR)
- goto syntaxError;
- if (tk != VSH_TK_DATA) {
-- vshError(ctl, FALSE,
-+ vshError(ctl,
- _("expected syntax: --%s <%s>"),
- opt->name,
- opt->type ==
-@@ -8031,7 +8017,7 @@ vshCommandParse(vshControl *ctl, char *c
- }
- } else if (tk == VSH_TK_DATA) {
- if (!(opt = vshCmddefGetData(cmd, data_ct++))) {
-- vshError(ctl, FALSE, _("unexpected data '%s'"), tkdata);
-+ vshError(ctl, _("unexpected data '%s'"), tkdata);
- goto syntaxError;
- }
- }
-@@ -8143,7 +8129,7 @@ vshConnectionUsability(vshControl *ctl,
- */
- if (!conn) {
- if (showerror)
-- vshError(ctl, FALSE, "%s", _("no valid connection"));
-+ vshError(ctl, "%s", _("no valid connection"));
- return FALSE;
- }
- return TRUE;
-@@ -8181,7 +8167,7 @@ vshPrintExtra(vshControl *ctl, const cha
-
-
- static void
--vshError(vshControl *ctl, int doexit, const char *format, ...)
-+vshError(vshControl *ctl, const char *format, ...)
- {
- va_list ap;
-
-@@ -8189,22 +8175,13 @@ vshError(vshControl *ctl, int doexit, co
- vshOutputLogFile(ctl, VSH_ERR_ERROR, format, ap);
- va_end(ap);
-
-- if (doexit)
-- fprintf(stderr, _("%s: error: "), progname);
-- else
-- fputs(_("error: "), stderr);
-+ fputs(_("error: "), stderr);
-
- va_start(ap, format);
- vfprintf(stderr, format, ap);
- va_end(ap);
-
- fputc('\n', stderr);
--
-- if (doexit) {
-- if (ctl)
-- vshDeinit(ctl);
-- exit(EXIT_FAILURE);
-- }
- }
-
- static void *
-@@ -8214,9 +8191,9 @@ _vshMalloc(vshControl *ctl, size_t size,
-
- if ((x = malloc(size)))
- return x;
-- vshError(ctl, TRUE, _("%s: %d: failed to allocate %d bytes"),
-+ vshError(ctl, _("%s: %d: failed to allocate %d bytes"),
- filename, line, (int) size);
-- return NULL;
-+ exit(EXIT_FAILURE);
- }
-
- static void *
-@@ -8226,9 +8203,9 @@ _vshCalloc(vshControl *ctl, size_t nmemb
-
- if ((x = calloc(nmemb, size)))
- return x;
-- vshError(ctl, TRUE, _("%s: %d: failed to allocate %d bytes"),
-+ vshError(ctl, _("%s: %d: failed to allocate %d bytes"),
- filename, line, (int) (size*nmemb));
-- return NULL;
-+ exit(EXIT_FAILURE);
- }
-
- static void *
-@@ -8239,9 +8216,9 @@ _vshRealloc(vshControl *ctl, void *ptr,
- if ((x = realloc(ptr, size)))
- return x;
- free(ptr);
-- vshError(ctl, TRUE, _("%s: %d: failed to allocate %d bytes"),
-+ vshError(ctl, _("%s: %d: failed to allocate %d bytes"),
- filename, line, (int) size);
-- return NULL;
-+ exit(EXIT_FAILURE);
- }
-
- static char *
-@@ -8253,9 +8230,9 @@ _vshStrdup(vshControl *ctl, const char *
- return(NULL);
- if ((x = strdup(s)))
- return x;
-- vshError(ctl, TRUE, _("%s: %d: failed to allocate %lu bytes"),
-+ vshError(ctl, _("%s: %d: failed to allocate %lu bytes"),
- filename, line, (unsigned long)strlen(s));
-- return NULL;
-+ exit(EXIT_FAILURE);
- }
-
- /*
-@@ -8283,7 +8260,7 @@ vshInit(vshControl *ctl)
- */
- if (!ctl->conn) {
- virshReportError(ctl);
-- vshError(ctl, FALSE, "%s", _("failed to connect to the hypervisor"));
-+ vshError(ctl, "%s", _("failed to connect to the hypervisor"));
- return FALSE;
- }
-
-@@ -8314,20 +8291,22 @@ vshOpenLogFile(vshControl *ctl)
- case ENOENT:
- break;
- default:
-- vshError(ctl, TRUE, "%s",
-+ vshError(ctl, "%s",
- _("failed to get the log file information"));
-- break;
-+ exit(EXIT_FAILURE);
- }
- } else {
- if (!S_ISREG(st.st_mode)) {
-- vshError(ctl, TRUE, "%s", _("the log path is not a file"));
-+ vshError(ctl, "%s", _("the log path is not a file"));
-+ exit(EXIT_FAILURE);
- }
- }
-
- /* log file open */
- if ((ctl->log_fd = open(ctl->logfile, LOGFILE_FLAGS, FILE_MODE)) < 0) {
-- vshError(ctl, TRUE, "%s",
-+ vshError(ctl, "%s",
- _("failed to open the log file. check the log file path"));
-+ exit(EXIT_FAILURE);
- }
- }
-
-@@ -8395,7 +8374,7 @@ vshOutputLogFile(vshControl *ctl, int lo
- /* write log */
- if (safewrite(ctl->log_fd, msg_buf, strlen(msg_buf)) < 0) {
- vshCloseLogFile(ctl);
-- vshError(ctl, FALSE, "%s", _("failed to write the log file"));
-+ vshError(ctl, "%s", _("failed to write the log file"));
- }
- }
-
-@@ -8410,7 +8389,7 @@ vshCloseLogFile(vshControl *ctl)
- /* log file close */
- if (ctl->log_fd >= 0) {
- if (close(ctl->log_fd) < 0)
-- vshError(ctl, FALSE, _("%s: failed to write log file: %s"),
-+ vshError(ctl, _("%s: failed to write log file: %s"),
- ctl->logfile ? ctl->logfile : "?", strerror (errno));
- ctl->log_fd = -1;
- }
-@@ -8588,9 +8567,7 @@ vshDeinit(vshControl *ctl)
- free(ctl->name);
- if (ctl->conn) {
- if (virConnectClose(ctl->conn) != 0) {
-- ctl->conn = NULL; /* prevent recursive call from vshError() */
-- vshError(ctl, TRUE, "%s",
-- _("failed to disconnect from the hypervisor"));
-+ vshError(ctl, "%s", _("failed to disconnect from the hypervisor"));
- }
- }
- virResetLastError();
-@@ -8715,16 +8692,16 @@ vshParseArgv(vshControl *ctl, int argc,
- ctl->logfile = vshStrdup(ctl, optarg);
- break;
- default:
-- vshError(ctl, TRUE,
-- _("unsupported option '-%c'. See --help."), arg);
-- break;
-+ vshError(ctl, _("unsupported option '-%c'. See --help."), arg);
-+ exit(EXIT_FAILURE);
- }
- }
-
- if (help) {
-- if (end < argc)
-- vshError(ctl, TRUE,
-- _("extra argument '%s'. See --help."), argv[end]);
-+ if (end < argc) {
-+ vshError(ctl, _("extra argument '%s'. See --help."), argv[end]);
-+ exit(EXIT_FAILURE);
-+ }
-
- /* list all command */
- vshUsage();
diff --git a/xen-pv-cdrom.patch b/xen-pv-cdrom.patch
index 73c0874..3188ac7 100644
--- a/xen-pv-cdrom.patch
+++ b/xen-pv-cdrom.patch
@@ -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.1/src/xend_internal.c
-@@ -5306,7 +5306,10 @@ xenDaemonFormatSxprDisk(virConnectPtr co
+--- libvirt-0.7.2.orig/src/xen/xend_internal.c
++++ libvirt-0.7.2/src/xen/xend_internal.c
+@@ -5324,7 +5324,10 @@ xenDaemonFormatSxprDisk(virConnectPtr co
} else if (def->device == VIR_DOMAIN_DISK_DEVICE_CDROM) {
virBufferVSprintf(buf, "(dev '%s:cdrom')", def->dst);
} else {
diff --git a/xen-refcnt.patch b/xen-refcnt.patch
deleted file mode 100644
index c54934c..0000000
--- a/xen-refcnt.patch
+++ /dev/null
@@ -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;
- }
- }