[libvirt] [PATCH 0/5] vbox: remove extra spaces
by Ján Tomko
Ján Tomko (5):
vbox: remove extra spaces from macro definitions
vbox: remove extra spaces from variable initializations
vbox: remove extra spaces from assignments
vbox: remove extra spaces from function headers
vbox: remove more extra spaces
src/vbox/vbox_V2_2.c | 4 +-
src/vbox/vbox_V3_0.c | 4 +-
src/vbox/vbox_V3_1.c | 4 +-
src/vbox/vbox_V3_2.c | 4 +-
src/vbox/vbox_V4_0.c | 4 +-
src/vbox/vbox_V4_1.c | 4 +-
src/vbox/vbox_V4_2.c | 4 +-
src/vbox/vbox_V4_2_20.c | 4 +-
src/vbox/vbox_V4_3.c | 4 +-
src/vbox/vbox_V4_3_4.c | 4 +-
src/vbox/vbox_XPCOMCGlue.c | 6 +-
src/vbox/vbox_common.c | 317 +++++++++++++++++++++---------------------
src/vbox/vbox_common.h | 4 +-
src/vbox/vbox_snapshot_conf.c | 4 +-
src/vbox/vbox_storage.c | 2 +-
src/vbox/vbox_tmpl.c | 187 ++++++++++++-------------
src/vbox/vbox_uniformed_api.h | 2 +-
17 files changed, 282 insertions(+), 280 deletions(-)
--
2.4.10
8 years, 10 months
[libvirt] [PATCH v5] qemu: Connect to guest agent iff needed
by Michal Privoznik
https://bugzilla.redhat.com/show_bug.cgi?id=1293351
Since we already have virtio channel events, we know when guest
agent within guest has (dis-)connected. Instead of us blindly
connecting to a socket that no one is listening to, we can just
follow what qemu-ga does. This has a nice benefit that we don't
need to 'guest-ping' the agent just to timeout and find out
nobody is listening.
The way that this commit is implemented:
- don't connect in qemuProcessLaunch directly, defer that to event
callback (which already follows the agent) -
processSerialChangedEvent
- after migration is settled, before we resume vCPUs, ask qemu
whether somebody is listening on the socket and if so, connect
to it.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
diff to v4:
- drop asking qemu in qemuConnectAgent; in most cases we were asking twice.
Rather put explicit virtio channel querying into places that were missing it
anyway.
- Move qemuConnectAgent in qemuProcessReconnect() *after* we have refreshed
channel states.
src/qemu/qemu_migration.c | 15 +++++++++++++++
src/qemu/qemu_process.c | 39 ++++++++++++++++++++++++---------------
src/qemu/qemu_process.h | 2 ++
3 files changed, 41 insertions(+), 15 deletions(-)
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index 51e7125..3493d0b 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -5795,6 +5795,7 @@ qemuMigrationFinish(virQEMUDriverPtr driver,
unsigned short port;
unsigned long long timeReceived = 0;
virObjectEventPtr event;
+ int rc;
VIR_DEBUG("driver=%p, dconn=%p, vm=%p, cookiein=%s, cookieinlen=%d, "
"cookieout=%p, cookieoutlen=%p, flags=%lx, retcode=%d",
@@ -5863,6 +5864,20 @@ qemuMigrationFinish(virQEMUDriverPtr driver,
if (qemuMigrationStopNBDServer(driver, vm, mig) < 0)
goto endjob;
+ if (qemuRefreshVirtioChannelState(driver, vm) < 0)
+ goto endjob;
+
+ if ((rc = qemuConnectAgent(driver, vm)) < 0) {
+ if (rc == -2)
+ goto endjob;
+
+ VIR_WARN("Cannot connect to QEMU guest agent for %s",
+ vm->def->name);
+ virResetLastError();
+ priv->agentError = true;
+ }
+
+
if (flags & VIR_MIGRATE_PERSIST_DEST) {
if (qemuMigrationPersist(driver, vm, mig, !v3proto) < 0) {
/* Hmpf. Migration was successful, but making it persistent
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index ee94d3f..b063035 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -208,6 +208,15 @@ qemuConnectAgent(virQEMUDriverPtr driver, virDomainObjPtr vm)
if (!config)
return 0;
+ if (priv->agent)
+ return 0;
+
+ if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_VSERPORT_CHANGE) &&
+ config->state != VIR_DOMAIN_CHR_DEVICE_STATE_CONNECTED) {
+ VIR_DEBUG("Deferring connecting to guest agent");
+ return 0;
+ }
+
if (virSecurityManagerSetDaemonSocketLabel(driver->securityManager,
vm->def) < 0) {
VIR_ERROR(_("Failed to set security context for agent for %s"),
@@ -1887,9 +1896,9 @@ qemuProcessRefreshChannelVirtioState(virQEMUDriverPtr driver,
}
-static int
-qemuProcessReconnectRefreshChannelVirtioState(virQEMUDriverPtr driver,
- virDomainObjPtr vm)
+int
+qemuRefreshVirtioChannelState(virQEMUDriverPtr driver,
+ virDomainObjPtr vm)
{
qemuDomainObjPrivatePtr priv = vm->privateData;
virHashTablePtr info = NULL;
@@ -3567,17 +3576,6 @@ qemuProcessReconnect(void *opaque)
if (qemuConnectMonitor(driver, obj, QEMU_ASYNC_JOB_NONE, NULL) < 0)
goto error;
- /* Failure to connect to agent shouldn't be fatal */
- if ((ret = qemuConnectAgent(driver, obj)) < 0) {
- if (ret == -2)
- goto error;
-
- VIR_WARN("Cannot connect to QEMU guest agent for %s",
- obj->def->name);
- virResetLastError();
- priv->agentError = true;
- }
-
if (qemuHostdevUpdateActiveDomainDevices(driver, obj->def) < 0)
goto error;
@@ -3664,7 +3662,7 @@ qemuProcessReconnect(void *opaque)
if (qemuDomainCheckEjectableMedia(driver, obj, QEMU_ASYNC_JOB_NONE) < 0)
goto error;
- if (qemuProcessReconnectRefreshChannelVirtioState(driver, obj) < 0)
+ if (qemuRefreshVirtioChannelState(driver, obj) < 0)
goto error;
if (qemuProcessRefreshBalloonState(driver, obj, QEMU_ASYNC_JOB_NONE) < 0)
@@ -3676,6 +3674,17 @@ qemuProcessReconnect(void *opaque)
if (qemuProcessUpdateDevices(driver, obj) < 0)
goto error;
+ /* Failure to connect to agent shouldn't be fatal */
+ if ((ret = qemuConnectAgent(driver, obj)) < 0) {
+ if (ret == -2)
+ goto error;
+
+ VIR_WARN("Cannot connect to QEMU guest agent for %s",
+ obj->def->name);
+ virResetLastError();
+ priv->agentError = true;
+ }
+
/* update domain state XML with possibly updated state in virDomainObj */
if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, obj) < 0)
goto error;
diff --git a/src/qemu/qemu_process.h b/src/qemu/qemu_process.h
index cb5cee1..48e5632 100644
--- a/src/qemu/qemu_process.h
+++ b/src/qemu/qemu_process.h
@@ -153,4 +153,6 @@ virDomainDiskDefPtr qemuProcessFindDomainDiskByAlias(virDomainObjPtr vm,
int qemuConnectAgent(virQEMUDriverPtr driver, virDomainObjPtr vm);
+int qemuRefreshVirtioChannelState(virQEMUDriverPtr driver,
+ virDomainObjPtr vm);
#endif /* __QEMU_PROCESS_H__ */
--
2.4.10
8 years, 10 months
[libvirt] [PATCH v2 0/3] Check return status for virDomainGraphicsListenSetAddress
by John Ferlan
v1: http://www.redhat.com/archives/libvir-list/2016-February/msg00428.html
Adjustments since v1:
* Implement suggestions - created qemuParseCommandLineVnc to handle the
alloc/free of the 'vnc'... Note: Difference in refactored code is to
use of "cleanup" instead of "error" and "ret = -1" initializer.
* Modify the virDomainGraphicsListenSetAddress, to have one call instead
of two... adjusting the 'val' based on whether find '[' in first char
* Split out the qemuParseCommandLine{String|Pid} functions into their own
module along with all the collateral damage that causes. Pared down the
list of #includes for new modules by build trial and error.
John Ferlan (3):
qemu: Introduce qemuParseCommandLineVnc
qemu: Check return status for virDomainGraphicsListenSetAddress
qemu: Split the command parsing routines into own module
po/POTFILES.in | 1 +
src/Makefile.am | 1 +
src/qemu/qemu_command.c | 2703 ----------------------------------------
src/qemu/qemu_command.h | 28 +-
src/qemu/qemu_domain.c | 3 +-
src/qemu/qemu_driver.c | 1 +
src/qemu/qemu_monitor_json.c | 3 +-
src/qemu/qemu_parse_command.c | 2744 +++++++++++++++++++++++++++++++++++++++++
src/qemu/qemu_parse_command.h | 53 +
tests/qemuargv2xmltest.c | 2 +-
10 files changed, 2807 insertions(+), 2732 deletions(-)
create mode 100644 src/qemu/qemu_parse_command.c
create mode 100644 src/qemu/qemu_parse_command.h
--
2.5.0
8 years, 10 months
[libvirt] [PATCH] tests: Don't link mock libraries against libvirt and gnulib
by Andrea Bolognani
Mock libraries are used with LD_PRELOAD from test binaries that
are already linked against those libraries, so they will be able
to resolve the symbols anyway.
---
tests/Makefile.am | 6 ------
1 file changed, 6 deletions(-)
diff --git a/tests/Makefile.am b/tests/Makefile.am
index c5986f0..fb862cd 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -946,7 +946,6 @@ virnetserverclientmock_la_SOURCES = \
virnetserverclientmock.c
virnetserverclientmock_la_CFLAGS = $(AM_CFLAGS)
virnetserverclientmock_la_LDFLAGS = $(MOCKLIBS_LDFLAGS)
-virnetserverclientmock_la_LIBADD = $(GNULIB_LIBS)
if WITH_GNUTLS
virnettlscontexttest_SOURCES = \
@@ -1025,7 +1024,6 @@ libvirportallocatormock_la_SOURCES = \
virportallocatortest.c
libvirportallocatormock_la_CFLAGS = $(AM_CFLAGS) -DMOCK_HELPER=1
libvirportallocatormock_la_LDFLAGS = $(MOCKLIBS_LDFLAGS)
-libvirportallocatormock_la_LIBADD = ../src/libvirt.la
vircgrouptest_SOURCES = \
vircgrouptest.c testutils.h testutils.c
@@ -1051,8 +1049,6 @@ virpcitest_LDADD = $(LDADDS)
virpcimock_la_SOURCES = \
virpcimock.c
virpcimock_la_CFLAGS = $(AM_CFLAGS)
-virpcimock_la_LIBADD = $(GNULIB_LIBS) \
- ../src/libvirt.la
virpcimock_la_LDFLAGS = $(MOCKLIBS_LDFLAGS)
nodeinfomock_la_SOURCES = \
@@ -1068,8 +1064,6 @@ virnetdevtest_LDADD = $(LDADDS)
virnetdevmock_la_SOURCES = \
virnetdevmock.c
virnetdevmock_la_CFLAGS = $(AM_CFLAGS) $(LIBNL_CFLAGS)
-virnetdevmock_la_LIBADD = $(GNULIB_LIBS) \
- ../src/libvirt.la
virnetdevmock_la_LDFLAGS = $(MOCKLIBS_LDFLAGS)
virrotatingfiletest_SOURCES = \
--
2.5.0
8 years, 10 months
[libvirt] [PATCH v3 0/6] storage:dir: ploop volumes support
by Olga Krishtal
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, 10 months
[libvirt] [PATCH 0/2] Couple of coverity fixes
by Michal Privoznik
It was brought to my attention that coverity spotted couple of defects. Here
are the fixes.
Michal Privoznik (2):
xenconfig: Properly check retval of virDomainGraphicsListenSetAddress
virDomainFormatSchedDef: Check @schedMap bounds
src/conf/domain_conf.c | 21 +++++++++++----------
src/xenconfig/xen_sxpr.c | 4 ++--
2 files changed, 13 insertions(+), 12 deletions(-)
--
2.4.10
8 years, 10 months
[libvirt] [PATCH v2 0/6] tests: qemu: unconditionally enable QEMU_CAPS_DEVICE
by Cole Robinson
First series is here:
https://www.redhat.com/archives/libvir-list/2016-January/msg01233.html
This series does two main things: it conditionally enables QEMU_CAPS_DEVICE
in the test suite (since that's all we support nowadays), and it
unconditionally calls qemuDomainAssignAddresses for qemuxml2xml testing,
since that's the only realistic XML parsing scenario in the qemu driver.
The first 3 patches have been committed, but there's still a couple
big churn patches in here but the actual code changes are small.
v2:
Remove accidentally squashed bits from patch #1
Rebase to master
Cole Robinson (6):
tests: qemuxml2argv: remove some QEMU_CAPS_DEVICE problem cases
tests: Unconditionally enable QEMU_CAPS_DEVICE
tests: qemuxml2xml: Allow test cases to pass in qemuCaps
tests: utils: Add PreFormat callback for CompareXML2XML helper
tests: qemuxml2xml: assign device addresses
tests: qemu: More aarch64 virtio and pci tests
tests/bhyvexml2xmltest.c | 3 +-
tests/genericxml2xmltest.c | 3 +-
tests/lxcxml2xmltest.c | 3 +-
...> qemuxml2argv-aarch64-virtio-pci-default.args} | 0
...=> qemuxml2argv-aarch64-virtio-pci-default.xml} | 0
...2argv-aarch64-virtio-pci-manual-addresses.args} | 0
...l2argv-aarch64-virtio-pci-manual-addresses.xml} | 0
.../qemuxml2argv-blkiotune-device.args | 8 +-
tests/qemuxml2argvdata/qemuxml2argv-blkiotune.args | 8 +-
.../qemuxml2argvdata/qemuxml2argv-boot-cdrom.args | 7 +-
.../qemuxml2argvdata/qemuxml2argv-boot-floppy.args | 10 +-
.../qemuxml2argv-boot-menu-disable.args | 8 +-
.../qemuxml2argvdata/qemuxml2argv-boot-multi.args | 8 +-
.../qemuxml2argv-boot-network.args | 7 +-
.../qemuxml2argv-clock-catchup.args | 8 +-
.../qemuxml2argv-clock-france.args | 8 +-
.../qemuxml2argv-clock-hpet-off.args | 8 +-
...muxml2argv-clock-localtime-basis-localtime.args | 8 +-
.../qemuxml2argv-clock-localtime.args | 7 +-
.../qemuxml2argv-clock-timer-hyperv-rtc.args | 5 +-
tests/qemuxml2argvdata/qemuxml2argv-clock-utc.args | 8 +-
.../qemuxml2argv-clock-variable.args | 8 +-
.../qemuxml2argv-console-compat-auto.args | 7 +-
.../qemuxml2argv-console-compat.args | 8 +-
.../qemuxml2argv-cpu-Haswell-noTSX.args | 5 +-
.../qemuxml2argvdata/qemuxml2argv-cpu-Haswell.args | 5 +-
.../qemuxml2argv-cpu-Haswell2.args | 5 +-
.../qemuxml2argv-cpu-Haswell3.args | 5 +-
.../qemuxml2argv-cpu-eoi-disabled.args | 5 +-
.../qemuxml2argv-cpu-eoi-enabled.args | 5 +-
.../qemuxml2argvdata/qemuxml2argv-cpu-exact1.args | 5 +-
.../qemuxml2argv-cpu-exact2-nofallback.args | 5 +-
.../qemuxml2argvdata/qemuxml2argv-cpu-exact2.args | 5 +-
.../qemuxml2argv-cpu-fallback.args | 5 +-
.../qemuxml2argv-cpu-host-kvmclock.args | 5 +-
.../qemuxml2argv-cpu-host-model-fallback.args | 5 +-
.../qemuxml2argv-cpu-host-model-vendor.args | 5 +-
.../qemuxml2argv-cpu-host-model.args | 5 +-
...qemuxml2argv-cpu-host-passthrough-features.args | 8 +-
.../qemuxml2argv-cpu-host-passthrough.args | 5 +-
.../qemuxml2argv-cpu-kvmclock.args | 5 +-
.../qemuxml2argv-cpu-minimum1.args | 5 +-
.../qemuxml2argv-cpu-minimum2.args | 5 +-
.../qemuxml2argv-cpu-numa-disjoint.args | 5 +-
.../qemuxml2argv-cpu-numa-no-memory-element.args | 5 +-
tests/qemuxml2argvdata/qemuxml2argv-cpu-numa1.args | 5 +-
tests/qemuxml2argvdata/qemuxml2argv-cpu-numa2.args | 5 +-
.../qemuxml2argvdata/qemuxml2argv-cpu-strict1.args | 5 +-
.../qemuxml2argv-cpu-topology1.args | 5 +-
.../qemuxml2argv-cpu-topology2.args | 5 +-
.../qemuxml2argv-cpu-topology3.args | 5 +-
.../qemuxml2argv-cputune-numatune.args | 7 +-
.../qemuxml2argv-cputune-numatune.xml | 12 +-
.../qemuxml2argv-cputune-zero-shares.args | 8 +-
tests/qemuxml2argvdata/qemuxml2argv-cputune.args | 8 +-
.../qemuxml2argv-default-kvm-host-arch.args | 5 +-
.../qemuxml2argv-default-qemu-host-arch.args | 5 +-
tests/qemuxml2argvdata/qemuxml2argv-disk-aio.args | 15 +-
.../qemuxml2argv-disk-cdrom-empty.args | 10 +-
...qemuxml2argv-disk-cdrom-tray-no-device-cap.args | 11 +-
.../qemuxml2argvdata/qemuxml2argv-disk-cdrom.args | 10 +-
.../qemuxml2argv-disk-drive-boot-cdrom.args | 11 +-
.../qemuxml2argv-disk-drive-boot-disk.args | 11 +-
.../qemuxml2argv-disk-drive-cache-directsync.args | 11 +-
.../qemuxml2argv-disk-drive-cache-unsafe.args | 12 +-
.../qemuxml2argv-disk-drive-cache-v2-none.args | 12 +-
.../qemuxml2argv-disk-drive-cache-v2-wb.args | 11 +-
.../qemuxml2argv-disk-drive-cache-v2-wt.args | 11 +-
.../qemuxml2argv-disk-drive-copy-on-read.args | 8 +-
...uxml2argv-disk-drive-error-policy-enospace.args | 13 +-
.../qemuxml2argv-disk-drive-error-policy-stop.args | 13 +-
...gv-disk-drive-error-policy-wreport-rignore.args | 13 +-
.../qemuxml2argv-disk-drive-fat.args | 8 +-
.../qemuxml2argv-disk-drive-fmt-qcow.args | 11 +-
.../qemuxml2argv-disk-drive-network-gluster.args | 13 +-
...qemuxml2argv-disk-drive-network-iscsi-auth.args | 12 +-
.../qemuxml2argv-disk-drive-network-iscsi.args | 14 +-
...qemuxml2argv-disk-drive-network-nbd-export.args | 12 +-
...ml2argv-disk-drive-network-nbd-ipv6-export.args | 11 +-
.../qemuxml2argv-disk-drive-network-nbd-ipv6.args | 11 +-
.../qemuxml2argv-disk-drive-network-nbd-unix.args | 12 +-
.../qemuxml2argv-disk-drive-network-nbd.args | 11 +-
.../qemuxml2argv-disk-drive-network-rbd-auth.args | 11 +-
.../qemuxml2argv-disk-drive-network-rbd-ipv6.args | 11 +-
.../qemuxml2argv-disk-drive-network-rbd.args | 26 +-
.../qemuxml2argv-disk-drive-network-sheepdog.args | 12 +-
...qemuxml2argv-disk-drive-readonly-no-device.args | 13 +-
.../qemuxml2argv-disk-drive-shared.args | 12 +-
...emuxml2argv-disk-floppy-tray-no-device-cap.args | 14 +-
.../qemuxml2argvdata/qemuxml2argv-disk-floppy.args | 13 +-
.../qemuxml2argv-disk-geometry.args | 10 +-
.../qemuxml2argvdata/qemuxml2argv-disk-iscsi.args | 7 +-
tests/qemuxml2argvdata/qemuxml2argv-disk-many.args | 16 +-
.../qemuxml2argv-disk-snapshot.args | 17 +-
.../qemuxml2argv-disk-usb-nosupport.xml} | 0
tests/qemuxml2argvdata/qemuxml2argv-disk-usb.args | 23 -
.../qemuxml2argvdata/qemuxml2argv-disk-virtio.args | 19 +-
.../qemuxml2argvdata/qemuxml2argv-disk-xenvbd.args | 13 +-
.../qemuxml2argv-eoi-disabled.args | 5 +-
.../qemuxml2argvdata/qemuxml2argv-eoi-enabled.args | 5 +-
.../qemuxml2argv-fips-enabled.args | 8 +-
.../qemuxml2argv-floppy-drive-fat.args | 8 +-
.../qemuxml2argv-graphics-sdl-fullscreen.args | 7 +-
.../qemuxml2argv-graphics-sdl.args | 7 +-
.../qemuxml2argv-graphics-vnc-policy.args | 7 +-
.../qemuxml2argv-graphics-vnc-sasl.args | 7 +-
.../qemuxml2argv-graphics-vnc-socket.args | 7 +-
.../qemuxml2argv-graphics-vnc-tls.args | 7 +-
.../qemuxml2argv-graphics-vnc-websocket.args | 4 +-
.../qemuxml2argv-graphics-vnc.args | 7 +-
.../qemuxml2argv-hostdev-pci-address.args | 9 +-
.../qemuxml2argv-hostdev-usb-address.args | 9 +-
.../qemuxml2argv-hugepages-pages.args | 8 +-
.../qemuxml2argv-hugepages-pages2.args | 8 +-
.../qemuxml2argv-hugepages-pages3.args | 8 +-
.../qemuxml2argv-hugepages-pages5.args | 8 +-
.../qemuxml2argv-hugepages-pages6.args | 8 +-
.../qemuxml2argv-hugepages-shared.args | 8 +-
tests/qemuxml2argvdata/qemuxml2argv-hugepages.args | 8 +-
.../qemuxml2argvdata/qemuxml2argv-hyperv-off.args | 5 +-
.../qemuxml2argv-hyperv-panic.args | 6 +-
tests/qemuxml2argvdata/qemuxml2argv-hyperv.args | 6 +-
.../qemuxml2argv-input-usbmouse.args | 9 +-
.../qemuxml2argv-input-usbtablet.args | 9 +-
.../qemuxml2argv-iothreads-ids-partial.args | 7 +-
.../qemuxml2argv-iothreads-ids.args | 7 +-
tests/qemuxml2argvdata/qemuxml2argv-iothreads.args | 7 +-
.../qemuxml2argv-kvm-features-off.args | 5 +-
.../qemuxml2argv-kvm-features.args | 6 +-
.../qemuxml2argv-kvm-pit-delay.args | 8 +-
.../qemuxml2argv-kvm-pit-device.args | 8 +-
tests/qemuxml2argvdata/qemuxml2argv-kvm.args | 6 +-
.../qemuxml2argv-kvmclock+eoi-disabled.args | 5 +-
tests/qemuxml2argvdata/qemuxml2argv-kvmclock.args | 6 +-
.../qemuxml2argv-machine-aliases1.args | 8 +-
.../qemuxml2argv-machine-aliases2.args | 8 +-
.../qemuxml2argv-machine-core-off.args | 7 +-
.../qemuxml2argv-machine-core-on.args | 7 +-
.../qemuxml2argv-machine-usb-opt.args | 8 +-
.../qemuxml2argv-machine-vmport-opt.args | 8 +-
.../qemuxml2argv-memory-hotplug.args | 8 +-
.../qemuxml2argv-memtune-unlimited.args | 8 +-
tests/qemuxml2argvdata/qemuxml2argv-memtune.args | 8 +-
.../qemuxml2argv-migrate-numa-unaligned.args | 7 +-
tests/qemuxml2argvdata/qemuxml2argv-migrate.args | 7 +-
.../qemuxml2argv-minimal-msg-timestamp.args | 8 +-
.../qemuxml2argv-minimal-s390.args | 21 -
.../qemuxml2argvdata/qemuxml2argv-minimal-s390.xml | 21 -
tests/qemuxml2argvdata/qemuxml2argv-minimal.args | 8 +-
tests/qemuxml2argvdata/qemuxml2argv-misc-acpi.args | 7 +-
.../qemuxml2argv-misc-disable-s3.args | 7 +-
.../qemuxml2argv-misc-disable-suspends.args | 7 +-
.../qemuxml2argv-misc-enable-s4.args | 7 +-
.../qemuxml2argv-misc-no-reboot.args | 7 +-
tests/qemuxml2argvdata/qemuxml2argv-misc-uuid.args | 7 +-
tests/qemuxml2argvdata/qemuxml2argv-mlock-off.args | 6 +-
tests/qemuxml2argvdata/qemuxml2argv-mlock-on.args | 6 +-
.../qemuxml2argv-mlock-unsupported.args | 6 +-
.../qemuxml2argvdata/qemuxml2argv-net-client.args | 9 +-
.../qemuxml2argv-net-eth-ifname.args | 10 +-
.../qemuxml2argv-net-eth-names.args | 11 +-
tests/qemuxml2argvdata/qemuxml2argv-net-eth.args | 10 +-
tests/qemuxml2argvdata/qemuxml2argv-net-mcast.args | 9 +-
.../qemuxml2argvdata/qemuxml2argv-net-server.args | 9 +-
tests/qemuxml2argvdata/qemuxml2argv-net-udp.args | 9 +-
tests/qemuxml2argvdata/qemuxml2argv-net-user.args | 10 +-
.../qemuxml2argvdata/qemuxml2argv-net-virtio.args | 10 +-
.../qemuxml2argv-nographics-vga.args | 8 +-
.../qemuxml2argvdata/qemuxml2argv-nographics.args | 8 +-
.../qemuxml2argv-nosharepages.args | 7 +-
...qemuxml2argv-numad-auto-memory-vcpu-cpuset.args | 8 +-
...d-auto-memory-vcpu-no-cpuset-and-placement.args | 8 +-
...muxml2argv-numad-auto-vcpu-static-numatune.args | 8 +-
...qemuxml2argv-numad-static-memory-auto-vcpu.args | 8 +-
tests/qemuxml2argvdata/qemuxml2argv-numad.args | 8 +-
...qemuxml2argv-numatune-auto-nodeset-invalid.args | 8 +-
.../qemuxml2argv-numatune-auto-prefer.args | 5 +-
.../qemuxml2argv-numatune-memnode-no-memory.args | 5 +-
.../qemuxml2argv-numatune-memnode.args | 5 +-
.../qemuxml2argv-numatune-memory.args | 8 +-
.../qemuxml2argv-parallel-tcp.args | 6 +-
.../qemuxml2argv-pmu-feature-off.args | 6 +-
.../qemuxml2argvdata/qemuxml2argv-pmu-feature.args | 6 +-
tests/qemuxml2argvdata/qemuxml2argv-ppc-dtb.args | 4 +-
.../qemuxml2argv-pseries-nvram.args | 4 +-
.../qemuxml2argv-pv-spinlock-disabled.args | 5 +-
.../qemuxml2argv-pv-spinlock-enabled.args | 5 +-
.../qemuxml2argv-qemu-ns-commandline-ns0.args | 8 +-
.../qemuxml2argv-qemu-ns-commandline-ns1.args | 8 +-
.../qemuxml2argv-qemu-ns-commandline.args | 8 +-
...emuxml2argv-qemu-ns-domain-commandline-ns0.args | 8 +-
.../qemuxml2argv-qemu-ns-domain-commandline.args | 8 +-
.../qemuxml2argv-qemu-ns-domain-ns0.args | 8 +-
.../qemuxml2argv-qemu-ns-no-env.args | 7 +-
tests/qemuxml2argvdata/qemuxml2argv-qemu-ns.args | 8 +-
.../qemuxml2argv-reboot-timeout-disabled.args | 6 +-
.../qemuxml2argv-reboot-timeout-enabled.args | 6 +-
.../qemuxml2argv-restore-v2-fd.args | 10 +-
.../qemuxml2argvdata/qemuxml2argv-restore-v2.args | 7 +-
.../qemuxml2argv-seclabel-dac-none.args | 8 +-
.../qemuxml2argv-seclabel-dynamic-baselabel.args | 8 +-
.../qemuxml2argv-seclabel-dynamic-labelskip.args | 8 +-
.../qemuxml2argv-seclabel-dynamic-override.args | 11 +-
.../qemuxml2argv-seclabel-dynamic-relabel.args | 8 +-
.../qemuxml2argv-seclabel-dynamic.args | 8 +-
.../qemuxml2argv-seclabel-none.args | 8 +-
.../qemuxml2argv-seclabel-static-labelskip.args | 8 +-
.../qemuxml2argv-seclabel-static-relabel.args | 8 +-
.../qemuxml2argv-seclabel-static.args | 8 +-
.../qemuxml2argvdata/qemuxml2argv-serial-dev.args | 8 +-
.../qemuxml2argvdata/qemuxml2argv-serial-file.args | 8 +-
.../qemuxml2argvdata/qemuxml2argv-serial-many.args | 8 +-
.../qemuxml2argvdata/qemuxml2argv-serial-pty.args | 8 +-
.../qemuxml2argv-serial-spiceport-nospice.args | 8 +-
.../qemuxml2argv-serial-tcp-telnet.args | 8 +-
.../qemuxml2argvdata/qemuxml2argv-serial-tcp.args | 8 +-
.../qemuxml2argvdata/qemuxml2argv-serial-udp.args | 8 +-
.../qemuxml2argvdata/qemuxml2argv-serial-unix.args | 8 +-
tests/qemuxml2argvdata/qemuxml2argv-serial-vc.args | 8 +-
tests/qemuxml2argvdata/qemuxml2argv-smbios.args | 8 +-
tests/qemuxml2argvdata/qemuxml2argv-smp.args | 7 +-
tests/qemuxml2argvdata/qemuxml2argv-sound.args | 12 +-
.../qemuxml2argv-video-qxl-nodevice.args | 14 +-
.../qemuxml2argv-video-vga-nodevice.args | 12 +-
.../qemuxml2argv-watchdog-dump.args | 12 +-
.../qemuxml2argv-watchdog-injectnmi.args | 12 +-
tests/qemuxml2argvdata/qemuxml2argv-watchdog.args | 9 +-
tests/qemuxml2argvtest.c | 582 ++++++++++-----------
.../qemuxml2xmlout-aarch64-aavmf-virtio-mmio.xml | 6 +-
.../qemuxml2xmlout-aarch64-virtio-pci-default.xml | 69 +++
...2xmlout-aarch64-virtio-pci-manual-addresses.xml | 53 ++
.../qemuxml2xmlout-balloon-device-auto.xml | 12 +-
.../qemuxml2xmlout-balloon-device-period.xml | 8 +-
.../qemuxml2xmlout-bios-nvram-os-interleave.xml | 12 +-
.../qemuxml2xmlout-bios-nvram.xml | 12 +-
.../qemuxml2xmlout-blkdeviotune.xml | 12 +-
.../qemuxml2xmlout-blkiotune-device.xml | 12 +-
.../qemuxml2xmlout-blkiotune.xml | 12 +-
.../qemuxml2xmlout-boot-cdrom.xml | 8 +-
.../qemuxml2xmlout-boot-floppy.xml | 8 +-
...muxml2xmlout-boot-menu-disable-with-timeout.xml | 12 +-
.../qemuxml2xmlout-boot-menu-disable.xml | 12 +-
...emuxml2xmlout-boot-menu-enable-with-timeout.xml | 12 +-
.../qemuxml2xmlout-boot-multi.xml | 12 +-
.../qemuxml2xmlout-boot-network.xml | 8 +-
.../qemuxml2xmlout-boot-order.xml | 14 +-
.../qemuxml2xmlout-channel-guestfwd.xml | 12 +-
.../qemuxml2xmlout-channel-virtio-auto.xml | 29 +-
.../qemuxml2xmlout-channel-virtio-state-active.xml | 12 +-
...emuxml2xmlout-channel-virtio-state-inactive.xml | 12 +-
.../qemuxml2xmlout-channel-virtio.xml | 12 +-
.../qemuxml2xmlout-chardev-label.xml | 13 +-
.../qemuxml2xmlout-clock-catchup.xml | 12 +-
.../qemuxml2xmlout-clock-localtime.xml | 8 +-
.../qemuxml2xmlout-clock-timer-hyperv-rtc.xml | 8 +-
.../qemuxml2xmlout-clock-utc.xml | 8 +-
.../qemuxml2xmlout-console-compat-auto.xml | 12 +-
.../qemuxml2xmlout-console-compat.xml | 8 +-
.../qemuxml2xmlout-console-compat2.xml | 12 +-
.../qemuxml2xmlout-console-virtio-many.xml | 16 +-
.../qemuxml2xmlout-console-virtio.xml | 16 +-
.../qemuxml2xmlout-controller-usb-order.xml | 4 +-
.../qemuxml2xmlout-cpu-empty.xml | 8 +-
.../qemuxml2xmlout-cpu-eoi-disabled.xml | 8 +-
.../qemuxml2xmlout-cpu-eoi-enabled.xml | 8 +-
.../qemuxml2xmlout-cpu-host-kvmclock.xml | 8 +-
.../qemuxml2xmlout-cpu-host-model-features.xml | 12 +-
...emuxml2xmlout-cpu-host-passthrough-features.xml | 12 +-
.../qemuxml2xmlout-cpu-kvmclock.xml | 8 +-
.../qemuxml2xmlout-cpu-numa-disjoint.xml | 8 +-
.../qemuxml2xmlout-cpu-numa-disordered.xml | 8 +-
.../qemuxml2xmlout-cpu-numa-memshared.xml | 8 +-
.../qemuxml2xmlout-cpu-numa-no-memory-element.xml | 8 +-
.../qemuxml2xmlout-cpu-numa1.xml | 8 +-
.../qemuxml2xmlout-cpu-numa2.xml | 8 +-
.../qemuxml2xmlout-cputune-iothreads.xml | 12 +-
...l2xmlout-cputune-iothreadsched-zeropriority.xml | 12 +-
.../qemuxml2xmlout-cputune-iothreadsched.xml | 12 +-
.../qemuxml2xmlout-cputune-numatune.xml | 14 +-
.../qemuxml2xmlout-cputune-zero-shares.xml | 12 +-
.../qemuxml2xmloutdata/qemuxml2xmlout-cputune.xml | 12 +-
.../qemuxml2xmlout-default-kvm-host-arch.xml | 8 +-
.../qemuxml2xmlout-default-qemu-host-arch.xml | 8 +-
.../qemuxml2xmlout-disk-active-commit.xml | 12 +-
.../qemuxml2xmloutdata/qemuxml2xmlout-disk-aio.xml | 12 +-
.../qemuxml2xmlout-disk-backing-chains-active.xml | 13 +-
...qemuxml2xmlout-disk-backing-chains-inactive.xml | 13 +-
.../qemuxml2xmlout-disk-cdrom-empty.xml | 8 +-
.../qemuxml2xmlout-disk-cdrom.xml | 8 +-
.../qemuxml2xmlout-disk-copy_on_read.xml | 13 +-
.../qemuxml2xmlout-disk-drive-boot-cdrom.xml | 8 +-
.../qemuxml2xmlout-disk-drive-boot-disk.xml | 8 +-
.../qemuxml2xmlout-disk-drive-cache-directsync.xml | 8 +-
.../qemuxml2xmlout-disk-drive-cache-unsafe.xml | 8 +-
.../qemuxml2xmlout-disk-drive-cache-v2-none.xml | 8 +-
.../qemuxml2xmlout-disk-drive-cache-v2-wb.xml | 8 +-
.../qemuxml2xmlout-disk-drive-cache-v2-wt.xml | 8 +-
.../qemuxml2xmlout-disk-drive-copy-on-read.xml | 12 +-
.../qemuxml2xmlout-disk-drive-discard.xml | 12 +-
...xml2xmlout-disk-drive-error-policy-enospace.xml | 8 +-
...qemuxml2xmlout-disk-drive-error-policy-stop.xml | 8 +-
...out-disk-drive-error-policy-wreport-rignore.xml | 8 +-
.../qemuxml2xmlout-disk-drive-fat.xml | 12 +-
.../qemuxml2xmlout-disk-drive-fmt-qcow.xml | 8 +-
.../qemuxml2xmlout-disk-drive-network-gluster.xml | 6 +-
...emuxml2xmlout-disk-drive-network-iscsi-auth.xml | 6 +-
.../qemuxml2xmlout-disk-drive-network-iscsi.xml | 6 +-
...emuxml2xmlout-disk-drive-network-nbd-export.xml | 9 +-
...l2xmlout-disk-drive-network-nbd-ipv6-export.xml | 9 +-
.../qemuxml2xmlout-disk-drive-network-nbd-ipv6.xml | 9 +-
.../qemuxml2xmlout-disk-drive-network-nbd-unix.xml | 9 +-
.../qemuxml2xmlout-disk-drive-network-nbd.xml | 9 +-
.../qemuxml2xmlout-disk-drive-network-rbd-auth.xml | 9 +-
...uxml2xmlout-disk-drive-network-rbd-ceph-env.xml | 9 +-
.../qemuxml2xmlout-disk-drive-network-rbd-ipv6.xml | 9 +-
.../qemuxml2xmlout-disk-drive-network-rbd.xml | 12 +-
.../qemuxml2xmlout-disk-drive-network-sheepdog.xml | 9 +-
.../qemuxml2xmlout-disk-floppy.xml | 8 +-
.../qemuxml2xmlout-disk-many.xml | 8 +-
.../qemuxml2xmlout-disk-mirror-active.xml | 14 +-
.../qemuxml2xmlout-disk-mirror-inactive.xml | 14 +-
.../qemuxml2xmlout-disk-mirror-old-inactive.xml | 14 +-
.../qemuxml2xmlout-disk-mirror-old.xml | 14 +-
.../qemuxml2xmlout-disk-scsi-device-auto.xml | 16 +-
.../qemuxml2xmlout-disk-scsi-device.xml | 16 +-
.../qemuxml2xmlout-disk-scsi-disk-vpd.xml | 16 +-
...muxml2xmlout-disk-scsi-lun-passthrough-sgio.xml | 16 +-
.../qemuxml2xmlout-disk-scsi-megasas.xml | 16 +-
.../qemuxml2xmlout-disk-scsi-virtio-scsi.xml | 16 +-
.../qemuxml2xmlout-disk-scsi-vscsi.xml | 16 +-
.../qemuxml2xmlout-disk-source-pool-mode.xml | 12 +-
.../qemuxml2xmlout-disk-source-pool.xml | 12 +-
.../qemuxml2xmlout-disk-usb-device.xml} | 14 +-
...qemuxml2xmlout-disk-virtio-scsi-cmd_per_lun.xml | 9 +-
.../qemuxml2xmlout-disk-virtio-scsi-ioeventfd.xml | 9 +-
...qemuxml2xmlout-disk-virtio-scsi-max_sectors.xml | 9 +-
.../qemuxml2xmlout-disk-virtio-scsi-num_queues.xml | 9 +-
.../qemuxml2xmlout-disk-virtio.xml | 10 +-
.../qemuxml2xmlout-disk-xenvbd.xml | 8 +-
.../qemuxml2xmlout-encrypted-disk.xml | 8 +-
.../qemuxml2xmlout-eoi-disabled.xml | 8 +-
.../qemuxml2xmlout-eoi-enabled.xml | 8 +-
.../qemuxml2xmlout-event_idx.xml | 13 +-
.../qemuxml2xmlout-floppy-drive-fat.xml | 12 +-
.../qemuxml2xmlout-graphics-listen-network.xml | 13 +-
.../qemuxml2xmlout-graphics-listen-network2.xml | 13 +-
.../qemuxml2xmlout-graphics-sdl-fullscreen.xml | 9 +-
.../qemuxml2xmlout-graphics-sdl.xml | 9 +-
.../qemuxml2xmlout-graphics-spice-compression.xml | 14 +-
.../qemuxml2xmlout-graphics-spice-qxl-vga.xml | 14 +-
.../qemuxml2xmlout-graphics-spice-timeout.xml | 4 +-
.../qemuxml2xmlout-graphics-spice.xml | 14 +-
.../qemuxml2xmlout-graphics-vnc-sasl.xml | 9 +-
.../qemuxml2xmlout-graphics-vnc-tls.xml | 9 +-
.../qemuxml2xmlout-graphics-vnc-websocket.xml | 5 +-
.../qemuxml2xmlout-graphics-vnc.xml | 9 +-
.../qemuxml2xmlout-hostdev-pci-address.xml | 9 +-
...qemuxml2xmlout-hostdev-scsi-autogen-address.xml | 20 +-
.../qemuxml2xmlout-hostdev-scsi-large-unit.xml | 16 +-
.../qemuxml2xmlout-hostdev-scsi-lsi-iscsi-auth.xml | 16 +-
.../qemuxml2xmlout-hostdev-scsi-lsi-iscsi.xml | 16 +-
.../qemuxml2xmlout-hostdev-scsi-lsi.xml | 16 +-
.../qemuxml2xmlout-hostdev-scsi-rawio.xml | 16 +-
.../qemuxml2xmlout-hostdev-scsi-readonly.xml | 16 +-
.../qemuxml2xmlout-hostdev-scsi-sgio.xml | 16 +-
.../qemuxml2xmlout-hostdev-scsi-shareable.xml | 16 +-
...muxml2xmlout-hostdev-scsi-virtio-iscsi-auth.xml | 16 +-
.../qemuxml2xmlout-hostdev-scsi-virtio-iscsi.xml | 16 +-
.../qemuxml2xmlout-hostdev-scsi-virtio-scsi.xml | 16 +-
.../qemuxml2xmlout-hostdev-usb-address.xml | 8 +-
.../qemuxml2xmlout-hostdev-vfio.xml | 13 +-
.../qemuxml2xmlout-hugepages-pages.xml | 12 +-
.../qemuxml2xmlout-hugepages-pages2.xml | 12 +-
.../qemuxml2xmlout-hugepages-pages3.xml | 12 +-
.../qemuxml2xmlout-hugepages-shared.xml | 12 +-
.../qemuxml2xmlout-hugepages.xml | 12 +-
.../qemuxml2xmlout-hyperv-off.xml | 8 +-
.../qemuxml2xmlout-hyperv-panic.xml | 4 +-
tests/qemuxml2xmloutdata/qemuxml2xmlout-hyperv.xml | 4 +-
.../qemuxml2xmlout-input-usbmouse.xml | 8 +-
.../qemuxml2xmlout-input-usbtablet.xml | 8 +-
.../qemuxml2xmlout-interface-driver.xml | 13 +-
.../qemuxml2xmlout-iothreads-disk-virtio-ccw.xml | 1 +
.../qemuxml2xmlout-iothreads-disk.xml | 9 +-
.../qemuxml2xmlout-iothreads-ids-partial.xml | 8 +-
.../qemuxml2xmlout-iothreads-ids.xml | 8 +-
.../qemuxml2xmlout-iothreads.xml | 8 +-
.../qemuxml2xmlout-kvm-features-off.xml | 8 +-
.../qemuxml2xmlout-kvm-features.xml | 4 +-
.../qemuxml2xmloutdata/qemuxml2xmlout-kvmclock.xml | 4 +-
tests/qemuxml2xmloutdata/qemuxml2xmlout-lease.xml | 12 +-
.../qemuxml2xmlout-machine-core-off.xml | 8 +-
.../qemuxml2xmlout-machine-core-on.xml | 8 +-
.../qemuxml2xmlout-memory-hotplug-dimm.xml | 12 +-
.../qemuxml2xmlout-memory-hotplug-nonuma.xml | 8 +-
.../qemuxml2xmlout-memory-hotplug.xml | 12 +-
.../qemuxml2xmlout-memtune-unlimited.xml | 12 +-
.../qemuxml2xmloutdata/qemuxml2xmlout-memtune.xml | 12 +-
.../qemuxml2xmlout-metadata-duplicate.xml | 12 +-
.../qemuxml2xmloutdata/qemuxml2xmlout-metadata.xml | 12 +-
.../qemuxml2xmloutdata/qemuxml2xmlout-migrate.xml | 8 +-
.../qemuxml2xmloutdata/qemuxml2xmlout-minimal.xml | 12 +-
.../qemuxml2xmlout-misc-acpi.xml | 8 +-
.../qemuxml2xmlout-misc-disable-s3.xml | 8 +-
.../qemuxml2xmlout-misc-disable-suspends.xml | 8 +-
.../qemuxml2xmlout-misc-enable-s4.xml | 8 +-
.../qemuxml2xmlout-misc-no-reboot.xml | 8 +-
.../qemuxml2xmlout-misc-uuid.xml | 8 +-
.../qemuxml2xmlout-net-bandwidth.xml | 4 +-
.../qemuxml2xmlout-net-bandwidth2.xml | 4 +-
.../qemuxml2xmlout-net-eth-ifname.xml | 9 +-
.../qemuxml2xmloutdata/qemuxml2xmlout-net-eth.xml | 9 +-
.../qemuxml2xmlout-net-hostdev-vfio.xml | 13 +-
.../qemuxml2xmlout-net-hostdev.xml | 13 +-
.../qemuxml2xmlout-net-midonet.xml | 13 +-
.../qemuxml2xmlout-net-openvswitch.xml | 13 +-
.../qemuxml2xmloutdata/qemuxml2xmlout-net-udp.xml | 13 +-
.../qemuxml2xmloutdata/qemuxml2xmlout-net-user.xml | 9 +-
.../qemuxml2xmlout-net-vhostuser.xml | 11 +-
.../qemuxml2xmlout-net-virtio-device.xml | 13 +-
.../qemuxml2xmlout-net-virtio-disable-offloads.xml | 13 +-
...qemuxml2xmlout-net-virtio-network-portgroup.xml | 15 +-
.../qemuxml2xmlout-net-virtio.xml | 9 +-
.../qemuxml2xmlout-nographics-vga.xml | 8 +-
.../qemuxml2xmlout-nosharepages.xml | 8 +-
...emuxml2xmlout-numad-auto-memory-vcpu-cpuset.xml | 12 +-
...ad-auto-memory-vcpu-no-cpuset-and-placement.xml | 12 +-
.../qemuxml2xmlout-numad-auto-vcpu-no-numatune.xml | 12 +-
...emuxml2xmlout-numad-static-vcpu-no-numatune.xml | 12 +-
.../qemuxml2xmlout-numatune-auto-prefer.xml | 8 +-
.../qemuxml2xmlout-numatune-memnode-no-memory.xml | 8 +-
.../qemuxml2xmlout-numatune-memnode.xml | 8 +-
.../qemuxml2xmlout-panic-double.xml | 4 +-
.../qemuxml2xmlout-panic-isa.xml | 12 +-
.../qemuxml2xmlout-panic-no-address.xml | 12 +-
.../qemuxml2xmlout-panic-pseries.xml | 8 +-
tests/qemuxml2xmloutdata/qemuxml2xmlout-panic.xml | 12 +-
.../qemuxml2xmlout-parallel-tcp.xml | 8 +-
.../qemuxml2xmlout-pci-autoadd-addr.xml | 35 ++
.../qemuxml2xmlout-pci-autoadd-idx.xml | 41 +-
.../qemuxml2xmlout-pci-bridge-many-disks.xml | 124 ++++-
.../qemuxml2xmlout-pci-bridge.xml | 44 +-
.../qemuxml2xmloutdata/qemuxml2xmlout-pci-rom.xml | 16 +-
.../qemuxml2xmlout-pci-serial-dev-chardev.xml | 12 +-
.../qemuxml2xmlout-pcie-root-port-too-many.xml | 62 ---
.../qemuxml2xmlout-pcie-root-port.xml | 23 +-
.../qemuxml2xmlout-pcie-root.xml | 15 +-
.../qemuxml2xmlout-pcie-switch-downstream-port.xml | 69 ++-
.../qemuxml2xmlout-pcie-switch-upstream-port.xml | 34 +-
.../qemuxml2xmlout-pcihole64-gib.xml | 8 +-
.../qemuxml2xmlout-pcihole64-none.xml | 8 +-
.../qemuxml2xmlout-pcihole64-q35.xml | 16 +-
.../qemuxml2xmlout-pcihole64.xml | 8 +-
.../qemuxml2xmlout-pmu-feature-off.xml | 4 +-
.../qemuxml2xmlout-pmu-feature.xml | 4 +-
.../qemuxml2xmlout-pseries-nvram.xml | 4 +-
.../qemuxml2xmlout-pseries-panic-missing.xml | 8 +-
.../qemuxml2xmlout-pseries-panic-no-address.xml | 8 +-
.../qemuxml2xmlout-pv-spinlock-disabled.xml | 8 +-
.../qemuxml2xmlout-pv-spinlock-enabled.xml | 8 +-
.../qemuxml2xmlout-q35-usb2-multi.xml | 28 +-
.../qemuxml2xmlout-q35-usb2-reorder.xml | 28 +-
.../qemuxml2xmloutdata/qemuxml2xmlout-q35-usb2.xml | 14 +-
tests/qemuxml2xmloutdata/qemuxml2xmlout-q35.xml | 22 +-
.../qemuxml2xmlout-qemu-ns-no-env.xml | 8 +-
.../qemuxml2xmlout-reboot-timeout-disabled.xml | 4 +-
.../qemuxml2xmlout-reboot-timeout-enabled.xml | 4 +-
.../qemuxml2xmlout-restore-v2.xml | 8 +-
.../qemuxml2xmlout-s390-defaultconsole.xml | 3 +-
.../qemuxml2xmlout-seclabel-dac-none.xml | 12 +-
.../qemuxml2xmlout-seclabel-device-multiple.xml | 12 +-
.../qemuxml2xmlout-seclabel-dynamic-baselabel.xml | 12 +-
.../qemuxml2xmlout-seclabel-dynamic-labelskip.xml | 12 +-
.../qemuxml2xmlout-seclabel-dynamic-none.xml | 12 +-
.../qemuxml2xmlout-seclabel-dynamic-override.xml | 12 +-
.../qemuxml2xmlout-seclabel-dynamic-relabel.xml | 12 +-
.../qemuxml2xmlout-seclabel-none.xml | 12 +-
.../qemuxml2xmlout-seclabel-static-labelskip.xml | 12 +-
.../qemuxml2xmlout-seclabel-static.xml | 12 +-
.../qemuxml2xmlout-serial-dev.xml | 8 +-
.../qemuxml2xmlout-serial-file.xml | 8 +-
.../qemuxml2xmlout-serial-many.xml | 8 +-
.../qemuxml2xmlout-serial-pty.xml | 8 +-
.../qemuxml2xmlout-serial-spiceport-nospice.xml | 12 +-
.../qemuxml2xmlout-serial-spiceport.xml | 13 +-
.../qemuxml2xmlout-serial-target-port-auto.xml | 12 +-
.../qemuxml2xmlout-serial-tcp-telnet.xml | 8 +-
.../qemuxml2xmlout-serial-tcp.xml | 8 +-
.../qemuxml2xmlout-serial-udp.xml | 8 +-
.../qemuxml2xmlout-serial-unix.xml | 8 +-
.../qemuxml2xmlout-serial-vc.xml | 8 +-
tests/qemuxml2xmloutdata/qemuxml2xmlout-shmem.xml | 14 +-
.../qemuxml2xmlout-smbios-multiple-type2.xml | 12 +-
tests/qemuxml2xmloutdata/qemuxml2xmlout-smbios.xml | 12 +-
tests/qemuxml2xmloutdata/qemuxml2xmlout-smp.xml | 8 +-
.../qemuxml2xmlout-sound-device.xml | 30 +-
tests/qemuxml2xmloutdata/qemuxml2xmlout-sound.xml | 16 +-
.../qemuxml2xmlout-tap-vhost-incorrect.xml | 14 +-
.../qemuxml2xmlout-tap-vhost.xml | 13 +-
.../qemuxml2xmlout-tpm-passthrough.xml | 8 +-
.../qemuxml2xmlout-usb-ich9-ehci-addr.xml | 25 +-
.../qemuxml2xmlout-usb-redir-filter-version.xml | 8 +-
.../qemuxml2xmlout-usb-redir-filter.xml | 4 +-
.../qemuxml2xmlout-usb-redir.xml | 4 +-
.../qemuxml2xmlout-vcpu-placement-static.xml | 3 +
.../qemuxml2xmlout-vhost_queues.xml | 13 +-
.../qemuxml2xmlout-video-virtio-gpu-device.xml | 13 +-
.../qemuxml2xmlout-video-virtio-gpu-virgl.xml | 13 +-
.../qemuxml2xmlout-virtio-input-passthrough.xml | 9 +-
.../qemuxml2xmlout-virtio-input.xml | 16 +-
.../qemuxml2xmlout-virtio-lun.xml | 13 +-
.../qemuxml2xmlout-virtio-rng-egd.xml | 9 +-
.../qemuxml2xmlout-virtio-rng-random.xml | 9 +-
.../qemuxml2xmloutdata/qemuxml2xmlout-watchdog.xml | 8 +-
tests/qemuxml2xmltest.c | 272 +++++++---
tests/testutils.c | 7 +-
tests/testutils.h | 6 +-
517 files changed, 4082 insertions(+), 2119 deletions(-)
rename tests/qemuxml2argvdata/{qemuxml2argv-aarch64-mmio-default-pci.args => qemuxml2argv-aarch64-virtio-pci-default.args} (100%)
rename tests/qemuxml2argvdata/{qemuxml2argv-aarch64-mmio-default-pci.xml => qemuxml2argv-aarch64-virtio-pci-default.xml} (100%)
rename tests/qemuxml2argvdata/{qemuxml2argv-aarch64-virtio-pci.args => qemuxml2argv-aarch64-virtio-pci-manual-addresses.args} (100%)
rename tests/qemuxml2argvdata/{qemuxml2argv-aarch64-virtio-pci.xml => qemuxml2argv-aarch64-virtio-pci-manual-addresses.xml} (100%)
rename tests/{qemuxml2xmloutdata/qemuxml2xmlout-disk-usb.xml => qemuxml2argvdata/qemuxml2argv-disk-usb-nosupport.xml} (100%)
delete mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-usb.args
delete mode 100644 tests/qemuxml2argvdata/qemuxml2argv-minimal-s390.args
delete mode 100644 tests/qemuxml2argvdata/qemuxml2argv-minimal-s390.xml
create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-aarch64-virtio-pci-default.xml
create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-aarch64-virtio-pci-manual-addresses.xml
rename tests/{qemuxml2argvdata/qemuxml2argv-disk-usb.xml => qemuxml2xmloutdata/qemuxml2xmlout-disk-usb-device.xml} (70%)
delete mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-pcie-root-port-too-many.xml
--
2.5.0
8 years, 10 months
[libvirt] [PATCH v4 1/2] libxl: add p2p migration
by Joao Martins
Introduce support for VIR_MIGRATE_PEER2PEER in libvirt migration.
Most of the changes occur at the source and no modifications at
the receiver.
In P2P mode there is only the Perform phase so we must handle the
connection with the destination and actually perform the
migration. libxlDomainPerformP2P implements the connection to the
destination and libxlDoMigrateP2P implements the actual migration
logic with virConnectPtr. In this function we take care of doing
all phases of migration in the destination similar to
virDomainMigrateVersion3Full. We appropriately save the last
error reported in each of the phases to provide proper reporting.
We don't yet support VIR_MIGRATE_TUNNELED and we always use V3
with extensible params, thus it also makes the implementation
simpler.
It is worth noting that the receiver didn't have any changes, and
since it's still the v3 sequence thus it is possible to migrate
from a P2P to non-P2P host.
Signed-off-by: Joao Martins <joao.m.martins(a)oracle.com>
---
Note: v4 series requires the patch
("remote: set VIR_TYPED_PARAM_STRING_OKAY on migration") [0]
to make migration work again, but it's not reviewed yet.
[https://www.redhat.com/archives/libvir-list/2016-February/msg00317.html]
Changes since v3:
- Put keep alive support into a separate patch and do it with
proper configuration.
- Fixed spelling errors on commit message.
Changes since v2:
- Remove Connect Close callback
Changes since v1:
- Move Begin step to libxlDoMigrateP2P to have all 4 steps
together.
- Remove if before VIR_FREE(dom_xml)
---
src/libxl/libxl_driver.c | 13 ++-
src/libxl/libxl_migration.c | 197 ++++++++++++++++++++++++++++++++++++++++++++
src/libxl/libxl_migration.h | 11 +++
3 files changed, 218 insertions(+), 3 deletions(-)
diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c
index 2a6c2de..9e3f568 100644
--- a/src/libxl/libxl_driver.c
+++ b/src/libxl/libxl_driver.c
@@ -5011,6 +5011,7 @@ libxlConnectSupportsFeature(virConnectPtr conn, int feature)
switch (feature) {
case VIR_DRV_FEATURE_TYPED_PARAM_STRING:
case VIR_DRV_FEATURE_MIGRATION_PARAMS:
+ case VIR_DRV_FEATURE_MIGRATION_P2P:
return 1;
default:
return 0;
@@ -5336,9 +5337,15 @@ libxlDomainMigratePerform3Params(virDomainPtr dom,
if (virDomainMigratePerform3ParamsEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
- if (libxlDomainMigrationPerform(driver, vm, dom_xml, dconnuri,
- uri, dname, flags) < 0)
- goto cleanup;
+ if (flags & VIR_MIGRATE_PEER2PEER) {
+ if (libxlDomainMigrationPerformP2P(driver, vm, dom->conn, dom_xml,
+ dconnuri, uri, dname, flags) < 0)
+ goto cleanup;
+ } else {
+ if (libxlDomainMigrationPerform(driver, vm, dom_xml, dconnuri,
+ uri, dname, flags) < 0)
+ goto cleanup;
+ }
ret = 0;
diff --git a/src/libxl/libxl_migration.c b/src/libxl/libxl_migration.c
index 641bd4e..5993abc 100644
--- a/src/libxl/libxl_migration.c
+++ b/src/libxl/libxl_migration.c
@@ -42,6 +42,7 @@
#include "libxl_conf.h"
#include "libxl_migration.h"
#include "locking/domain_lock.h"
+#include "virtypedparam.h"
#define VIR_FROM_THIS VIR_FROM_LIBXL
@@ -456,6 +457,202 @@ libxlDomainMigrationPrepare(virConnectPtr dconn,
return ret;
}
+/* This function is a simplification of virDomainMigrateVersion3Full
+ * excluding tunnel support and restricting it to migration v3
+ * with params since it was the first to be introduced in libxl.
+ */
+static int
+libxlDoMigrateP2P(libxlDriverPrivatePtr driver,
+ virDomainObjPtr vm,
+ virConnectPtr sconn,
+ const char *xmlin,
+ virConnectPtr dconn,
+ const char *dconnuri ATTRIBUTE_UNUSED,
+ const char *dname,
+ const char *uri,
+ unsigned int flags)
+{
+ virDomainPtr ddomain = NULL;
+ virTypedParameterPtr params = NULL;
+ int nparams = 0;
+ int maxparams = 0;
+ char *uri_out = NULL;
+ char *dom_xml = NULL;
+ unsigned long destflags;
+ bool cancelled = true;
+ virErrorPtr orig_err = NULL;
+ int ret = -1;
+
+ dom_xml = libxlDomainMigrationBegin(sconn, vm, xmlin);
+ if (!dom_xml)
+ goto cleanup;
+
+ if (virTypedParamsAddString(¶ms, &nparams, &maxparams,
+ VIR_MIGRATE_PARAM_DEST_XML, dom_xml) < 0)
+ goto cleanup;
+
+ if (dname &&
+ virTypedParamsAddString(¶ms, &nparams, &maxparams,
+ VIR_MIGRATE_PARAM_DEST_NAME, dname) < 0)
+ goto cleanup;
+
+ if (uri &&
+ virTypedParamsAddString(¶ms, &nparams, &maxparams,
+ VIR_MIGRATE_PARAM_URI, uri) < 0)
+ goto cleanup;
+
+ /* We don't require the destination to have P2P support
+ * as it looks to be normal migration from the receiver perpective.
+ */
+ destflags = flags & ~(VIR_MIGRATE_PEER2PEER);
+
+ VIR_DEBUG("Prepare3");
+ virObjectUnlock(vm);
+ ret = dconn->driver->domainMigratePrepare3Params
+ (dconn, params, nparams, NULL, 0, NULL, NULL, &uri_out, destflags);
+ virObjectLock(vm);
+
+ if (ret == -1)
+ goto cleanup;
+
+ if (uri_out) {
+ if (virTypedParamsReplaceString(¶ms, &nparams,
+ VIR_MIGRATE_PARAM_URI, uri_out) < 0) {
+ orig_err = virSaveLastError();
+ goto finish;
+ }
+ } else {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+ _("domainMigratePrepare3 did not set uri"));
+ goto finish;
+ }
+
+ VIR_DEBUG("Perform3 uri=%s", NULLSTR(uri_out));
+ ret = libxlDomainMigrationPerform(driver, vm, NULL, NULL,
+ uri_out, NULL, flags);
+
+ if (ret < 0)
+ orig_err = virSaveLastError();
+
+ cancelled = (ret < 0);
+
+ finish:
+ VIR_DEBUG("Finish3 ret=%d", ret);
+ if (virTypedParamsGetString(params, nparams,
+ VIR_MIGRATE_PARAM_DEST_NAME, NULL) <= 0 &&
+ virTypedParamsReplaceString(¶ms, &nparams,
+ VIR_MIGRATE_PARAM_DEST_NAME,
+ vm->def->name) < 0) {
+ ddomain = NULL;
+ } else {
+ virObjectUnlock(vm);
+ ddomain = dconn->driver->domainMigrateFinish3Params
+ (dconn, params, nparams, NULL, 0, NULL, NULL,
+ destflags, cancelled);
+ virObjectLock(vm);
+ }
+
+ cancelled = (ddomain == NULL);
+
+ /* If Finish3Params set an error, and we don't have an earlier
+ * one we need to preserve it in case confirm3 overwrites
+ */
+ if (!orig_err)
+ orig_err = virSaveLastError();
+
+ VIR_DEBUG("Confirm3 cancelled=%d vm=%p", cancelled, vm);
+ ret = libxlDomainMigrationConfirm(driver, vm, flags, cancelled);
+
+ if (ret < 0)
+ VIR_WARN("Guest %s probably left in 'paused' state on source",
+ vm->def->name);
+
+ cleanup:
+ if (ddomain) {
+ virObjectUnref(ddomain);
+ ret = 0;
+ } else {
+ ret = -1;
+ }
+
+ if (orig_err) {
+ virSetError(orig_err);
+ virFreeError(orig_err);
+ }
+
+ VIR_FREE(dom_xml);
+ VIR_FREE(uri_out);
+ virTypedParamsFree(params, nparams);
+ return ret;
+}
+
+static int virConnectCredType[] = {
+ VIR_CRED_AUTHNAME,
+ VIR_CRED_PASSPHRASE,
+};
+
+static virConnectAuth virConnectAuthConfig = {
+ .credtype = virConnectCredType,
+ .ncredtype = ARRAY_CARDINALITY(virConnectCredType),
+};
+
+/* On P2P mode there is only the Perform3 phase and we need to handle
+ * the connection with the destination libvirtd and perform the migration.
+ * Here we first tackle the first part of it, and libxlDoMigrationP2P handles
+ * the migration process with an established virConnectPtr to the destination.
+ */
+int
+libxlDomainMigrationPerformP2P(libxlDriverPrivatePtr driver,
+ virDomainObjPtr vm,
+ virConnectPtr sconn,
+ const char *xmlin,
+ const char *dconnuri,
+ const char *uri_str ATTRIBUTE_UNUSED,
+ const char *dname,
+ unsigned int flags)
+{
+ int ret = -1;
+ bool useParams;
+ virConnectPtr dconn = NULL;
+ virErrorPtr orig_err = NULL;
+
+ virObjectUnlock(vm);
+ dconn = virConnectOpenAuth(dconnuri, &virConnectAuthConfig, 0);
+ virObjectLock(vm);
+
+ if (dconn == NULL) {
+ virReportError(VIR_ERR_OPERATION_FAILED,
+ _("Failed to connect to remote libvirt URI %s: %s"),
+ dconnuri, virGetLastErrorMessage());
+ return ret;
+ }
+
+ virObjectUnlock(vm);
+ useParams = VIR_DRV_SUPPORTS_FEATURE(dconn->driver, dconn,
+ VIR_DRV_FEATURE_MIGRATION_PARAMS);
+ virObjectLock(vm);
+
+ if (!useParams) {
+ virReportError(VIR_ERR_OPERATION_FAILED, "%s",
+ _("Destination libvirt does not support migration with extensible parameters"));
+ goto cleanup;
+ }
+
+ ret = libxlDoMigrateP2P(driver, vm, sconn, xmlin, dconn, dconnuri,
+ dname, uri_str, flags);
+
+ cleanup:
+ orig_err = virSaveLastError();
+ virObjectUnlock(vm);
+ virObjectUnref(dconn);
+ virObjectLock(vm);
+ if (orig_err) {
+ virSetError(orig_err);
+ virFreeError(orig_err);
+ }
+ return ret;
+}
+
int
libxlDomainMigrationPerform(libxlDriverPrivatePtr driver,
virDomainObjPtr vm,
diff --git a/src/libxl/libxl_migration.h b/src/libxl/libxl_migration.h
index 20b45d8..0f83bb4 100644
--- a/src/libxl/libxl_migration.h
+++ b/src/libxl/libxl_migration.h
@@ -28,6 +28,7 @@
# define LIBXL_MIGRATION_FLAGS \
(VIR_MIGRATE_LIVE | \
+ VIR_MIGRATE_PEER2PEER | \
VIR_MIGRATE_UNDEFINE_SOURCE | \
VIR_MIGRATE_PAUSED)
@@ -56,6 +57,16 @@ libxlDomainMigrationPrepare(virConnectPtr dconn,
unsigned int flags);
int
+libxlDomainMigrationPerformP2P(libxlDriverPrivatePtr driver,
+ virDomainObjPtr vm,
+ virConnectPtr sconn,
+ const char *dom_xml,
+ const char *dconnuri,
+ const char *uri_str,
+ const char *dname,
+ unsigned int flags);
+
+int
libxlDomainMigrationPerform(libxlDriverPrivatePtr driver,
virDomainObjPtr vm,
const char *dom_xml,
--
2.1.4
8 years, 10 months
[libvirt] [PATCH] virStringListLength: Ensure const correctness
by Michal Privoznik
The virStringListLength function does not ever modify the passed
string list. It merely counts the items in it. Make sure that we
reflect this bit in the function header.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
This is hugely driven by a compilation error observed after the latest Martin
revert (ea913d185df9). I'm seeing this compilation error:
util/virpolkit.c: In function 'virPolkitCheckAuth':
util/virpolkit.c:93:47: error: passing argument 1 of 'virStringListLength' from incompatible pointer type [-Werror]
virStringListLength(details) / 2,
^
In file included from util/virpolkit.c:33:0:
util/virstring.h:204:8: note: expected 'char **' but argument is of type 'const char **'
size_t virStringListLength(char **strings);
But for some reason, implicit typecast from char ** to const char ** nor const
char * const * is allowed by gcc. I don't really understand why, so if anybody
has some explanation, please do explain.
src/lxc/lxc_native.c | 2 +-
src/storage/storage_driver.c | 2 +-
src/util/virprocess.c | 2 +-
src/util/virstoragefile.c | 2 +-
src/util/virstring.c | 2 +-
src/util/virstring.h | 2 +-
tests/virstringtest.c | 4 ++--
7 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/src/lxc/lxc_native.c b/src/lxc/lxc_native.c
index 78f9c67..ef92c7d 100644
--- a/src/lxc/lxc_native.c
+++ b/src/lxc/lxc_native.c
@@ -611,7 +611,7 @@ lxcNetworkWalkCallback(const char *name, virConfValuePtr value, void *data)
family = AF_INET6;
ipparts = virStringSplit(value->str, "/", 2);
- if (virStringListLength(ipparts) != 2 ||
+ if (virStringListLength((const char * const *)ipparts) != 2 ||
virSocketAddrParse(&ip->address, ipparts[0], family) < 0 ||
virStrToLong_ui(ipparts[1], NULL, 10, &ip->prefix) < 0) {
diff --git a/src/storage/storage_driver.c b/src/storage/storage_driver.c
index ed5395b..8ee2840 100644
--- a/src/storage/storage_driver.c
+++ b/src/storage/storage_driver.c
@@ -3209,7 +3209,7 @@ virStorageAddISCSIPoolSourceHost(virDomainDiskDefPtr def,
if (!(tokens = virStringSplit(def->src->srcpool->volume, ":", 0)))
goto cleanup;
- if (virStringListLength(tokens) != 4) {
+ if (virStringListLength((const char * const *)tokens) != 4) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("unexpected iscsi volume name '%s'"),
def->src->srcpool->volume);
diff --git a/src/util/virprocess.c b/src/util/virprocess.c
index 277b3bc..c7ffa42 100644
--- a/src/util/virprocess.c
+++ b/src/util/virprocess.c
@@ -965,7 +965,7 @@ int virProcessGetStartTime(pid_t pid,
tokens = virStringSplit(tmp, " ", 0);
- if (virStringListLength(tokens) < 20) {
+ if (virStringListLength((const char * const *)tokens) < 20) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Cannot find start time in %s"),
filename);
diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c
index 101070f..5a4e101 100644
--- a/src/util/virstoragefile.c
+++ b/src/util/virstoragefile.c
@@ -1283,7 +1283,7 @@ virStorageFileParseChainIndex(const char *diskTarget,
if (name && diskTarget)
strings = virStringSplit(name, "[", 2);
- if (virStringListLength(strings) != 2)
+ if (virStringListLength((const char * const *) strings) != 2)
goto cleanup;
if (virStrToLong_uip(strings[1], &suffix, 10, &idx) < 0 ||
diff --git a/src/util/virstring.c b/src/util/virstring.c
index fc4f5ba..7ec42aa 100644
--- a/src/util/virstring.c
+++ b/src/util/virstring.c
@@ -765,7 +765,7 @@ virStrndup(char **dest,
}
-size_t virStringListLength(char **strings)
+size_t virStringListLength(const char * const *strings)
{
size_t i = 0;
diff --git a/src/util/virstring.h b/src/util/virstring.h
index cdf1058..16ed3b2 100644
--- a/src/util/virstring.h
+++ b/src/util/virstring.h
@@ -201,7 +201,7 @@ int virVasprintfInternal(bool report, int domcode, const char *filename,
# define VIR_STRNDUP_QUIET(dst, src, n) virStrndup(&(dst), src, n, false, \
0, NULL, NULL, 0)
-size_t virStringListLength(char **strings);
+size_t virStringListLength(const char * const *strings);
/**
* virVasprintf
diff --git a/tests/virstringtest.c b/tests/virstringtest.c
index 38d0126..7a1dcfd 100644
--- a/tests/virstringtest.c
+++ b/tests/virstringtest.c
@@ -336,10 +336,10 @@ testStringSearch(const void *opaque)
goto cleanup;
}
- if (virStringListLength(matches) != nmatches) {
+ if (virStringListLength((const char * const *)matches) != nmatches) {
fprintf(stderr, "expected %zu matches on %s but got %zd matches\n",
data->expectNMatches, data->str,
- virStringListLength(matches));
+ virStringListLength((const char * const *)matches));
goto cleanup;
}
--
2.4.10
8 years, 10 months
[libvirt] [PATCH] remote: set VIR_TYPED_PARAM_STRING_OKAY on migration
by Joao Martins
Commit 8cd1d54 ("util: Export remoteSerializeTypedParameters
internally via util") consolidates both daemon and remote
driver typed param serialization functions. Though as is
no flags are passed which lets virTypedParamsSerialize to
ignore all strings (to be sent), thus leading to fail
migration on drivers on Prepare phase, as already reported
by the Xen test CI[0] with:
error: internal error: no domain XML passed
This patch proposes setting VIR_TYPED_PARAM_STRING_OKAY
to avoid leading such failures.
[0]
http://lists.xenproject.org/archives/html/xen-devel/2016-02/msg01012.html
Signed-off-by: Joao Martins <joao.m.martins(a)oracle.com>
---
src/remote/remote_driver.c | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c
index 58787cd..7cf61cf 100644
--- a/src/remote/remote_driver.c
+++ b/src/remote/remote_driver.c
@@ -6886,7 +6886,8 @@ remoteDomainMigrateBegin3Params(virDomainPtr domain,
if (virTypedParamsSerialize(params, nparams,
(virTypedParameterRemotePtr *) &args.params.params_val,
- &args.params.params_len, 0) < 0) {
+ &args.params.params_len,
+ VIR_TYPED_PARAM_STRING_OKAY) < 0) {
xdr_free((xdrproc_t) xdr_remote_domain_migrate_begin3_params_args,
(char *) &args);
goto cleanup;
@@ -6953,7 +6954,8 @@ remoteDomainMigratePrepare3Params(virConnectPtr dconn,
if (virTypedParamsSerialize(params, nparams,
(virTypedParameterRemotePtr *) &args.params.params_val,
- &args.params.params_len, 0) < 0) {
+ &args.params.params_len,
+ VIR_TYPED_PARAM_STRING_OKAY) < 0) {
xdr_free((xdrproc_t) xdr_remote_domain_migrate_prepare3_params_args,
(char *) &args);
goto cleanup;
@@ -7040,7 +7042,8 @@ remoteDomainMigratePrepareTunnel3Params(virConnectPtr dconn,
if (virTypedParamsSerialize(params, nparams,
(virTypedParameterRemotePtr *) &args.params.params_val,
- &args.params.params_len, 0) < 0) {
+ &args.params.params_len,
+ VIR_TYPED_PARAM_STRING_OKAY) < 0) {
xdr_free((xdrproc_t) xdr_remote_domain_migrate_prepare_tunnel3_params_args,
(char *) &args);
goto cleanup;
@@ -7129,7 +7132,8 @@ remoteDomainMigratePerform3Params(virDomainPtr dom,
if (virTypedParamsSerialize(params, nparams,
(virTypedParameterRemotePtr *) &args.params.params_val,
- &args.params.params_len, 0) < 0) {
+ &args.params.params_len,
+ VIR_TYPED_PARAM_STRING_OKAY) < 0) {
xdr_free((xdrproc_t) xdr_remote_domain_migrate_perform3_params_args,
(char *) &args);
goto cleanup;
@@ -7201,7 +7205,8 @@ remoteDomainMigrateFinish3Params(virConnectPtr dconn,
if (virTypedParamsSerialize(params, nparams,
(virTypedParameterRemotePtr *) &args.params.params_val,
- &args.params.params_len, 0) < 0) {
+ &args.params.params_len,
+ VIR_TYPED_PARAM_STRING_OKAY) < 0) {
xdr_free((xdrproc_t) xdr_remote_domain_migrate_finish3_params_args,
(char *) &args);
goto cleanup;
@@ -7275,7 +7280,8 @@ remoteDomainMigrateConfirm3Params(virDomainPtr domain,
if (virTypedParamsSerialize(params, nparams,
(virTypedParameterRemotePtr *) &args.params.params_val,
- &args.params.params_len, 0) < 0) {
+ &args.params.params_len,
+ VIR_TYPED_PARAM_STRING_OKAY) < 0) {
xdr_free((xdrproc_t) xdr_remote_domain_migrate_confirm3_params_args,
(char *) &args);
goto cleanup;
--
2.1.4
8 years, 10 months