[libvirt] [PATCH V2 0/3] support flags in libxlDomain{Shutdown, Reboot}
by Jim Fehlig
This small series is a V2 of
https://www.redhat.com/archives/libvir-list/2014-April/msg00837.html
Patch 1 adds VIR_DOMAIN_SHUTDOWN_PARAVIRT and
VIR_REBOOT_SHUTDOWN_PARAVIRT flags to the API as requested by danpb.
Patch 2 makes use of the shutdown flags in libxlDomainShutdownFlags.
Patch 3 does the same for libxlDomainReboot.
Jim Fehlig (3):
Introduce a new flag for controlling shutdown/reboot
libxl: support PARAVIRT and ACPI shutdown flags
libxl: support PARAVIRT and ACPI reboot flags
include/libvirt/libvirt.h.in | 2 ++
src/libxl/libxl_driver.c | 64 +++++++++++++++++++++++++++++++++++---------
tools/virsh-domain.c | 14 +++++++---
tools/virsh.pod | 8 +++---
4 files changed, 68 insertions(+), 20 deletions(-)
--
1.8.1.4
10 years, 4 months
[libvirt] [PATCH 0/2] virstoragefile cleanups
by Eric Blake
I found these cleanups while trying to solve the regression
that John identified, where we are losing the correct
capacity read from a qcow2 header when it comes time to
dump a volume's xml. I still plan to get that regression
fixed before 1.2.4 goes out the door, but this was worth
posting in the meantime.
Eric Blake (2):
conf: avoid null deref during storage probe
conf: drop extra storage probe
src/libvirt_private.syms | 1 -
src/storage/storage_backend_fs.c | 8 --------
src/storage/storage_backend_gluster.c | 5 -----
src/util/virstoragefile.c | 37 ++++++++++++++++-------------------
src/util/virstoragefile.h | 7 ++-----
5 files changed, 19 insertions(+), 39 deletions(-)
--
1.9.0
10 years, 4 months
[libvirt] [PATCH] bhyve: report cpuTime in bhyveDomainGetInfo
by Roman Bogorodskiy
Add a helper function virBhyveGetDomainTotalCpuStats() to
obtain process CPU time using kvm (kernel memory interface)
and use it to set cpuTime field of the virDomainInfo struct in
bhyveDomainGetInfo().
---
configure.ac | 7 +++++++
src/bhyve/bhyve_driver.c | 9 +++++++++
src/bhyve/bhyve_process.c | 40 ++++++++++++++++++++++++++++++++++++++++
src/bhyve/bhyve_process.h | 3 +++
4 files changed, 59 insertions(+)
diff --git a/configure.ac b/configure.ac
index 12338d4..2e5fa1a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2684,6 +2684,13 @@ AC_CHECK_DECLS([cpuset_getaffinity],
#include <sys/cpuset.h>
])
+# Check for BSD kvm (kernel memory interface)
+if test $with_freebsd = yes; then
+ AC_CHECK_LIB([kvm], [kvm_getprocs], [],
+ [AC_MSG_ERROR([BSD kernel memory interface library is required to build on FreeBSD])]
+ )
+fi
+
# Check if we need to look for ifconfig
if test "$want_ifconfig" = "yes"; then
AC_PATH_PROG([IFCONFIG_PATH], [ifconfig])
diff --git a/src/bhyve/bhyve_driver.c b/src/bhyve/bhyve_driver.c
index 6d681fd..0780e74 100644
--- a/src/bhyve/bhyve_driver.c
+++ b/src/bhyve/bhyve_driver.c
@@ -268,6 +268,15 @@ bhyveDomainGetInfo(virDomainPtr domain, virDomainInfoPtr info)
if (virDomainGetInfoEnsureACL(domain->conn, vm->def) < 0)
goto cleanup;
+ if (virDomainObjIsActive(vm)) {
+ if (virBhyveGetDomainTotalCpuStats(vm, &(info->cpuTime)) < 0) {
+ virReportError(VIR_ERR_OPERATION_FAILED,
+ "%s", _("Cannot read cputime for domain"));
+ goto cleanup;
+ }
+ } else
+ info->cpuTime = 0;
+
info->state = virDomainObjGetState(vm, NULL);
info->maxMem = vm->def->mem.max_balloon;
info->nrVirtCpu = vm->def->vcpus;
diff --git a/src/bhyve/bhyve_process.c b/src/bhyve/bhyve_process.c
index a557bc5..b6f0f2c 100644
--- a/src/bhyve/bhyve_process.c
+++ b/src/bhyve/bhyve_process.c
@@ -22,7 +22,11 @@
#include <config.h>
#include <fcntl.h>
+#include <kvm.h>
+#include <sys/param.h>
#include <sys/types.h>
+#include <sys/sysctl.h>
+#include <sys/user.h>
#include <sys/ioctl.h>
#include <net/if.h>
#include <net/if_tap.h>
@@ -246,3 +250,39 @@ virBhyveProcessStop(bhyveConnPtr driver,
virCommandFree(cmd);
return ret;
}
+
+int
+virBhyveGetDomainTotalCpuStats(virDomainObjPtr vm,
+ unsigned long long *cpustats)
+{
+ struct kinfo_proc *kp;
+ kvm_t *kd;
+ char errbuf[_POSIX2_LINE_MAX];
+ int nprocs;
+ int ret = -1;
+
+ if ((kd = kvm_openfiles(NULL, NULL, NULL, O_RDONLY, errbuf)) == NULL) {
+ virReportError(VIR_ERR_SYSTEM_ERROR,
+ _("Unable to get kvm descriptor: %s"),
+ errbuf);
+ return -1;
+
+ }
+
+ kp = kvm_getprocs(kd, KERN_PROC_PID, vm->pid, &nprocs);
+ if (kp == NULL || nprocs != 1) {
+ virReportError(VIR_ERR_SYSTEM_ERROR,
+ _("Unable to obtain information about pid: %d"),
+ (int)vm->pid);
+ goto cleanup;
+ }
+
+ *cpustats = kp->ki_runtime * 1000ull;
+
+ ret = 0;
+
+ cleanup:
+ kvm_close(kd);
+
+ return ret;
+}
diff --git a/src/bhyve/bhyve_process.h b/src/bhyve/bhyve_process.h
index f91504e..3049ad0 100644
--- a/src/bhyve/bhyve_process.h
+++ b/src/bhyve/bhyve_process.h
@@ -34,6 +34,9 @@ int virBhyveProcessStop(bhyveConnPtr driver,
virDomainObjPtr vm,
virDomainShutoffReason reason);
+int virBhyveGetDomainTotalCpuStats(virDomainObjPtr vm,
+ unsigned long long *cpustats);
+
typedef enum {
VIR_BHYVE_PROCESS_START_AUTODESTROY = 1 << 0,
} bhyveProcessStartFlags;
--
1.9.0
10 years, 4 months
[libvirt] [PATCH v3] storageVolCreateXMLFrom: Allow multiple accesses to origvol
by Michal Privoznik
When creating a new volume, it is possible to copy data into it from
another already existing volume (referred to as @origvol). Obviously,
the read-only access to @origvol is required, which is thread safe
(probably not performance-wise though). However, with current code
both @newvol and @origvol are marked as building for the time of
copying data from the @origvol to @newvol. The rationale behind
is to disallow some operations on both @origvol and @newvol, e.g.
vol-wipe, vol-delete, vol-download. While it makes sense to not allow
such operations on partly copied mirror, but it doesn't make sense to
disallow vol-create on the source (@origvol).
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
diff to v2:
- changed the error message if volume is in use
- reworded commit message
src/conf/storage_conf.h | 1 +
src/storage/storage_driver.c | 32 ++++++++++++++++++++++++++++++--
2 files changed, 31 insertions(+), 2 deletions(-)
diff --git a/src/conf/storage_conf.h b/src/conf/storage_conf.h
index 9ad38e1..eae959c 100644
--- a/src/conf/storage_conf.h
+++ b/src/conf/storage_conf.h
@@ -64,6 +64,7 @@ struct _virStorageVolDef {
int type; /* enum virStorageVolType */
unsigned int building;
+ unsigned int in_use;
virStorageVolSource source;
virStorageSource target;
diff --git a/src/storage/storage_driver.c b/src/storage/storage_driver.c
index 2cb8347..542b382 100644
--- a/src/storage/storage_driver.c
+++ b/src/storage/storage_driver.c
@@ -1640,6 +1640,13 @@ storageVolDelete(virStorageVolPtr obj,
if (virStorageVolDeleteEnsureACL(obj->conn, pool->def, vol) < 0)
goto cleanup;
+ if (vol->in_use) {
+ virReportError(VIR_ERR_OPERATION_INVALID,
+ _("volume '%s' is still in use."),
+ vol->name);
+ goto cleanup;
+ }
+
if (vol->building) {
virReportError(VIR_ERR_OPERATION_INVALID,
_("volume '%s' is still being allocated."),
@@ -1912,8 +1919,8 @@ storageVolCreateXMLFrom(virStoragePoolPtr obj,
/* Drop the pool lock during volume allocation */
pool->asyncjobs++;
- origvol->building = 1;
newvol->building = 1;
+ origvol->in_use++;
virStoragePoolObjUnlock(pool);
if (origpool) {
@@ -1929,7 +1936,7 @@ storageVolCreateXMLFrom(virStoragePoolPtr obj,
virStoragePoolObjLock(origpool);
storageDriverUnlock(driver);
- origvol->building = 0;
+ origvol->in_use--;
newvol->building = 0;
allocation = newvol->target.allocation;
pool->asyncjobs--;
@@ -2076,6 +2083,13 @@ storageVolUpload(virStorageVolPtr obj,
if (virStorageVolUploadEnsureACL(obj->conn, pool->def, vol) < 0)
goto cleanup;
+ if (vol->in_use) {
+ virReportError(VIR_ERR_OPERATION_INVALID,
+ _("volume '%s' is still in use."),
+ vol->name);
+ goto cleanup;
+ }
+
if (vol->building) {
virReportError(VIR_ERR_OPERATION_INVALID,
_("volume '%s' is still being allocated."),
@@ -2167,6 +2181,13 @@ storageVolResize(virStorageVolPtr obj,
if (virStorageVolResizeEnsureACL(obj->conn, pool->def, vol) < 0)
goto cleanup;
+ if (vol->in_use) {
+ virReportError(VIR_ERR_OPERATION_INVALID,
+ _("volume '%s' is still in use."),
+ vol->name);
+ goto cleanup;
+ }
+
if (vol->building) {
virReportError(VIR_ERR_OPERATION_INVALID,
_("volume '%s' is still being allocated."),
@@ -2474,6 +2495,13 @@ storageVolWipePattern(virStorageVolPtr obj,
if (virStorageVolWipePatternEnsureACL(obj->conn, pool->def, vol) < 0)
goto cleanup;
+ if (vol->in_use) {
+ virReportError(VIR_ERR_OPERATION_INVALID,
+ _("volume '%s' is still in use."),
+ vol->name);
+ goto cleanup;
+ }
+
if (vol->building) {
virReportError(VIR_ERR_OPERATION_INVALID,
_("volume '%s' is still being allocated."),
--
1.9.0
10 years, 4 months
[libvirt] Some odd quriks of libvirt and xen on fedora 20.
by Alvin Starr
I am using xen 4.3 on Fedora 20.
For PV systems the vnc console display is on the correct port with the
following call do qeum-dm
libxl: debug: libxl_dm.c:1213:libxl__spawn_local_dm: -domain-name
libxl: debug: libxl_dm.c:1213:libxl__spawn_local_dm: paravirt
libxl: debug: libxl_dm.c:1213:libxl__spawn_local_dm: -vnc
libxl: debug: libxl_dm.c:1213:libxl__spawn_local_dm: 127.0.0.1:1
but for HV systems xl is being passed
libxl: debug: libxl_dm.c:1213:libxl__spawn_local_dm: -domain-name
libxl: debug: libxl_dm.c:1213:libxl__spawn_local_dm: fullvirt
libxl: debug: libxl_dm.c:1213:libxl__spawn_local_dm: -vnc
libxl: debug: libxl_dm.c:1213:libxl__spawn_local_dm: 127.0.0.1:0
libxl: debug: libxl_dm.c:1213:libxl__spawn_local_dm: -vncunused
libxl: debug: libxl_dm.c:1213:libxl__spawn_local_dm: -serial
libxl: debug: libxl_dm.c:1213:libxl__spawn_local_dm: pty
libxl: debug: libxl_dm.c:1213:libxl__spawn_local_dm: -videoram
libxl: debug: libxl_dm.c:1213:libxl__spawn_local_dm: 8
Where would I look to correct this?
--
Alvin Starr || voice: (905)513-7688
Netvel Inc. || Cell: (416)806-0133
alvin(a)netvel.net ||
10 years, 4 months
[libvirt] [PATCH] typos: fix s/it/is/ where applicable
by Martin Kletzander
Signed-off-by: Martin Kletzander <mkletzan(a)redhat.com>
---
Notes:
pushed as trivial
docs/drvesx.html.in | 4 ++--
src/esx/esx_driver.c | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/docs/drvesx.html.in b/docs/drvesx.html.in
index 0816baf..d1e67d0 100644
--- a/docs/drvesx.html.in
+++ b/docs/drvesx.html.in
@@ -148,7 +148,7 @@ vpx://example-vcenter.com/folder1/dc1/folder2/example-esx.com
</td>
<td>
If set to 1, this disables libcurl client checks of the server's
- SSL certificate. The default value it 0. See the
+ SSL certificate. The default value is 0. See the
<a href="#certificates">Certificates for HTTPS</a> section for
details.
</td>
@@ -164,7 +164,7 @@ vpx://example-vcenter.com/folder1/dc1/folder2/example-esx.com
If set to 1, the driver answers all
<a href="#questions">questions</a> with the default answer.
If set to 0, questions are reported as errors. The default
- value it 0. <span class="since">Since 0.7.5</span>.
+ value is 0. <span class="since">Since 0.7.5</span>.
</td>
</tr>
<tr>
diff --git a/src/esx/esx_driver.c b/src/esx/esx_driver.c
index d082927..5dd0a63 100644
--- a/src/esx/esx_driver.c
+++ b/src/esx/esx_driver.c
@@ -889,11 +889,11 @@ esxConnectToVCenter(esxPrivate *priv,
* it. If the ESX host is not managed by a vCenter an error is reported.
*
* If the no_verify parameter is set to 1, this disables libcurl client checks
- * of the server's certificate. The default value it 0.
+ * of the server's certificate. The default value is 0.
*
* If the auto_answer parameter is set to 1, the driver will respond to all
* virtual machine questions with the default answer, otherwise virtual machine
- * questions will be reported as errors. The default value it 0.
+ * questions will be reported as errors. The default value is 0.
*
* The proxy parameter allows to specify a proxy for to be used by libcurl.
* The default for the optional <type> part is http and socks is synonymous for
--
1.9.2
10 years, 4 months
[libvirt] [PATCH v2 0/2] bhyve: implement connectDomainXMLToNative
by Roman Bogorodskiy
Changes from v1:
- Return both bhyveload and bhyve commands, not only bhyve.
Roman Bogorodskiy (2):
bhyve: improve bhyve_command.c testability
bhyve: implement connectDomainXMLToNative
src/bhyve/bhyve_command.c | 85 +++++++++++++++++++++++++----------------------
src/bhyve/bhyve_command.h | 8 +++--
src/bhyve/bhyve_driver.c | 59 ++++++++++++++++++++++++++++++++
src/bhyve/bhyve_process.c | 10 +++---
tests/bhyvexml2argvtest.c | 2 +-
5 files changed, 117 insertions(+), 47 deletions(-)
--
1.9.0
10 years, 4 months
[libvirt] [PATCH] Fix vlan ID detection in udev interface driver
by Ján Tomko
Instead of guessing it from the interface name, look into
/proc/net/vlan/<interface>.
This works for devices not named <real_device>.<vlan ID>,
avoiding an error flood when virt-manager keeps asking about
them every second:
https://bugzilla.redhat.com/show_bug.cgi?id=966329
---
src/interface/interface_backend_udev.c | 67 ++++++++++++++++++++++++++--------
1 file changed, 51 insertions(+), 16 deletions(-)
diff --git a/src/interface/interface_backend_udev.c b/src/interface/interface_backend_udev.c
index b05ac0e..bec8c45 100644
--- a/src/interface/interface_backend_udev.c
+++ b/src/interface/interface_backend_udev.c
@@ -20,11 +20,13 @@
*/
#include <config.h>
+#include <ctype.h>
#include <errno.h>
#include <dirent.h>
#include <libudev.h>
#include "virerror.h"
+#include "virfile.h"
#include "c-ctype.h"
#include "datatypes.h"
#include "domain_conf.h"
@@ -966,31 +968,64 @@ udevGetIfaceDefVlan(struct udev *udev ATTRIBUTE_UNUSED,
const char *name,
virInterfaceDef *ifacedef)
{
- const char *vid;
+ char *procpath = NULL;
+ char *buf = NULL;
+ char *vid_pos, *dev_pos;
+ size_t vid_len, dev_len;
+ const char *vid_prefix = "VID: ";
+ const char *dev_prefix = "\nDevice: ";
+ int ret = -1;
+
+ if (virAsprintf(&procpath, "/proc/net/vlan/%s", name) < 0)
+ goto cleanup;
+
+ if (virFileReadAll(procpath, BUFSIZ, &buf) < 0)
+ goto cleanup;
- /* Find the DEVICE.VID again */
- vid = strrchr(name, '.');
- if (!vid) {
+ if ((vid_pos = strstr(buf, vid_prefix)) == NULL) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("failed to find the VID for the VLAN device '%s'"),
name);
- return -1;
+ goto cleanup;
}
+ vid_pos += strlen(vid_prefix);
- /* Set the VLAN specifics */
- if (VIR_STRDUP(ifacedef->data.vlan.tag, vid + 1) < 0)
- goto error;
- if (VIR_STRNDUP(ifacedef->data.vlan.devname,
- name, (vid - name)) < 0)
- goto error;
+ if ((vid_len = strspn(vid_pos, "0123456789")) == 0 ||
+ !isspace(vid_pos[vid_len])) {
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+ _("failed to find the VID for the VLAN device '%s'"),
+ name);
+ goto cleanup;
+ }
- return 0;
+ if ((dev_pos = strstr(vid_pos + vid_len, dev_prefix)) == NULL) {
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+ _("failed to find the real device for the VLAN device '%s'"),
+ name);
+ goto cleanup;
+ }
+ dev_pos += strlen(dev_prefix);
- error:
- VIR_FREE(ifacedef->data.vlan.tag);
- VIR_FREE(ifacedef->data.vlan.devname);
+ if ((dev_len = strcspn(dev_pos, "\n")) == 0) {
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+ _("failed to find the real device for the VLAN device '%s'"),
+ name);
+ goto cleanup;
+ }
- return -1;
+ if (VIR_STRNDUP(ifacedef->data.vlan.tag, vid_pos, vid_len) < 0)
+ goto cleanup;
+ if (VIR_STRNDUP(ifacedef->data.vlan.devname, dev_pos, dev_len) < 0) {
+ VIR_FREE(ifacedef->data.vlan.tag);
+ goto cleanup;
+ }
+
+ ret = 0;
+
+ cleanup:
+ VIR_FREE(procpath);
+ VIR_FREE(buf);
+ return ret;
}
static virInterfaceDef * ATTRIBUTE_NONNULL(1)
--
1.8.3.2
10 years, 4 months
[libvirt] [PATCH] Bump version to 1.2.5 for new dev cycle
by John Ferlan
Signed-off-by: John Ferlan <jferlan(a)redhat.com>
---
Pushed already just sending note.
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index 12338d4..fef99af 100644
--- a/configure.ac
+++ b/configure.ac
@@ -16,7 +16,7 @@ dnl You should have received a copy of the GNU Lesser General Public
dnl License along with this library. If not, see
dnl <http://www.gnu.org/licenses/>.
-AC_INIT([libvirt], [1.2.4], [libvir-list(a)redhat.com], [], [http://libvirt.org])
+AC_INIT([libvirt], [1.2.5], [libvir-list(a)redhat.com], [], [http://libvirt.org])
AC_CONFIG_SRCDIR([src/libvirt.c])
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_HEADERS([config.h])
--
1.9.0
10 years, 4 months
[libvirt] Release of libvirt-1.2.4
by Daniel Veillard
As planned I tagged the release in git and pushed the tarball and
signed rpms to the usual place:
ftp://libvirt.org/libvirt/
I also generated those for python too even if the only change is a
spec file update, they are in the python subdir.
This is a smaller than average release, with most of the changes
on code refactoring, portability and bug fixes, so no big features
here but general improvements:
Documentation:
- Device{Attach,Detach}: Document S4 limitations (Michal Privoznik)
- Add a new example to illustrate domain migration (Sahid Orentino Ferdjaoui)
- update docs for setting the QEMU BIOS path (Chen Hanxiao)
- document nmdm type console (Roman Bogorodskiy)
- Fix typos in src/* (Nehal J Wani)
- document that vfio is default for hostdev networks too (Laine Stump)
- cpu: Add documentation for CPU driver APIs (Jiri Denemark)
- virsh: Fix comment of vshCmdInfo (Li Yang)
Portability:
- Explicitly link virfirewalltest and virsystemdtest against dbus (Guido Günther)
- qemuxml2argvtest: Don't use privileged mode upfront (Guido Günther)
- tests: skip virfirewalltest on non-Linux systems (Roman Bogorodskiy)
- tests: don't fail with newer gnutls (Martin Kletzander)
- fix build with older gcc (Ján Tomko)
- storage: reject negative indices (Eric Blake)
- networkxml2firewalltest: fix build failure on freebsd (Pavel Hrdina)
- virfirewall: fix build on freebsd (Pavel Hrdina)
- Disable libvirtd by default when building on Win32 (Daniel P. Berrange)
- Don't use SO_REUSEADDR on Win32 platforms (Daniel P. Berrange)
- Conditionalize include of dlfcn.h in virmock.h (Daniel P. Berrange)
- build: avoid 'index' as variable name (Eric Blake)
- build: Don't use code with dbus_message_unref when built without dbus (Martin Kletzander)
- tests: Fix systemd test with --without-driver-modules (Jiri Denemark)
- Fix build on mingw32 (Ján Tomko)
- build: avoid compiler warning on shadowed name (Jean-Baptiste Rouault)
- tests: link against libxml2 (Guido Günther)
- tests: build viridentitytest only WITH_ATTR. (Jincheng Miao)
- maint: Correctly detect wether "gluster" cli tool is accessible (Peter Krempa)
- libvirt-guests: avoid bashism (Guido Günther)
- Use the force flag for mkfs -t xfs (Ján Tomko)
Bug Fixes:
- Restore skipping of setting capacity (John Ferlan)
- qemu: fix crash when removing <filterref> from interface with update-device (Laine Stump)
- storage: Clear all data allocated about backing store before reparsing (Peter Krempa)
- nwfilter: Tear down temp. filters when tearing all filters (Stefan Berger)
- Set mknod permission in device ACL for LXC USB devices (Daniel P. Berrange)
- conf: avoid null deref during storage probe (Eric Blake)
- qemu: properly quit migration with abort_on_error (Martin Kletzander)
- qemu: don't call virFileExists() for network type disks (Martin Kletzander)
- storage_backend_rbd: Correct argument order to rbd_create3 (Steven McDonald)
- xen: ensure /usr/sbin/xend exists before checking status (Jim Fehlig)
- Remove bogus ATTRIBUTE_NONNULL from virFirewallAddRuleFull (Daniel P. Berrange)
- Make autostart of virtlockd actually work (Daniel P. Berrange)
- Fix leak on OOM in virNWFilterVarValueCreateSimpleCopyValue (Daniel P. Berrange)
- qemu: Avoid overflow when setting migration speed on inactive domains (Jiri Denemark)
- qemu: don't check for backing chains for formats w/o snapshot support (Martin Kletzander)
- Fix pci bus naming for PPC (Daniel P. Berrange)
- Document behavior of setvcpus during guest boot (Ján Tomko)
- Save domain status after cpu hotplug (Ján Tomko)
- Fix error for out of range vcpu in qemuDomainPinVcpuFlags (Ján Tomko)
- Properly free vcpupin info for unplugged CPUs (Ján Tomko)
- Only set QEMU_CAPS_NO_HPET on x86 (Ján Tomko)
- Fix Memory Leak in virStorageFileGetMetadataRecurse() (Nehal J Wani)
- qemu: Unlock the NWFilter update lock by leaving via the cleanup label (Stefan Berger)
- storage: netfs: Handle backend errors (John Ferlan)
- conf: fix omission of <driver> in domain dumpxml (Eric Blake)
- Fix virsystemdtest without SYSTEMD_DAEMON (Ján Tomko)
- qemu: Avoid overflow when setting migration speed (Jiri Denemark)
- bhyve: fix domain management (Wojciech Macek)
- Check maximum startcpu value correctly (Ján Tomko)
- storage: Don't update pool available/allocation if buildVol fails (John Ferlan)
- LXC: Fix return code evaulation in lxcCheckNetNsSupport() (Richard Weinberger)
- Fix incorrect values in redirdev ABI check error (Ján Tomko)
- virNetDev{Replace,Restore}MacAddress: Fix memory leak (Wangrui K)
- bhyveConnectGetCapabilities: Fix double caps unref (Michal Privoznik)
- Simplify bhyveDriverGetCapabilities() (Michal Privoznik)
- bhyve_capabilities: Add Semihalf to Copyright (Michal Privoznik)
- tests: Don't crash when creating the config object fails (Guido Günther)
- conf: avoid memleak on NULL path (Eric Blake)
- lxc conf2xml: don't let current vcpus at 0: define won't like it (Cédric Bosdonnat)
- QoS: make tc filters match all traffic (Antoni S. Puimedon)
- NFS storage pool: Fix libvirtd crash due to refactor edit (John Ferlan)
- Define CPUINFO_FILE_LEN and fix maxlen of cpuinfo file for all uses (Olivia Yin)
- Fix Memory Leak in daemon/libvirtd.c (Nehal J Wani)
- qemu: make sure agent returns error when required data are missing (Martin Kletzander)
- Fix coverity-reported leak in virSecurityManagerGenLabel (Ján Tomko)
- phyp: fix logic error on volume creation (Eric Blake)
- qemu: cleanup error checking on agent replies (Martin Kletzander)
Improvements
- util: new stricter unsigned int parsing (Eric Blake)
- util: fix uint parsing on 64-bit platforms (Eric Blake)
- Misc error reporting bugs in QEMU cli builder (Daniel P. Berrange)
- nwfilter: Validate rule after parsing (Stefan Berger)
- Add support for QEMU migration to use SASL authentication (Sahid Orentino Ferdjaoui)
- enforce sane readdir usage (Eric Blake)
- network: use virDirRead in networkMigrateStateFiles (Laine Stump)
- storage: use virDirRead API (Eric Blake)
- drivers: use virDirRead API (Eric Blake)
- util: use virDirRead API (Eric Blake)
- conf: use virDirRead API (Eric Blake)
- nodeinfo: use virDirRead API (Natanael Copa)
- util: introduce virDirRead wrapper for readdir (Natanael Copa)
- tests: remove hostdevmgr directory on cleanup (Martin Kletzander)
- Use virFileFindResource to locate virtlockd daemon (Daniel P. Berrange)
- Use virFileFindResource to locate libvirtd daemon (Daniel P. Berrange)
- Recheck disk backing chains after snapshot (Jiri Denemark)
- network: centralize check for active network during interface attach (Laine Stump)
- network: set macvtap/hostdev networks active if their state file exists (Laine Stump)
- network: change location of network state xml files (Laine Stump)
- network: create statedir during driver initialization (Laine Stump)
- network: fix virNetworkObjAssignDef and persistence (Laine Stump)
- build: -avoid-version on libvirt_driver_nwfilter (Dwight Engen)
- libxl: Support PV consoles (Ian Campbell)
- build: add nwfilterxml2firewalldata to dist (Dwight Engen)
- Add a test suite for nwfilter ebiptables tech driver (Daniel P. Berrange)
- Remove last trace of direct firewall command exection (Daniel P. Berrange)
- Convert ebiptablesDriverProbeStateMatch to virFirewall (Daniel P. Berrange)
- Convert nwfilter ebiptablesApplyNewRules to virFirewall (Daniel P. Berrange)
- Convert nwfilter ebtablesApplyDropAllRules to virFirewall (Daniel P. Berrange)
- Convert nwfilter ebtablesApplyDHCPOnlyRules to virFirewall (Daniel P. Berrange)
- Convert nwfilter ebtablesApplyBasicRules to virFirewall (Daniel P. Berrange)
- Convert nwfilter ebiptablesTearNewRules to virFirewall (Daniel P. Berrange)
- Convert nwfilter ebtablesRemoveBasicRules to virFirewall (Daniel P. Berrange)
- Convert nwfilter ebiptablesTearOldRules to virFirewall (Daniel P. Berrange)
- Convert nwfilter ebiptablesAllTeardown to virFirewall (Daniel P. Berrange)
- Convert ebtables code over to use firewall APIs (Daniel P. Berrange)
- Add test for converting network XML to iptables rules (Daniel P. Berrange)
- Replace virNetworkObjPtr with virNetworkDefPtr in network platform APIs (Daniel P. Berrange)
- Convert bridge driver over to use new firewall APIs (Daniel P. Berrange)
- Introduce an object for managing firewall rulesets (Daniel P. Berrange)
- Preserve error when tearing down nwfilter rules (Daniel P. Berrange)
- Remove two-stage construction of commands in nwfilter (Daniel P. Berrange)
- Merge nwfilter createRuleInstance driver into applyNewRules (Daniel P. Berrange)
- Push virNWFilterRuleInstPtr out of (eb|ip)tablesCreateRuleInstance (Daniel P. Berrange)
- Add helper methods for determining what protocol layer is used (Daniel P. Berrange)
- Remove nwfilter tech driver 'displayRuleInstance' callback (Daniel P. Berrange)
- Remove nwfilter tech driver 'removeRules' callback (Daniel P. Berrange)
- Remove pointless storage of var names in virNWFilterHashTable (Daniel P. Berrange)
- Remove virDomainNetType parameter from nwfilter drivers (Daniel P. Berrange)
- Move virNWFilterTechDriver struct out of nwfilter_conf.h (Daniel P. Berrange)
- Use virFileFindResource to locate CPU map XML (Daniel P. Berrange)
- Use virFileFindResource to locate driver plugins (Daniel P. Berrange)
- Use virFileFindResource to locate lock manager plugins (Daniel P. Berrange)
- Use virFileFindResource to locate iohelper for fdstream (Nehal J Wani)
- Use virFileFindResource to locate parthelper for storage backend (Nehal J Wani)
- Use virFileFindResource to locate libvirt_lxc for capabilities (Nehal J Wani)
- Use virFileFindResource to locate iohelper for virFileWrapperFdNew (Nehal J Wani)
- Activate build dir overrides in libvirtd, virtlockd, virsh & tests (Daniel P. Berrange)
- Add helpers for resolving path to resources in build tree (Daniel P. Berrange)
- Add test suite for viralloc APIs (Daniel P. Berrange)
- Add support for addressing backing stores by index (Jiri Denemark)
- virStorageFileChainLookup: Return virStorageSourcePtr (Jiri Denemark)
- qemuDomainBlockCommit: Track virStorageSourcePtr for base (Jiri Denemark)
- qemuDomainBlockCommit: Don't track top_canon path separately (Jiri Denemark)
- tests: Test backing store XML formatting and parsing (Jiri Denemark)
- tests: More output options for xml2xml tests (Jiri Denemark)
- conf: Format and parse backing chains in domain XML (Jiri Denemark)
- conf: Output disk backing store details in domain XML (Jiri Denemark)
- util: storage: Invert the way recursive metadata retrieval works (Peter Krempa)
- util: virstoragefile: Don't mangle data stored about directories (Peter Krempa)
- storage: Move disk->backingChain to the recursive disk->src.backingStore (Peter Krempa)
- util: virstoragefile: Rename backingMeta to backingStore (Peter Krempa)
- util: virstorage: Kill struct virStorageFileMetadata (Peter Krempa)
- maint: Switch over from struct virStorageFileMetadata to virStorageSource (Peter Krempa)
- util: storagefile: Add fields from virStorageMetadata to virStorageSource (Peter Krempa)
- util: storagefile: Add function to free a virStorageSourcePtr (Peter Krempa)
- virstoragefile: Kill "backingStore" field from virStorageFileMetadata (Peter Krempa)
- util: virstoragefile: Don't use "backingStore" directly (Peter Krempa)
- util: storagefile: Rename "canonPath" to "path" in virStorageFileMetadata (Peter Krempa)
- util: storage: Rename "path" to "relPath" in virStorageFileMetadata (Peter Krempa)
- storage: util: Clean up arguments of virStorageFileGetMetadataInternal (Peter Krempa)
- util: storage: Move checking of the actual backing image to the worker (Peter Krempa)
- util: storage: Remove obsolete argument virStorageFileGetMetadataInternal (Peter Krempa)
- util: storagefile: Always store raw backing name in the metadata (Peter Krempa)
- qemu: unexport qemuDiskChainCheckBroken (Peter Krempa)
- bhyve: bhyveDomainDefineXML fixes (Roman Bogorodskiy)
- PPC64 prefers to set pci-ohci controller as default USB controller (Li Zhang)
- Make virDomainVcpuPinDel return void (Ján Tomko)
- maint: update to latest gnulib (Eric Blake)
- bhyve: domainCreateXML (Wojciech Macek)
- Remove QEMU_CAPS_MACHINE_USB_OPT from ComputeCmdFlags (Ján Tomko)
- conf: split <disk> schema into more pieces (Eric Blake)
- conf: set up for per-grammar overrides in schemas (Eric Blake)
- conf: restrict external snapshots to backing store formats (Eric Blake)
- conf: move storage formats to common RNG file (Eric Blake)
- conf: better <disk> interleaving in schema (Eric Blake)
- conf: create common storage RNG grammar file (Eric Blake)
- conf: delete internal directory field (Eric Blake)
- conf: tweak chain lookup internals (Eric Blake)
- conf: drop redundant parameter to chain lookup (Eric Blake)
- conf: report error on chain lookup failure (Eric Blake)
- util: new virFileRelLinkPointsTo function (Eric Blake)
- conf: test backing chain lookup (Eric Blake)
- Introduce --without-pm-utils to get rid of pm-is-supported dependency (Cédric Bosdonnat)
- conf: delete useless backingStoreFormat field (Eric Blake)
- conf: return backing information separately from metadata (Eric Blake)
- conf: delete useless backingStoreIsFile field (Eric Blake)
- conf: expose probe for non-local storage (Eric Blake)
- conf: provide details on network backing store (Eric Blake)
- conf: make virstoragetest debug easier (Eric Blake)
- cpu: Properly check input parameters (Jiri Denemark)
- Clean up virCgroupGetPercpuStats (Ján Tomko)
- Rename id, max_id to need_cpus, total_cpus (Ján Tomko)
- Extend virCgroupGetPercpuStats to fill in vcputime too (Ján Tomko)
- Fix return value of virCgroupGetPercpuStats (Ján Tomko)
- Don't require domain obj in qemuDomainGetPercpuStats (Ján Tomko)
- conf: test for more fields (Eric Blake)
- conf: start testing contents of the new backing chain fields (Eric Blake)
- conf: track more fields in backing chain metadata (Eric Blake)
- conf: rename some test fields (Eric Blake)
- conf: earlier allocation during backing chain crawl (Eric Blake)
- conf: track user vs. canonical name through full chain lookup (Eric Blake)
- qemu: Unexport qemuBuildNetworkDriveURI() (Peter Krempa)
- qemu: Refactor qemuGetDriveSourceString to take virStorageSourcePtr (Peter Krempa)
- storage: Refactor location of metadata for storage drive access to files (Peter Krempa)
- storage: Refactor storage file initialization to use virStorageSourcePtr (Peter Krempa)
- conf: Refactor helpers to retrieve actual storage type (Peter Krempa)
- tests: use virBhyveCapsBuild in bhyvexml2argv test (Roman Bogorodskiy)
- conf: another refactor of virstoragetest (Eric Blake)
- conf: interleave virstoragetest structs (Eric Blake)
- conf: test for more scenarios (Eric Blake)
- conf: fix detection of infinite backing loop (Eric Blake)
- vmware: set the driver version (Jean-Baptiste Rouault)
- tests: add bhyve xml2xml test (Roman Bogorodskiy)
- bhyve: add domain metadata support (Roman Bogorodskiy)
- bhyve: fix ATTRIBUTE_NONNULL usage (Roman Bogorodskiy)
- Use a static initializer for static mutexes (Daniel P. Berrange)
- Add syntax check to validate capitalization of abbreviations (Daniel P. Berrange)
- Replace Pci with PCI throughout (Daniel P. Berrange)
- Replace Usb with USB throughout (Daniel P. Berrange)
- Replace Scsi with SCSI throughout (Daniel P. Berrange)
- Switch systemd test to use generic dbus mock (Daniel P. Berrange)
- Create a re-usable DBus LD_PRELOAD mock library (Daniel P. Berrange)
- Introduce a new set of helper macros for mocking symbols (Daniel P. Berrange)
- bhyve: connectCompareCPU support (Wojciech Macek)
- bhyve: create capabilities submodule (Wojciech Macek)
- bhyve: support for connectBaselineCPU (Wojciech Macek)
- interface: dump inactive xml when interface isn't active (Laine Stump)
- hash: add common utility functions (Eric Blake)
- bhyve: add xml2argv tests for console (Roman Bogorodskiy)
- bhyve: add console support through nmdm device (Roman Bogorodskiy)
- bhyve: domain autostart support (David Shane Holden)
- conf: track when storage type is still undetermined (Eric Blake)
- tests: refactor virstoragetest for less stack space (Eric Blake)
- tests: use C99 initialization for storage test (Eric Blake)
- libxl: Set disk format for empty cdrom device (Stefan Bader)
- libxl: Use id from virDomainObj inside the driver (Stefan Bader)
- Add redirdevs to ABI stability check (Ján Tomko)
- virsh: Make 'exit' action same as 'quit' (Li Yang)
- Include PCI address in the error in virDomainNetFindIdx (Ján Tomko)
- Move error reporting into virDomainNetFindIdx (Ján Tomko)
- tests: simplify storage test cleanup (Eric Blake)
- storage: Report error from VolOpen by default (Cole Robinson)
- conf: modify tracking of encrypted images (Eric Blake)
- conf: drop redundant parameters during probe (Eric Blake)
- conf: track sizes directly in source struct (Eric Blake)
- conf: use common struct in storage volumes (Eric Blake)
- conf: move volume structs to util/ (Eric Blake)
- conf: tweak volume target struct details (Eric Blake)
- conf: manage disk source by struct instead of pieces (Eric Blake)
- virsh: man: delete the unexpected character in snapshot-list (Shanzhi Yu)
- maint: fix spelling errors in disk pools (Eric Blake)
- conf: let snapshots share disk source struct (Eric Blake)
- conf: move common disk source functions (Eric Blake)
- util: don't support loopback and nbd when setuid (Eric Blake)
- util: move detection of shared filesystems (Eric Blake)
- conf: move storage source type to util/ (Eric Blake)
- conf: move storage secret type to util/ (Eric Blake)
- conf: move source pool type to util/ (Eric Blake)
- conf: move storage encryption type to util/ (Eric Blake)
- conf: move network disk protocol type to util/ (Eric Blake)
- conf: move host disk type to util/ (Eric Blake)
- conf: split network host structs to util/ (Eric Blake)
- conf: split security label structs to util/ (Eric Blake)
- maint: ensure src/ directory includes are clean (Eric Blake)
- storage: gluster: Implement storage pool lookup (Peter Krempa)
- storage: netfs: Support lookup of glusterfs pool sources (Peter Krempa)
- storage: netfs: Split up and tidy up NFS storage pool source function (Peter Krempa)
Cleanups:
- tests: drop dead code from argv2xml and xml2xml (Eric Blake)
- qemu: remove unneeded forward declaration (Martin Kletzander)
Thanks everybody for your contributions to this release
be it with ideas, report, patches, documentation or localizations !
Daniel
--
Daniel Veillard | Open Source and Standards, Red Hat
veillard(a)redhat.com | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
http://veillard.com/ | virtualization library http://libvirt.org/
10 years, 4 months