[libvirt] [PATCH v2 0/4] Add a domain masterKey secret for qemu,
by John Ferlan
v1: http://www.redhat.com/archives/libvir-list/2016-March/msg01206.html
Patch 1 is already ACK'd. I assume this code won't go into 1.3.3, but
would hopefully be early in 1.3.4 and I didn't want to break up the
capability bits across releases...
Differences to v1
- Patch 2 is new - it's taking the virUUIDGenerateRandomBytes and making
it generic since we'll use it in Patch 3 (it already opens/reads from
/dev/urandom, so I figured it'd be better to share than cut, copy, paste).
- Patch 3 has changes from review:
* Less comments in qemuDomainGetMasterKeyFilePath
* Master key no longer base64 encoded to be written (or read). Instead
the Write code will open, truncate, and write the secret directly.
The Read code will read the secret directly
* The fallback algorithm for key generation uses virGenerateRandomBytes
* Changed 'masterKey' from "char *" to "uint8_t *" and added the
masterKeyLen
- Patch 4 changes in order to tell qemu the format of the file is 'raw'.
Also affects test .args file
Removed references to encode/decode, adjusted commit messages.
Ran through Coverity checker... happy...
Created a domain that would pass/read the file... Killed libvirtd, restarted
and read the masterKey file properly. Also ensured the #else of the secret
generation compiled...
John Ferlan (4):
qemu: Add capability bit for qemu secret object
util: Introduce virGenerateRandomBytes
qemu: Create domain master key
qemu: Introduce qemuBuildMasterKeyCommandLine
src/libvirt_private.syms | 1 +
src/qemu/qemu_alias.c | 17 ++
src/qemu/qemu_alias.h | 3 +
src/qemu/qemu_capabilities.c | 2 +
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_command.c | 68 ++++++
src/qemu/qemu_domain.c | 252 +++++++++++++++++++++
src/qemu/qemu_domain.h | 15 ++
src/qemu/qemu_process.c | 11 +
src/util/virutil.c | 36 +++
src/util/virutil.h | 3 +
src/util/viruuid.c | 30 +--
tests/qemucapabilitiesdata/caps_2.6.0-1.caps | 1 +
tests/qemucapabilitiesdata/caps_2.6.0-1.replies | 3 +
.../qemuxml2argvdata/qemuxml2argv-master-key.args | 23 ++
tests/qemuxml2argvdata/qemuxml2argv-master-key.xml | 30 +++
tests/qemuxml2argvtest.c | 2 +
17 files changed, 469 insertions(+), 29 deletions(-)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-master-key.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-master-key.xml
--
2.5.5
8 years, 7 months
[libvirt] [PATCH] Link xen driver against libxl
by Guido Günther
to avoid the test failure
7) Test driver "xen" ... 2016-03-31 12:53:26.950+0000: 22430: debug : virDriverLoadModule:54 : Module load xen
2016-03-31 12:53:26.950+0000: 22430: error : virDriverLoadModule:73 : failed to load module /build/libvirt-1.3.3~rc1/debian/build/src/.libs/libvirt_driver_xen.so /build/libvirt-1.3.3~rc1/debian/build/src/.libs/libvirt_driver_xen.so: undefined symbol: xlu_cfg_destroy
FAILED
---
I have not yet investigated how this change came about so this is more
of a RFC.
src/Makefile.am | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/Makefile.am b/src/Makefile.am
index 1726d06..5f37607 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1218,7 +1218,9 @@ libvirt_driver_xen_impl_la_CFLAGS = \
-I$(srcdir)/xenconfig \
$(AM_CFLAGS)
libvirt_driver_xen_impl_la_LDFLAGS = $(AM_LDFLAGS)
-libvirt_driver_xen_impl_la_LIBADD = $(XEN_LIBS) libvirt_xenconfig.la
+libvirt_driver_xen_impl_la_LIBADD = $(XEN_LIBS) \
+ $(LIBXL_LIBS) \
+ libvirt_xenconfig.la
libvirt_driver_xen_impl_la_SOURCES = $(XEN_DRIVER_SOURCES)
endif WITH_XEN
--
2.8.0.rc3
8 years, 7 months
[libvirt] [PATCH v2] secret: Introduce virSecretGetSecretString
by John Ferlan
Commit id 'fb2bd208' essentially copied the qemuGetSecretString
creating an libxlGetSecretString. Rather than have multiple copies
of the same code, create src/secret/secret_util.{c,h} files and
place the common function in there.
Modify the the build in order to build the module as a library
which is then pulled in by both the qemu and libxl drivers for
usage from both qemu_command.c and libxl_conf.c
Signed-off-by: John Ferlan <jferlan(a)redhat.com>
---
My Makefile.am skills are weak at best - not sure I got it totally
right, but I think I'm at least close (it builds and links).
po/POTFILES.in | 1 +
src/Makefile.am | 17 ++++++-
src/libvirt_private.syms | 4 ++
src/libxl/libxl_conf.c | 82 +++-----------------------------
src/qemu/qemu_command.c | 87 ++++------------------------------
src/secret/secret_util.c | 120 +++++++++++++++++++++++++++++++++++++++++++++++
src/secret/secret_util.h | 35 ++++++++++++++
7 files changed, 190 insertions(+), 156 deletions(-)
create mode 100644 src/secret/secret_util.c
create mode 100644 src/secret/secret_util.h
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 0d7f9f9..21d4cc6 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -155,6 +155,7 @@ src/rpc/virnetserverservice.c
src/rpc/virnetsshsession.c
src/rpc/virnettlscontext.c
src/secret/secret_driver.c
+src/secret/secret_util.c
src/security/security_apparmor.c
src/security/security_dac.c
src/security/security_driver.c
diff --git a/src/Makefile.am b/src/Makefile.am
index 1726d06..5a3dd11 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -936,6 +936,9 @@ INTERFACE_DRIVER_SOURCES += \
endif WITH_UDEV
endif WITH_INTERFACE
+SECRET_UTIL_SOURCES = \
+ secret/secret_util.h secret/secret_util.c
+
SECRET_DRIVER_SOURCES = \
secret/secret_driver.h secret/secret_driver.c
@@ -1123,6 +1126,12 @@ libvirt_cpu_la_CFLAGS = \
-I$(srcdir)/conf $(AM_CFLAGS)
libvirt_cpu_la_SOURCES = $(CPU_SOURCES)
+noinst_LTLIBRARIES += libvirt_secret.la
+libvirt_la_BUILT_LIBADD += libvirt_secret.la
+libvirt_secret_la_CFLAGS = $(AM_CFLAGS)
+libvirt_secret_la_LDFLAGS = $(AM_LDFLAGS)
+libvirt_secret_la_SOURCES = $(SECRET_UTIL_SOURCES)
+
if WITH_VMX
noinst_LTLIBRARIES += libvirt_vmx.la
libvirt_la_BUILT_LIBADD += libvirt_vmx.la
@@ -1303,10 +1312,13 @@ libvirt_driver_libxl_impl_la_CFLAGS = \
$(LIBXL_CFLAGS) \
-I$(srcdir)/access \
-I$(srcdir)/conf \
+ -I$(srcdir)/secret \
-I$(srcdir)/xenconfig \
$(AM_CFLAGS)
libvirt_driver_libxl_impl_la_LDFLAGS = $(AM_LDFLAGS)
-libvirt_driver_libxl_impl_la_LIBADD = $(LIBXL_LIBS) libvirt_xenconfig.la
+libvirt_driver_libxl_impl_la_LIBADD = $(LIBXL_LIBS) \
+ libvirt_xenconfig.la \
+ libvirt_secret.la
libvirt_driver_libxl_impl_la_SOURCES = $(LIBXL_DRIVER_SOURCES)
conf_DATA += libxl/libxl.conf
@@ -1337,12 +1349,14 @@ libvirt_driver_qemu_impl_la_CFLAGS = \
$(LIBNL_CFLAGS) \
-I$(srcdir)/access \
-I$(srcdir)/conf \
+ -I$(srcdir)/secret \
$(AM_CFLAGS)
libvirt_driver_qemu_impl_la_LDFLAGS = $(AM_LDFLAGS)
libvirt_driver_qemu_impl_la_LIBADD = $(CAPNG_LIBS) \
$(GNUTLS_LIBS) \
$(LIBNL_LIBS) \
$(LIBXML_LIBS) \
+ libvirt_secret.la \
$(NULL)
libvirt_driver_qemu_impl_la_SOURCES = $(QEMU_DRIVER_SOURCES)
@@ -1873,6 +1887,7 @@ EXTRA_DIST += \
$(SECURITY_DRIVER_SELINUX_SOURCES) \
$(SECURITY_DRIVER_APPARMOR_SOURCES) \
$(SECRET_DRIVER_SOURCES) \
+ $(SECRET_UTIL_SOURCES) \
$(VBOX_DRIVER_EXTRA_DIST) \
$(VMWARE_DRIVER_SOURCES) \
$(XENCONFIG_SOURCES) \
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 684f06c..a473158 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -1038,6 +1038,10 @@ nodeGetThreadsPerSubcore;
nodeSetMemoryParameters;
+# secret/secret_util.h
+virSecretGetSecretString;
+
+
# security/security_driver.h
virSecurityDriverLookup;
diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c
index 82ba417..d16280d 100644
--- a/src/libxl/libxl_conf.c
+++ b/src/libxl/libxl_conf.c
@@ -46,7 +46,7 @@
#include "libxl_conf.h"
#include "libxl_utils.h"
#include "virstoragefile.h"
-#include "base64.h"
+#include "secret_util.h"
#define VIR_FROM_THIS VIR_FROM_LIBXL
@@ -935,76 +935,6 @@ libxlDomainGetEmulatorType(const virDomainDef *def)
return ret;
}
-static char *
-libxlGetSecretString(virConnectPtr conn,
- const char *scheme,
- bool encoded,
- virStorageAuthDefPtr authdef,
- virSecretUsageType secretUsageType)
-{
- size_t secret_size;
- virSecretPtr sec = NULL;
- char *secret = NULL;
- char uuidStr[VIR_UUID_STRING_BUFLEN];
-
- /* look up secret */
- switch (authdef->secretType) {
- case VIR_STORAGE_SECRET_TYPE_UUID:
- sec = virSecretLookupByUUID(conn, authdef->secret.uuid);
- virUUIDFormat(authdef->secret.uuid, uuidStr);
- break;
- case VIR_STORAGE_SECRET_TYPE_USAGE:
- sec = virSecretLookupByUsage(conn, secretUsageType,
- authdef->secret.usage);
- break;
- }
-
- if (!sec) {
- if (authdef->secretType == VIR_STORAGE_SECRET_TYPE_UUID) {
- virReportError(VIR_ERR_NO_SECRET,
- _("%s no secret matches uuid '%s'"),
- scheme, uuidStr);
- } else {
- virReportError(VIR_ERR_NO_SECRET,
- _("%s no secret matches usage value '%s'"),
- scheme, authdef->secret.usage);
- }
- goto cleanup;
- }
-
- secret = (char *)conn->secretDriver->secretGetValue(sec, &secret_size, 0,
- VIR_SECRET_GET_VALUE_INTERNAL_CALL);
- if (!secret) {
- if (authdef->secretType == VIR_STORAGE_SECRET_TYPE_UUID) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("could not get value of the secret for "
- "username '%s' using uuid '%s'"),
- authdef->username, uuidStr);
- } else {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("could not get value of the secret for "
- "username '%s' using usage value '%s'"),
- authdef->username, authdef->secret.usage);
- }
- goto cleanup;
- }
-
- if (encoded) {
- char *base64 = NULL;
-
- base64_encode_alloc(secret, secret_size, &base64);
- VIR_FREE(secret);
- if (!base64) {
- virReportOOMError();
- goto cleanup;
- }
- secret = base64;
- }
-
- cleanup:
- virObjectUnref(sec);
- return secret;
-}
static char *
libxlMakeNetworkDiskSrcStr(virStorageSourcePtr src,
@@ -1100,11 +1030,11 @@ libxlMakeNetworkDiskSrc(virStorageSourcePtr src, char **srcstr)
if (!(conn = virConnectOpen("xen:///system")))
goto cleanup;
- if (!(secret = libxlGetSecretString(conn,
- protocol,
- true,
- src->auth,
- VIR_SECRET_USAGE_TYPE_CEPH)))
+ if (!(secret = virSecretGetSecretString(conn,
+ protocol,
+ true,
+ src->auth,
+ VIR_SECRET_USAGE_TYPE_CEPH)))
goto cleanup;
}
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 9001d06..9de9122 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -50,7 +50,7 @@
#include "secret_conf.h"
#include "network/bridge_driver.h"
#include "virnetdevtap.h"
-#include "base64.h"
+#include "secret_util.h"
#include "device_conf.h"
#include "virstoragefile.h"
#include "virtpm.h"
@@ -487,77 +487,6 @@ qemuSafeSerialParamValue(const char *value)
return 0;
}
-static char *
-qemuGetSecretString(virConnectPtr conn,
- const char *scheme,
- bool encoded,
- virStorageAuthDefPtr authdef,
- virSecretUsageType secretUsageType)
-{
- size_t secret_size;
- virSecretPtr sec = NULL;
- char *secret = NULL;
- char uuidStr[VIR_UUID_STRING_BUFLEN];
-
- /* look up secret */
- switch (authdef->secretType) {
- case VIR_STORAGE_SECRET_TYPE_UUID:
- sec = virSecretLookupByUUID(conn, authdef->secret.uuid);
- virUUIDFormat(authdef->secret.uuid, uuidStr);
- break;
- case VIR_STORAGE_SECRET_TYPE_USAGE:
- sec = virSecretLookupByUsage(conn, secretUsageType,
- authdef->secret.usage);
- break;
- }
-
- if (!sec) {
- if (authdef->secretType == VIR_STORAGE_SECRET_TYPE_UUID) {
- virReportError(VIR_ERR_NO_SECRET,
- _("%s no secret matches uuid '%s'"),
- scheme, uuidStr);
- } else {
- virReportError(VIR_ERR_NO_SECRET,
- _("%s no secret matches usage value '%s'"),
- scheme, authdef->secret.usage);
- }
- goto cleanup;
- }
-
- secret = (char *)conn->secretDriver->secretGetValue(sec, &secret_size, 0,
- VIR_SECRET_GET_VALUE_INTERNAL_CALL);
- if (!secret) {
- if (authdef->secretType == VIR_STORAGE_SECRET_TYPE_UUID) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("could not get value of the secret for "
- "username '%s' using uuid '%s'"),
- authdef->username, uuidStr);
- } else {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("could not get value of the secret for "
- "username '%s' using usage value '%s'"),
- authdef->username, authdef->secret.usage);
- }
- goto cleanup;
- }
-
- if (encoded) {
- char *base64 = NULL;
-
- base64_encode_alloc(secret, secret_size, &base64);
- VIR_FREE(secret);
- if (!base64) {
- virReportOOMError();
- goto cleanup;
- }
- secret = base64;
- }
-
- cleanup:
- virObjectUnref(sec);
- return secret;
-}
-
static int
qemuNetworkDriveGetPort(int protocol,
@@ -868,11 +797,11 @@ qemuGetDriveSourceString(virStorageSourcePtr src,
secretType = VIR_SECRET_USAGE_TYPE_CEPH;
}
- if (!(secret = qemuGetSecretString(conn,
- protocol,
- encode,
- src->auth,
- secretType)))
+ if (!(secret = virSecretGetSecretString(conn,
+ protocol,
+ encode,
+ src->auth,
+ secretType)))
goto cleanup;
}
}
@@ -4458,8 +4387,8 @@ qemuBuildSCSIiSCSIHostdevDrvStr(virConnectPtr conn,
int secretType = VIR_SECRET_USAGE_TYPE_ISCSI;
username = iscsisrc->auth->username;
- if (!(secret = qemuGetSecretString(conn, protocol, encode,
- iscsisrc->auth, secretType)))
+ if (!(secret = virSecretGetSecretString(conn, protocol, encode,
+ iscsisrc->auth, secretType)))
goto cleanup;
}
diff --git a/src/secret/secret_util.c b/src/secret/secret_util.c
new file mode 100644
index 0000000..217584f
--- /dev/null
+++ b/src/secret/secret_util.c
@@ -0,0 +1,120 @@
+/*
+ * secret_util.c: secret related utility functions
+ *
+ * Copyright (C) 2016 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see
+ * <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#include <config.h>
+
+#include "secret_util.h"
+#include "viralloc.h"
+#include "virerror.h"
+#include "virlog.h"
+#include "virobject.h"
+#include "viruuid.h"
+#include "base64.h"
+#include "datatypes.h"
+
+#define VIR_FROM_THIS VIR_FROM_SECRET
+
+VIR_LOG_INIT("secret.secret_util");
+
+
+/* virSecretGetSecretString:
+ * @conn: Pointer to the connection driver to make secret driver call
+ * @scheme: Unique enough string for error message to help determine cause
+ * @encoded: Whether the returned secret needs to be base64 encoded
+ * @authdef: Pointer to the disk storage authentication
+ * @secretUsageType: Type of secret usage for authdef lookup
+ *
+ * Lookup the secret for the authdef usage type and return it either as
+ * raw text or encoded based on the caller's need.
+ *
+ * Returns a pointer to memory that needs to be cleared and free'd after
+ * usage or NULL on error.
+ */
+char *
+virSecretGetSecretString(virConnectPtr conn,
+ const char *scheme,
+ bool encoded,
+ virStorageAuthDefPtr authdef,
+ virSecretUsageType secretUsageType)
+{
+ size_t secret_size;
+ virSecretPtr sec = NULL;
+ char *secret = NULL;
+ char uuidStr[VIR_UUID_STRING_BUFLEN];
+
+ /* look up secret */
+ switch (authdef->secretType) {
+ case VIR_STORAGE_SECRET_TYPE_UUID:
+ sec = virSecretLookupByUUID(conn, authdef->secret.uuid);
+ virUUIDFormat(authdef->secret.uuid, uuidStr);
+ break;
+ case VIR_STORAGE_SECRET_TYPE_USAGE:
+ sec = virSecretLookupByUsage(conn, secretUsageType,
+ authdef->secret.usage);
+ break;
+ }
+
+ if (!sec) {
+ if (authdef->secretType == VIR_STORAGE_SECRET_TYPE_UUID) {
+ virReportError(VIR_ERR_NO_SECRET,
+ _("%s no secret matches uuid '%s'"),
+ scheme, uuidStr);
+ } else {
+ virReportError(VIR_ERR_NO_SECRET,
+ _("%s no secret matches usage value '%s'"),
+ scheme, authdef->secret.usage);
+ }
+ goto cleanup;
+ }
+
+ secret = (char *)conn->secretDriver->secretGetValue(sec, &secret_size, 0,
+ VIR_SECRET_GET_VALUE_INTERNAL_CALL);
+ if (!secret) {
+ if (authdef->secretType == VIR_STORAGE_SECRET_TYPE_UUID) {
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+ _("could not get value of the secret for "
+ "username '%s' using uuid '%s'"),
+ authdef->username, uuidStr);
+ } else {
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+ _("could not get value of the secret for "
+ "username '%s' using usage value '%s'"),
+ authdef->username, authdef->secret.usage);
+ }
+ goto cleanup;
+ }
+
+ if (encoded) {
+ char *base64 = NULL;
+
+ base64_encode_alloc(secret, secret_size, &base64);
+ VIR_FREE(secret);
+ if (!base64) {
+ virReportOOMError();
+ goto cleanup;
+ }
+ secret = base64;
+ }
+
+ cleanup:
+ virObjectUnref(sec);
+ return secret;
+}
diff --git a/src/secret/secret_util.h b/src/secret/secret_util.h
new file mode 100644
index 0000000..c707599
--- /dev/null
+++ b/src/secret/secret_util.h
@@ -0,0 +1,35 @@
+/*
+ * secret_util.h: secret related utility functions
+ *
+ * Copyright (C) 2016 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see
+ * <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#ifndef __VIR_SECRET_H__
+# define __VIR_SECRET_H__
+
+# include "internal.h"
+# include "virstoragefile.h"
+
+char *virSecretGetSecretString(virConnectPtr conn,
+ const char *scheme,
+ bool encoded,
+ virStorageAuthDefPtr authdef,
+ virSecretUsageType secretUsageType)
+ ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(4)
+ ATTRIBUTE_RETURN_CHECK;
+#endif /* __VIR_SECRET_H__ */
--
2.5.5
8 years, 7 months
[libvirt] [PATCH v5 0/6] storage:dir: ploop volumes support
by Olga Krishtal
This series of patches introduces the support of ploop volumes
in storage pools (dir, fs, etc).
Ploop volume is a disk loopback block device consists of root.hds
(it is the image file) and DiskDescriptor.xml:
https://openvz.org/Ploop/format. Due to this fact it can't be treated
as file or any other volume type, moreover, in order to successfully
manipulate with such volume, ploop tools should be installed.
All callbacks except the wipeVol are supported.
First patch introduces ploop volume type. This is a directory
with two files inside. The name of the directory is the name of the volume.
Patch 2 deals with creating an empty volume and cloning the existing one.
Clone is done via simle cp operation. If any of this operation fails -
directory will be deleted.
Patch 3 deletes recursively ploop directory.
Patch 4 uses ploop tool to resize volume.
Patch 6 adapts all refreshing functions to work with ploop. To get
information the directory is checked. The volume is treated as the
ploops one only if it contains ploop files. Every time the pool
is refreshed DiskDescriptor.xml is restored. This is necessary, because
the content of the volume may have changed.
Upload and download (patch 7) can't be done if the volume contains snapshots.
v5:
- added ploop volume type
- there is no change in opening volume functions. Now reopening takes place is
the volume is ploops one.
- restore DiskDescriptor.xml every refresh pool
- all information, except format is taken from header
- forbidden upload and download ops for volume with snapshots
- there is no separate function for deleting the volume
- fixed identation and leaks
v4:
- fixed identation issues.
- in case of .uploadVol, DiskDescriptor.xml is restored.
- added check of ploops'accessibility
v3:
- no VIR_STORAGE_VOL_PLOOP type any more
- adapted all patches according to previous change
- fixed comments
v2:
- fixed memory leak
- chenged the return value of all helper functions to 0/-1.
Now check for success is smth like that: vir****Ploop() < 0
- fixed some identation issues.
8 years, 7 months
[libvirt] [PATCH] virt-admin: get rid of LIBVIRT_DEFAULT_ADMIN_URI env var
by Ján Tomko
There is a LIBVIRT_ADMIN_DEFAULT_URI environment variable
which is honored by virAdmConnectOpen and documented
in the virt-admin man page.
LIBVIRT_DEFAULT_ADMIN_URI is undocumented and this is its
only occurrence.
---
tools/virt-admin.c | 4 ----
1 file changed, 4 deletions(-)
diff --git a/tools/virt-admin.c b/tools/virt-admin.c
index edb8690..f0a49a3 100644
--- a/tools/virt-admin.c
+++ b/tools/virt-admin.c
@@ -670,7 +670,6 @@ main(int argc, char **argv)
{
vshControl _ctl, *ctl = &_ctl;
vshAdmControl virtAdminCtl;
- const char *defaultConn;
bool ret = true;
memset(ctl, 0, sizeof(vshControl));
@@ -719,9 +718,6 @@ main(int argc, char **argv)
virFileActivateDirOverride(argv[0]);
- if ((defaultConn = virGetEnvBlockSUID("LIBVIRT_DEFAULT_ADMIN_URI")))
- ctl->connname = vshStrdup(ctl, defaultConn);
-
if (!vshInit(ctl, cmdGroups, NULL))
exit(EXIT_FAILURE);
--
2.4.10
8 years, 7 months
[libvirt] [PATCH 0/3] tools: virsh/virt-admin uri handling spring series 2016
by Ján Tomko
*** <____""/.a... ***
Ján Tomko (3):
tools: read default connection uri from env later
tools: remove unnecessary defaultConn variable
libvirt-admin: do not crash on URI without a scheme
src/libvirt-admin.c | 4 ++--
tools/virsh.c | 6 ++----
tools/virt-admin.c | 6 ++----
3 files changed, 6 insertions(+), 10 deletions(-)
--
2.4.10
8 years, 7 months
[libvirt] [PATCH] spec: Include KVM support on RHEL 7 ppc64 and newer
by Andrea Bolognani
---
Definitely not an expert on spec files, but I did a test build
on RHEL 7.2 ppc64le and it resulted in
libvirt-daemon-driver-qemu-1.3.3-1.el7.ppc64le.rpm
libvirt-daemon-kvm-1.3.3-1.el7.ppc64le.rpm
libvirt-lock-sanlock-1.3.3-1.el7.ppc64le.rpm
being built in addition to what was built even before, so it
looks reasonable I guess? Comments very welcome :)
libvirt.spec.in | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/libvirt.spec.in b/libvirt.spec.in
index 03e2438..fdea12a 100644
--- a/libvirt.spec.in
+++ b/libvirt.spec.in
@@ -77,7 +77,11 @@
%if 0%{?rhel}
%define with_qemu_tcg 0
- %define qemu_kvm_arches x86_64
+ %if 0%{?rhel} >= 7
+ %define qemu_kvm_arches x86_64 %{power64}
+ %else
+ %define qemu_kvm_arches x86_64
+ %endif
%endif
%ifarch %{qemu_kvm_arches}
--
2.5.0
8 years, 7 months
[libvirt] Release of libvirt-1.3.3
by Daniel Veillard
With a bit of delay the release is now out and git is open again,
I tagged the release in head, and pushed signed tarball and rpms to the
usual place:
ftp://libvirt.org/libvirt/
UI also tagged and pushed signed tarball and rpms for the python
bindings for 1.3.3 at:
ftp://libvirt.org/libvirt/python/
This is a rather large lreales with a lot of development and user
visible features. The majority of the nearly 400 commits are incremental
improvements (which may explain why stabilization for release took a little
longuer than usual), but there is a decent amount of bug fixes too!
Features:
- perf events (Qiaowei Ren)
- post-copy migration support (Cristian Klein, Jiri Denemark)
- NSS module (Michal Privoznik)
Documentation:
- docs: fix logfile paragraph (Boris Fiuczynski)
- docs: Remove useless p:first-line CSS rule (Andrea Bolognani)
- docs: Remove unused #sponsor CSS rule (Andrea Bolognani)
- docs: Make most headers a bit smaller (Andrea Bolognani)
- docs: Use bold text for all headers (Andrea Bolognani)
- docs: Don't use bold text for menu entries (Andrea Bolognani)
- docs: Make menu entries smaller (Andrea Bolognani)
- docs: Don't use <strong> in headers (Andrea Bolognani)
- docs: Remove empty CSS rule (Andrea Bolognani)
- docs: Adjust vertical whitespace in CSS (Andrea Bolognani)
- docs: fix qemu version for hyperv features (Pavel Hrdina)
- docs: Document NSS module (Michal Privoznik)
- docs: website: more header spacing tweaks (Cole Robinson)
- docs: Update the hyperv feature qemu supported version (John Ferlan)
- docs: generic.css: Indentation and spacing tweaks (Cole Robinson)
- docs: generic.css: font size tweaks (Cole Robinson)
- docs: generic.css: minor cleanups (Cole Robinson)
- docs: website: Remove the et.redhat.com footer (Cole Robinson)
- Fix minor typos (Yuri Chornoivan)
- docs: Clarify interface/target/@dev docs (Jiri Denemark)
Portability:
- build: workaround broken SASL header (again) (Fabiano Fidêncio)
- nss: FreeBSD support (Roman Bogorodskiy)
- perf: fix build on non-Linux (Roman Bogorodskiy)
- storage: rbd: Fix build (Peter Krempa)
- storage/rbd: Use correct printf-modifier for uint64 (Christophe Fergeau)
- tests: Produce predictable results in nsstest (Michal Privoznik)
- nss: don't try to build nss plugin when disabled (Roman Bogorodskiy)
- virlog: Fix build breaker with "comparison between signed and unsigned" (Erik Skultety)
- _virtualboxCreateMachine: Avoid unbounded stack (Michal Privoznik)
- datatypes.c: Replace 'close' with 'closeData' (Michal Privoznik)
- util: Fix build without polkit (Jiri Denemark)
Bug Fixes:
- qemu: Fix mis-merge of qemuBuildRedirdevCommandLine (John Ferlan)
- qemu: Fix mis-merge of qemuBuildConsoleCommandLine (John Ferlan)
- qemu: Fix mis-merge of qemuBuildChannelsCommandLine (John Ferlan)
- qemu: Fix mis-merge of qemuBuildParallelsCommandLine (John Ferlan)
- qemu: Fix mis-merge of qemuBuildSerialCommandLine (John Ferlan)
- qemu: Fix mis-merge of qemuBuildSmartcardCommandLine (John Ferlan)
- nodedev: Fix parsing of generated XMLs (Martin Kletzander)
- qemu: fix alias name for <interface type='hostdev'> (Laine Stump)
- qemu: Clear generated private paths (Martin Kletzander)
- apparmor: QEMU monitor socket moved (Guido Günther)
- Revert "hostdev: Use actual device when reattaching" (Andrea Bolognani)
- Pass the correct cpu count when calling virDomainGetCPUStats. (Nitesh Konkar)
- migration: convert speed from MiB/sec to bytes/sec in drive-mirror jobs (Rudy Zhang)
- libxl: fix net device detach (Jim Fehlig)
- libxl: fix attaching net device of type hostdev (Jim Fehlig)
- qemuProcessVerifyGuestCPU: Avoid coverity false positive (Michal Privoznik)
- virDomain{Get,Set}PerfEvents: support --config --live --current (Michal Privoznik)
- qemu: command: Pass numad nodeset when formatting memory devices at boot (Peter Krempa)
- libxl: only disable domain death events in libxlDomainCleanup (Jim Fehlig)
- libxl: fix resource leaks in libxlDomainStart error paths (Chunyan Liu)
- conf: decrease iterations complexity when formatting iothreads (Peter Krempa)
- qemu: Fix /proc/**/stat parsing (Jiri Denemark)
- bhyve: fix invalid hostsysinfo freeing (Maxim Nestratov)
- libxl: remove reference to non-existent out label (Jim Fehlig)
- util: avoid getting stuck on macvtapN name created outside libvirt (Laine Stump)
- libxl: fix hot add/remove VF from a pool (Chunyan Liu)
- tests: storagepoolxml2xmltest: Fix pool-rbd test (Anatole Denis)
- Revert "zfs: Only raw volumes are supported" (Roman Bogorodskiy)
- Revert "logical: Only raw volumes are supported" (Roman Bogorodskiy)
- network: differentiate macvtap/bridge from host-bridge based networks (Laine Stump)
- test: Fix typo in testutils.h header guard (Christophe Fergeau)
- virTestSetEnvPath: Avoid clearing out PATH (Michal Privoznik)
- admin_server: Avoid accessing unallocated memory (Michal Privoznik)
- testutils: Adapt to highly unlikely case (Michal Privoznik)
- tests: virlogtest: Fix testLogParseOutputs return value (Erik Skultety)
- admin_server: fix memory leak (Pavel Hrdina)
- qemu: Don't kill running migrated domain on daemon restart (Jiri Denemark)
- qemu: Don't add -spice port=0 when no port is specified (Christophe Fergeau)
- rpc: wait longer for session daemon to start up (Cole Robinson)
- qemu: Don't access uninitialized memory (Martin Kletzander)
- vz: fix active domain listing (Maxim Nestratov)
- qemuBuildVideoCommandLine: Don't access def->videos without check (Michal Privoznik)
- virt-admin: Don't leak uri in cmdSrvList (Martin Kletzander)
- daemon: Properly check for clients (Martin Kletzander)
- qemuxml2argvtest: Fix monitor path in serial-file-log (Jiri Denemark)
- qemu: support use of virtlogd with file based chardevs (Daniel P. Berrange)
- qemu: use virtlogd for character device log files (Daniel P. Berrange)
- qemu: cpu: Don't remove pinning of cold-unplugged cpu (Peter Krempa)
- qemu: Fix memory leak in qemuGetSchedInfo (Peter Krempa)
- conf: Fix off-by-one in virDomainDefGetVcpu (Peter Krempa)
- qemu: Fix a race when computing migration downtime (Jiri Denemark)
- qemu: rename: Forbid renaming domains with managed save image (Peter Krempa)
- virLXCProcessMonitorInitNotify: Initialize @inode (Michal Privoznik)
- tools: do not leak uri in disconnect handler (Ján Tomko)
- Initialize couple of variables. (Michal Privoznik)
- qemu: Check if domain is active in GetControlInfo (Jiri Denemark)
- daemon: fixup refcounting in close callback handling (Nikolay Shirokovskiy)
- util: Fix missing initializer for agent (John Ferlan)
- Libvirt: Add missing default value for config option max_queued_clients (Jason J. Herne)
- qemu: Don't always wait for SPICE to finish migration (Jiri Denemark)
- qemu: Don't try to fetch migration stats on destination (Jiri Denemark)
- close callback: make unregister clean after connect close event (Nikolay Shirokovskiy)
- virConnectCloseCallbackData: fix connection object refcount (Nikolay Shirokovskiy)
Improvements:
- network: Remove extraneous ATTRIBUTE_NONNULL (John Ferlan)
- qemu: change args to qemuAssignDeviceHostdevAlias() (Laine Stump)
- network: new function networkGetActualType (Laine Stump)
- qemu: Simplify calls to qemuDomainSetPrivatePaths (Martin Kletzander)
- qemu: perf: Tweak flags before using them (Peter Krempa)
- virPerfReadEvent: Prefer saferead over read (Michal Privoznik)
- remote: Add flags to remote_protocol-structs (Martin Kletzander)
- virDomain{Get,Set}PerfEvents: Grab job (Michal Privoznik)
- virsh: Make perf accept event list separated by commas (Michal Privoznik)
- virsh: Prefer VIRSH_COMMON_OPT_DOMAIN_FULL over full enumeration (Michal Privoznik)
- virDomain{Get,Set}PerfEvents: Add @flags argument (Michal Privoznik)
- remoteDomainGetPerfEvents: Re-indent (Michal Privoznik)
- qemu: command: Split up formatting of -numa and memory devices (Peter Krempa)
- qemu_process: add check for hyperv features (Pavel Hrdina)
- qemu_process: skip only cpu features (Pavel Hrdina)
- host-validate: Fix suggestion for missing cpu cgroup (Andrea Bolognani)
- libxl: rename cleanup_dom label (Jim Fehlig)
- conf: Remove now unused virDomainIOThreadIDMap (Peter Krempa)
- util: bitmap: Introduce self-expanding bitmap APIs (Peter Krempa)
- virsh: blockpull: Support --bytes and scaled integers (Peter Krempa)
- virsh: blockcopy: Support --bytes and scaled integers (Peter Krempa)
- virsh: blockcommit: Support --bytes and scaled integers (Peter Krempa)
- virsh: blockjob: Support --bytes and scaled integers as bandwidth (Peter Krempa)
- vsh: Introduce helper to parse --bandwidth (Peter Krempa)
- vsh: Refactor vshCommandOptScaledInt (Peter Krempa)
- vsh: Tweak error message for scaled integers (Peter Krempa)
- qemu: domain: Move and export qemuDomainDiskChainElement(Prepare|Revoke) (Peter Krempa)
- qemu: Refactor qemuDomainPrepareDiskChainElement (Peter Krempa)
- qemu: Split image access revoking from qemuDomainPrepareDiskChainElement (Peter Krempa)
- qemu: Kill qemuDiskPathToAlias (Peter Krempa)
- qemu: monitor: Remove JSON impls of drive_add and drive_del (Peter Krempa)
- qemu: monitor: Drop qemuMonitorAttachDrive and leaves in call tree (Peter Krempa)
- qemu: hotplug: Assume support for -device in qemuDomainAttachSCSIDisk (Peter Krempa)
- bhyve: cleanup unnecessary variables (Maxim Nestratov)
- virsh: extend domstats command (Qiaowei Ren)
- virsh: implement new command to support perf (Qiaowei Ren)
- perf: reenable perf events when libvirtd restart (Qiaowei Ren)
- perf: add new xml element (Qiaowei Ren)
- qemu_driver: add support to perf event (Qiaowei Ren)
- perf: implement a set of util functions for perf event (Qiaowei Ren)
- perf: implement the remote protocol for perf event (Qiaowei Ren)
- perf: add new public APIs for perf event (Qiaowei Ren)
- storage: Initialize pool size parameters for refresh thread (Nitesh Konkar)
- tests: virtnettlscontexttest: Use virGetLastErrorMessage() (Cole Robinson)
- conf: qemu: Add support for more HyperV Enlightenment features (Maxim Nestratov)
- conf: refactor hyperv features xml output (Nikolay Shirokovskiy)
- conf: refactor hyperv features parsing (Nikolay Shirokovskiy)
- tests: storagepoolxml2xmltest: Enable pool-rbd (Anatole Denis)
- libxlDomainDetachDeviceLive: handle hostdev parent is network device (Chunyan Liu)
- libxlDomainDetachNetDevice: cleanup codes (Chunyan Liu)
- libxlDomainAttachNetDevice: release actual deivce and remove hostdev when fail (Chunyan Liu)
- network: call proper start/stop functions for macvtap bridge-mode networks (Laine Stump)
- qemu: Replace some VIR_ERROR with vir*Error (Jovanka Gulicoska)
- qemu: Don't duplicate virGetLastErrorMessage (Jovanka Gulicoska)
- nsstest: Drop useless @data check (Michal Privoznik)
- virlog: Refactor virLogParseFilters (Erik Skultety)
- tests: Add new testcases to test parsing of log filters in virlogtest (Erik Skultety)
- gendispatch: Avoid comparing signed and unsigned vars (Michal Privoznik)
- event-test: Check for virConnectRegisterCloseCallback return value (Michal Privoznik)
- event-test: Use goto cleanup instead of if else jungle (Michal Privoznik)
- qemuxml2argvtest: Adapt to ethernet automatic tap creation (Michal Privoznik)
- remote: Fix error message (Cole Robinson)
- qemuxml2argv: Mock virSCSIDeviceGetSgName (Michal Privoznik)
- autocreate tap device for ethernet network type (Vasiliy Tolstov)
- tests: hostdev: Add more tests (Andrea Bolognani)
- hostdev: Use actual device when reattaching (Andrea Bolognani)
- hostdev: Save netdev configuration of actual device (Andrea Bolognani)
- hostdev: Streamline device ownership tracking (Andrea Bolognani)
- hostdev: Stop early if unmanaged devices have not been detached (Andrea Bolognani)
- hostdev: Detect untracked inactive devices (Andrea Bolognani)
- qemuxml2argvtest: cleanup test (Pavel Hrdina)
- qemuxml2argvtest: use driver.config and priv for qemuDomainSetPrivatePaths (Pavel Hrdina)
- qemu_driver: cleanup qemuConnectDomainXMLToNative (Pavel Hrdina)
- qemu_process: introduce qemuProcessCreatePretendCmd (Pavel Hrdina)
- qemu_process: move qemuDomainSetPrivatePaths to qemuProcessInit (Pavel Hrdina)
- qemu_process: move checks to qemuProcessStartValidate (Pavel Hrdina)
- qemu: update callers of qemuProcessStartValidate to use virDomainObjPtr (Pavel Hrdina)
- qemu_process: introduce qemuProcessPrepareHost (Pavel Hrdina)
- qemu_process: introduce qemuProcessPrepareDomain (Pavel Hrdina)
- tests: cleanup qemuxml2argvtest (Pavel Hrdina)
- nvram: generate it's path in qemuDomainDefPostParse (Pavel Hrdina)
- qemu_process: check for correct return value while starting domain (Pavel Hrdina)
- qemu-hotplug: fix eject media (Pavel Hrdina)
- nss: Make aligning look nicer (Martin Kletzander)
- tests: nodedevxml2xml: add test for SCSI target (Bjoern Walk)
- conf: node_device: fix up SCSI target (Bjoern Walk)
- libxl: support enabling and disabling <hap> feature (Jim Fehlig)
- Xen drivers: show hap enabled by default in capabilities (Jim Fehlig)
- xenconfig: change 'hap' setting to align with Xen behavior (Jim Fehlig)
- conf: add 'state' attribute to <hap> feature (Jim Fehlig)
- qemu: Add flags to qemuMigrationWaitForCompletion (Jiri Denemark)
- qemu: Refuse to abort migration in post-copy mode (Jiri Denemark)
- qemu: Handle post-copy migration failures (Jiri Denemark)
- qemu: Refactor qemuProcessRecoverMigration (Jiri Denemark)
- virsh: Add --postcopy-after-precopy option to migrate (Cristian Klein)
- virsh: Configurable migrate --timeout action (Jiri Denemark)
- virsh: Add support for post-copy migration (Cristian Klein)
- qemu: Implement virDomainMigrateStartPostCopy (Cristian Klein)
- qemu: Add support for VIR_MIGRATE_POSTCOPY flag (Cristian Klein)
- qemu: Add QMP functions for post-copy migration (Cristian Klein)
- qemu: Handle postcopy-active migration state (Jiri Denemark)
- Add public APIs for post-copy migration (Cristian Klein)
- Add event and state details for post-copy (Jiri Denemark)
- util: Add virSocketAddrSetIPv[46]AddrNetOrder and use it (Martin Kletzander)
- qemu: Omit SPICE address if no port is specified (Christophe Fergeau)
- qemu: Make all SPICE command-line args optional (Christophe Fergeau)
- zfs: Only unencrypted volumes are supported (Richard Laager)
- zfs: Only raw volumes are supported (Richard Laager)
- logical: Only raw volumes are supported (Richard Laager)
- storage: Improve code consistency between backends (Richard Laager)
- sheepdog: Use a consistent error message (Richard Laager)
- rbd: Use proper error type (Richard Laager)
- domain: Add virDomainDefAddImplicitDevices (Cole Robinson)
- bhyve: caps: Log error message when CPU init fails (Cole Robinson)
- domain: Remove controller/net address whitelists (Cole Robinson)
- nodedev: Expose PCI header type (Martin Kletzander)
- nodedev: Indent PCI express for future fix (Martin Kletzander)
- tests: Introduce nsslinktest (Michal Privoznik)
- nss: Introduce a test (Michal Privoznik)
- Implement _nss_libvirt_gethostbyname4_r (Michal Privoznik)
- nss: Implement _nss_libvirt_gethostbyname3_r (Michal Privoznik)
- libvirt.spec.in: Introduce libvirt-nss package (Michal Privoznik)
- Initial support for NSS plugin skeleton (Michal Privoznik)
- virsocketaddr: Introduce virSocketAddrSetIPv6Addr (Michal Privoznik)
- virLeaseReadCustomLeaseFile: Allow server_duid to be NULL (Michal Privoznik)
- Export virLease* functions for leases file handling (Michal Privoznik)
- tests: add schema test for default cache mode (Jim Fehlig)
- tests: add xlconfigdata to domainschematests (Jim Fehlig)
- conf: Format disk pool part_separator attribute for running pool (John Ferlan)
- qemu: Move last error save/restore to qemuBuildNetCommandLine (John Ferlan)
- tests: Set PATH in each test (Michal Privoznik)
- Drop paths.h include (Michal Privoznik)
- driver: log missing modules as INFO, not WARN (Jovanka Gulicoska)
- admin: Add virAdmConnectLookupServer (Martin Kletzander)
- qemu: implement setting target disks migration port (Nikolay Shirokovskiy)
- migration: add target peer disks port (Nikolay Shirokovskiy)
- docs: fix libvirt version for vram64 in formatdomain.html.in (Pavel Hrdina)
- vz: code refactoring (Mikhail Feoktistov)
- vz: set default SCSI model (Mikhail Feoktistov)
- vz: check supported controllers (Mikhail Feoktistov)
- vz: report correct disk format in domainGetXMLDesc (Mikhail Feoktistov)
- vz: move prlsdkCheckDiskUnsupportedParams to vz_utils.c (Maxim Nestratov)
- vz: check supported disk format and bus (Mikhail Feoktistov)
- vz: add vzCapabilities to connection structure (Mikhail Feoktistov)
- vz: save vz version in connection structure (Mikhail Feoktistov)
- virlog: Refactor virLogParseOutputs (Erik Skultety)
- virlog: Introduce Type{To,From}String for virLogDestination (Erik Skultety)
- tests: Add a new test for logging outputs parser (Erik Skultety)
- tests: Slightly tweak virlogtest (Erik Skultety)
- nodedev: Shorten match condition (Martin Kletzander)
- qemu: Don't overwrite DomainSave errors (Cole Robinson)
- qemuDomainRevertToSnapshot: save domain configuration (Dmitry Andreev)
- Introduce new VIR_DOMAIN_EVENT_DEFINED_FROM_SNAPSHOT sub-event (Dmitry Andreev)
- qemu: Introduce qemuBuildPanicCommandLine (John Ferlan)
- qemu: Introduce qemuBuildNVRAMCommandLine (John Ferlan)
- qemu: Introduce qemuBuildRNGCommandLine (John Ferlan)
- qemu: Introduce qemuBuildMemballoonCommandLine (John Ferlan)
- qemu: Introduce qemuBuildHostdevCommandLine (John Ferlan)
- qemu: Introduce qemuBuildRedirdevCommandLine (John Ferlan)
- qemu: Introduce qemuBuildWatchdogCommandLine (John Ferlan)
- qemu: Introduce qemuBuildSoundCommandLine (John Ferlan)
- hostdev: Add more comments (Andrea Bolognani)
- hostdev: Use consistent variable names (Andrea Bolognani)
- hostdev: Remove virHostdevGetActivePCIHostDeviceList() (Andrea Bolognani)
- schema: support 'default' cache mode (Jim Fehlig)
- hostdev: Rename usesVfio -> usesVFIO (Andrea Bolognani)
- hostdev: Rename hostdev_mgr -> mgr (Andrea Bolognani)
- hostdev: Look up devices using IDs when possible (Andrea Bolognani)
- hostdev: Change argument order for virHostdevReattachPCIDevice() (Andrea Bolognani)
- hostdev: virHostdevIsPCINetDevice() should return a bool (Andrea Bolognani)
- hostdev: Rework resetvfnetconfig loop condition (Andrea Bolognani)
- qemu: Introduce qemuBuildVideoCommandLine (John Ferlan)
- qemu: Introduce qemuBuildInputCommandLine (John Ferlan)
- qemu: Modify qemuBuildTPMCommandLine (John Ferlan)
- qemu: Introduce qemuBuildConsoleCommandLine (John Ferlan)
- qemu: Introduce qemuBuildChannelsCommandLine (John Ferlan)
- qemu: Introduce qemuBuildParallelsCommandLine (John Ferlan)
- qemu: Introduce qemuBuildSerialCommandLine (John Ferlan)
- qemu: Introduce qemuBuildSmartcardCommandLine (John Ferlan)
- gendispatch: Use proper error for limit checking (Martin Kletzander)
- virt-admin: Don't tell everyone needlessly we're connected (Martin Kletzander)
- remote: Generate what's possible (Martin Kletzander)
- gendispatch: Support modern listing of more types (Martin Kletzander)
- gendispatch: Remember the name of snapshot variable name (Martin Kletzander)
- gendispatch: Accept server as an argument (Martin Kletzander)
- admin: Generate ConnectListServers dispatch helpers (Martin Kletzander)
- gendispatch: Be able to generate multi-return values (Martin Kletzander)
- gendispatch: Cluster, don't capture if not needed (Martin Kletzander)
- admin: Be consistent when resetting errors (Martin Kletzander)
- admin: Don't use priority for admin APIs (Martin Kletzander)
- Change virNetDaemonGetServerNames to virNetDaemonGetServers (Martin Kletzander)
- admin: Do not work with virAdm on the server side (Martin Kletzander)
- Expose virNetServerGetName (Martin Kletzander)
- daemon: Set error for unknown server name (Martin Kletzander)
- virerror: Introduce new error type NO_SERVER (Martin Kletzander)
- daemon: Get server name from the server itself (Martin Kletzander)
- server: Store server name in server object (Martin Kletzander)
- admin: Check for flags properly (Martin Kletzander)
- admin: Make virAdmServerFree() handle NULL gracefully (Martin Kletzander)
- qemu: Introduce qemuBuildNetCommandLine (John Ferlan)
- qemu: Introduce qemuBuildFSDevCommandLine (John Ferlan)
- qemu: Introduce qemuBuildDiskDriveCommandLine (John Ferlan)
- qemu: Introduce qemuBuildHubCommandLine (John Ferlan)
- qemu: Introduce qemuBuildControllerDevCommandLine (John Ferlan)
- qemu: Introduce qemuBuildGlobalControllerCommandLine (John Ferlan)
- qemu: Introduce qemuBuildBootCommandLine (John Ferlan)
- qemu: Introduce qemuBuildPMCommandLine (John Ferlan)
- qemu: Introduce qemuBuildClockCommandLine (John Ferlan)
- qemu: enable debug threads (Marc-André Lureau)
- qemu: check for debug-threads capability (Marc-André Lureau)
- libxl_conf: reuse virDomainNetGetActualtype in libxlMakeNicList (Chunyan Liu)
- logging: support truncation of logfiles when opening (Daniel P. Berrange)
- qemu: move functions for handling FD passing (Daniel P. Berrange)
- qemu: don't append -chardev arg until after value is formatted (Daniel P. Berrange)
- qemu: add support for logging chardev output to a file (Daniel P. Berrange)
- conf: allow use of a logfile with chardev backends (Daniel P. Berrange)
- logging: allow inode/offset params to be NULL (Daniel P. Berrange)
- qemu: Refactor bitmap handling in qemuDomainPinVcpuFlags (Peter Krempa)
- qemu: vcpupin: Extract live vcpupin setting into a separate function (Peter Krempa)
- util: virfile: Only setuid for virFileRemove if on NFS (Cole Robinson)
- util: virfile: Clarify setuid usage for virFileRemove (Cole Robinson)
- qemu: add support for offline vcpupin (Peter Krempa)
- conf: extract ignoring of inactive vcpu pinning information (Peter Krempa)
- conf: refactor checking for unsupported memory devices (Peter Krempa)
- conf: introduce parser feature flags (Peter Krempa)
- qemu: Report pinning for all vCPUs in qemuDomainGetVcpuPinInfo (Peter Krempa)
- conf: Extract code filling data for virDomainGetVcpuPinInfo (Peter Krempa)
- virsh: vcpupin: Ask for pinning info for all vCPUs (Peter Krempa)
- qemu: Add support for job completed event (Jiri Denemark)
- Introduce job completed event (Jiri Denemark)
- qemu: Do not report completed stats until the job finishes (Jiri Denemark)
- qemu: Don't explicitly stop CPUs after migration (Jiri Denemark)
- qemu: Properly update completed migration stats (Jiri Denemark)
- qemu: Store completed stats at the very end of migration (Jiri Denemark)
- hostdev: Remove explicit NULL checks (Andrea Bolognani)
- hostdev: Fix indentation (Andrea Bolognani)
- hostdev: Remove inaccurate comment (Andrea Bolognani)
- hostdev: Make comments easier to change later (Andrea Bolognani)
- tests: hostdev: Group test cases (Andrea Bolognani)
- tests: hostdev: Add more checks on list size (Andrea Bolognani)
- tests: hostdev: Use size_t for count variables (Andrea Bolognani)
- tests: hostdev: Move variable declaration inside CHECK_LIST_COUNT() (Andrea Bolognani)
- tests: hostdev: Use better variable names (Andrea Bolognani)
- tests: hostdev: Remove magic numbers (Andrea Bolognani)
- Add secretObjFromSecret (John Ferlan)
- locking: Use bit shift for flag values not constant values. (John Ferlan)
- qemu: improve the error when try to undefine transient network (Shanzhi Yu)
- libxl: reuse virDomainObjUpdateModificationImpact (Nikolay Shirokovskiy)
- lxc: reuse virDomainObjUpdateModificationImpact (Nikolay Shirokovskiy)
- libxl: Use virDomainLiveConfigHelperMethod for libxlDomainSetMemoryFlags (Nikolay Shirokovskiy)
- Drop inline keyword from some functions. (Michal Privoznik)
- Use correct LDFLAGS for leaseshelper (Jiri Denemark)
- util: Cleanup error path for virPolkitAgentCreate (John Ferlan)
- libxl: Remove extraneous AFFECT_LIVE and not active check. (Nikolay Shirokovskiy)
- conf: Combine if condition in virDomainObjUpdateModificationImpact (Nikolay Shirokovskiy)
- qemu: enalbe hotplugging of macvtap device with multiqueue (Shanzhi Yu)
- Fix formatting in remote_protocol-structs (Jiri Denemark)
- Implement handling of per-domain bandwidth settings (Alexander Burluka)
- Implement qemuSetupGlobalCpuCgroup (Alexander Burluka)
- Add global_period and global_quota XML validation test (Alexander Burluka)
- Add error checking on global quota and period (Alexander Burluka)
- Add global quota parameter necessary definitions (Alexander Burluka)
- Add global period definitions (Alexander Burluka)
- vz: implement connection close notification (Nikolay Shirokovskiy)
- daemon: add connection close rpc (Nikolay Shirokovskiy)
- remote: factor out feature checks on connection open (Nikolay Shirokovskiy)
- close callback: move it to driver (Nikolay Shirokovskiy)
- virConnectCloseCallbackDataDispose: remove unnecessary locks (Nikolay Shirokovskiy)
- close callback API: remove unnecessary locks (Nikolay Shirokovskiy)
- virConnectCloseCallbackData: factor out callback disarming (Nikolay Shirokovskiy)
- factor out virConnectCloseCallbackDataPtr methods (Nikolay Shirokovskiy)
- qemu_cgroup: use virCgroupAddTask instead of virCgroupMoveTask (Henning Schild)
- qemu_cgroup: put qemu right into emulator sub-cgroup (Henning Schild)
- qemu: process: Move emulator thread setting code into one function (Peter Krempa)
- qemu: introduce vram64 attribute for QXL video device (Pavel Hrdina)
- qemu_capabilities: introduce QEMU_CAPS_QXL(_VGA)_VRAM64 (Pavel Hrdina)
- docs/formatdomain: rewrite video documentation (Pavel Hrdina)
- domain_conf: always set primary video device as primary (Pavel Hrdina)
- virsh: Add support for text based polkit authentication (John Ferlan)
- util: Introduce API's for Polkit text authentication (John Ferlan)
- polkit: Adjust message when authentication agent isn't found (John Ferlan)
- secret: Rename loadSecrets (John Ferlan)
- secret: Introduce secretAssignDef (John Ferlan)
- secret: Introduce listUnlinkSecret (John Ferlan)
- secret: Create a 'base64File' in virSecretObj (John Ferlan)
- secret: Create a 'configFile' in virSecretObj (John Ferlan)
- secret: Adjust logic to build file path in secretLoad (John Ferlan)
- secret: Rename directory to configDir (John Ferlan)
- secret: Use 'secret' instead of 's' for variable name (John Ferlan)
- secret: Rename virSecretObjPtr 'entry' to 'secret' (John Ferlan)
- secret: Remove local virSecretPtr 'secret' (John Ferlan)
- secret: Rename virSecretEntry (John Ferlan)
- secret: Use virFileRewrite instead of replaceFile (John Ferlan)
- secret: Various formatting cleanups (John Ferlan)
- vircgroup: one central point for adding tasks to cgroups (Henning Schild)
- qemu: Allow setting pinning of emulator/iohtread with automatic placement (Peter Krempa)
- qemu: add spice opengl support (Marc-André Lureau)
- Post-release version bump to 1.3.3 (Michal Privoznik)
- qemu: Shorten per-domain directory names (Martin Kletzander)
So thanks a lot for those efforts getting all this in the 1.3.3 release,
whether that was contribution on ideas, documentation, patches, reviews, etc.
there is a lot packed in this month version !
Enjoy !
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/
8 years, 7 months
[libvirt] [PATCH 0/2] boot order storage/parsing cleanup
by Peter Krempa
Few patches that I have laying around.
Peter Krempa (2):
conf: Pass the whole device info struct to virDomainDeviceBootParseXML
conf: store bootindex as unsigned int
src/bhyve/bhyve_command.c | 3 +--
src/conf/domain_conf.c | 19 +++++++++----------
src/conf/domain_conf.h | 2 +-
src/qemu/qemu_command.c | 40 +++++++++++++++++++++-------------------
src/qemu/qemu_command.h | 6 +++---
src/qemu/qemu_driver.c | 2 +-
6 files changed, 36 insertions(+), 36 deletions(-)
--
2.8.0
8 years, 7 months