[libvirt] [PATCH] lxc: support <interface type='ethernet'>
by Laine Stump
This is identical to type='bridge', but without the "connect to a
bridge" part, so it can be handled by using the same functions (and
often even the same cases in switch statements), after renaming
virLXCProcessSetupInterfaceBridged() to virLXCProcessInterfaceTap()
and enhancing it to skip bridge-related items when brname == NULL.
To be truly useful, we need to support setting the ip address on the
host side veth as well as guest side veth (already supported for
type='bridge'), as well as setting the peer address for both.
The <script> element isn't supported in this patch because I have no
need for it. I'd rather add it after determining it's needed rather
than adding it for no reason and than being required to support it
forever.
---
I wrote this mostly so that I could experiment with setting the peer
addresses of both sides of the veth pair to see what was usable and
what we needed to support in terms of setting IP addresses. I had
intended to post this patch along with patches to re-enable the peer
address setting patches that I reverted just before 1.3.4 was
released, but decided that having lxc <interface type='ethernet'>
already in might help in any discussion we had about that (since it
gives everyone a working example where libvirt has control of both the
host-side and guest-side interface config.
This will of course be much more useful once the IP addresses can be
set from within libvirt, but all code that is here will remain and, as
I said above, it provides a useful platform for experimentation.
src/lxc/lxc_controller.c | 4 +-
src/lxc/lxc_driver.c | 16 ++++---
src/lxc/lxc_native.c | 15 +++----
src/lxc/lxc_process.c | 36 +++++++--------
src/lxc/lxc_process.h | 6 +--
tests/lxcconf2xmldata/lxcconf2xml-ethernet.config | 44 ++++++++++++++++++
tests/lxcconf2xmldata/lxcconf2xml-ethernet.xml | 54 +++++++++++++++++++++++
tests/lxcconf2xmltest.c | 1 +
tests/lxcxml2xmldata/lxc-ethernet.xml | 42 ++++++++++++++++++
tests/lxcxml2xmltest.c | 1 +
10 files changed, 181 insertions(+), 38 deletions(-)
create mode 100644 tests/lxcconf2xmldata/lxcconf2xml-ethernet.config
create mode 100644 tests/lxcconf2xmldata/lxcconf2xml-ethernet.xml
create mode 100644 tests/lxcxml2xmldata/lxc-ethernet.xml
diff --git a/src/lxc/lxc_controller.c b/src/lxc/lxc_controller.c
index 0304354..25f28ea 100644
--- a/src/lxc/lxc_controller.c
+++ b/src/lxc/lxc_controller.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010-2015 Red Hat, Inc.
+ * Copyright (C) 2010-2016 Red Hat, Inc.
* Copyright IBM Corp. 2008
*
* lxc_controller.c: linux container process controller
@@ -371,6 +371,7 @@ static int virLXCControllerGetNICIndexes(virLXCControllerPtr ctrl)
switch (ctrl->def->nets[i]->type) {
case VIR_DOMAIN_NET_TYPE_BRIDGE:
case VIR_DOMAIN_NET_TYPE_NETWORK:
+ case VIR_DOMAIN_NET_TYPE_ETHERNET:
if (ctrl->def->nets[i]->ifname == NULL)
continue;
if (virNetDevGetIndex(ctrl->def->nets[i]->ifname,
@@ -386,7 +387,6 @@ static int virLXCControllerGetNICIndexes(virLXCControllerPtr ctrl)
break;
case VIR_DOMAIN_NET_TYPE_USER:
- case VIR_DOMAIN_NET_TYPE_ETHERNET:
case VIR_DOMAIN_NET_TYPE_VHOSTUSER:
case VIR_DOMAIN_NET_TYPE_SERVER:
case VIR_DOMAIN_NET_TYPE_CLIENT:
diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c
index a226850..f811053 100644
--- a/src/lxc/lxc_driver.c
+++ b/src/lxc/lxc_driver.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2010-2015 Red Hat, Inc.
+ * Copyright (C) 2010-2016 Red Hat, Inc.
* Copyright IBM Corp. 2008
*
* lxc_driver.c: linux container driver functions
@@ -4225,15 +4225,15 @@ lxcDomainAttachDeviceNetLive(virConnectPtr conn,
_("No bridge name specified"));
goto cleanup;
}
- if (!(veth = virLXCProcessSetupInterfaceBridged(vm->def,
- net,
- brname)))
+ if (!(veth = virLXCProcessSetupInterfaceTap(vm->def, net, brname)))
goto cleanup;
} break;
+ case VIR_DOMAIN_NET_TYPE_ETHERNET:
+ if (!(veth = virLXCProcessSetupInterfaceTap(vm->def, net, NULL)))
+ goto cleanup;
+ break;
case VIR_DOMAIN_NET_TYPE_DIRECT: {
- if (!(veth = virLXCProcessSetupInterfaceDirect(conn,
- vm->def,
- net)))
+ if (!(veth = virLXCProcessSetupInterfaceDirect(conn, vm->def, net)))
goto cleanup;
} break;
default:
@@ -4270,6 +4270,7 @@ lxcDomainAttachDeviceNetLive(virConnectPtr conn,
switch (actualType) {
case VIR_DOMAIN_NET_TYPE_BRIDGE:
case VIR_DOMAIN_NET_TYPE_NETWORK:
+ case VIR_DOMAIN_NET_TYPE_ETHERNET:
ignore_value(virNetDevVethDelete(veth));
break;
@@ -4695,6 +4696,7 @@ lxcDomainDetachDeviceNetLive(virDomainObjPtr vm,
switch (actualType) {
case VIR_DOMAIN_NET_TYPE_BRIDGE:
case VIR_DOMAIN_NET_TYPE_NETWORK:
+ case VIR_DOMAIN_NET_TYPE_ETHERNET:
if (virNetDevVethDelete(detach->ifname) < 0) {
virDomainAuditNet(vm, detach, NULL, "detach", false);
goto cleanup;
diff --git a/src/lxc/lxc_native.c b/src/lxc/lxc_native.c
index 31ffce7..0bea32e 100644
--- a/src/lxc/lxc_native.c
+++ b/src/lxc/lxc_native.c
@@ -360,14 +360,13 @@ lxcCreateNetDef(const char *type,
net->mac = macAddr;
if (STREQ(type, "veth")) {
- if (!linkdev)
- goto error;
-
- net->type = VIR_DOMAIN_NET_TYPE_BRIDGE;
-
- if (VIR_STRDUP(net->data.bridge.brname, linkdev) < 0)
- goto error;
-
+ if (linkdev) {
+ net->type = VIR_DOMAIN_NET_TYPE_BRIDGE;
+ if (VIR_STRDUP(net->data.bridge.brname, linkdev) < 0)
+ goto error;
+ } else {
+ net->type = VIR_DOMAIN_NET_TYPE_ETHERNET;
+ }
} else if (STREQ(type, "macvlan")) {
net->type = VIR_DOMAIN_NET_TYPE_DIRECT;
diff --git a/src/lxc/lxc_process.c b/src/lxc/lxc_process.c
index 8981d9a..f8a0c32 100644
--- a/src/lxc/lxc_process.c
+++ b/src/lxc/lxc_process.c
@@ -256,9 +256,9 @@ static void virLXCProcessCleanup(virLXCDriverPtr driver,
}
-char *virLXCProcessSetupInterfaceBridged(virDomainDefPtr vm,
- virDomainNetDefPtr net,
- const char *brname)
+char *virLXCProcessSetupInterfaceTap(virDomainDefPtr vm,
+ virDomainNetDefPtr net,
+ const char *brname)
{
char *ret = NULL;
char *parentVeth;
@@ -277,13 +277,15 @@ char *virLXCProcessSetupInterfaceBridged(virDomainDefPtr vm,
if (virNetDevSetMAC(containerVeth, &net->mac) < 0)
goto cleanup;
- if (vport && vport->virtPortType == VIR_NETDEV_VPORT_PROFILE_OPENVSWITCH) {
- if (virNetDevOpenvswitchAddPort(brname, parentVeth, &net->mac,
- vm->uuid, vport, virDomainNetGetActualVlan(net)) < 0)
- goto cleanup;
- } else {
- if (virNetDevBridgeAddPort(brname, parentVeth) < 0)
- goto cleanup;
+ if (brname) {
+ if (vport && vport->virtPortType == VIR_NETDEV_VPORT_PROFILE_OPENVSWITCH) {
+ if (virNetDevOpenvswitchAddPort(brname, parentVeth, &net->mac, vm->uuid,
+ vport, virDomainNetGetActualVlan(net)) < 0)
+ goto cleanup;
+ } else {
+ if (virNetDevBridgeAddPort(brname, parentVeth) < 0)
+ goto cleanup;
+ }
}
if (virNetDevSetOnline(parentVeth, true) < 0)
@@ -546,20 +548,18 @@ static int virLXCProcessSetupInterfaces(virConnectPtr conn,
_("No bridge name specified"));
goto cleanup;
}
- if (!(veth = virLXCProcessSetupInterfaceBridged(def,
- net,
- brname)))
+ if (!(veth = virLXCProcessSetupInterfaceTap(def, net, brname)))
goto cleanup;
} break;
-
+ case VIR_DOMAIN_NET_TYPE_ETHERNET:
+ if (!(veth = virLXCProcessSetupInterfaceTap(def, net, NULL)))
+ goto cleanup;
+ break;
case VIR_DOMAIN_NET_TYPE_DIRECT:
- if (!(veth = virLXCProcessSetupInterfaceDirect(conn,
- def,
- net)))
+ if (!(veth = virLXCProcessSetupInterfaceDirect(conn, def, net)))
goto cleanup;
break;
- case VIR_DOMAIN_NET_TYPE_ETHERNET:
case VIR_DOMAIN_NET_TYPE_USER:
case VIR_DOMAIN_NET_TYPE_VHOSTUSER:
case VIR_DOMAIN_NET_TYPE_SERVER:
diff --git a/src/lxc/lxc_process.h b/src/lxc/lxc_process.h
index b6c8083..fcb50a8 100644
--- a/src/lxc/lxc_process.h
+++ b/src/lxc/lxc_process.h
@@ -47,9 +47,9 @@ void virLXCProcessAutostartAll(virLXCDriverPtr driver);
int virLXCProcessReconnectAll(virLXCDriverPtr driver,
virDomainObjListPtr doms);
-char *virLXCProcessSetupInterfaceBridged(virDomainDefPtr vm,
- virDomainNetDefPtr net,
- const char *brname);
+char *virLXCProcessSetupInterfaceTap(virDomainDefPtr vm,
+ virDomainNetDefPtr net,
+ const char *brname);
char *virLXCProcessSetupInterfaceDirect(virConnectPtr conn,
virDomainDefPtr def,
virDomainNetDefPtr net);
diff --git a/tests/lxcconf2xmldata/lxcconf2xml-ethernet.config b/tests/lxcconf2xmldata/lxcconf2xml-ethernet.config
new file mode 100644
index 0000000..d39917d
--- /dev/null
+++ b/tests/lxcconf2xmldata/lxcconf2xml-ethernet.config
@@ -0,0 +1,44 @@
+# Template used to create this container: opensuse
+# Template script checksum (SHA-1): 27307e0a95bd81b2c0bd82d6f87fdbe83be075ef
+
+lxc.network.type = veth
+lxc.network.flags = up
+lxc.network.hwaddr = 02:00:15:8f:05:c1
+lxc.network.name = eth0
+lxc.network.ipv4 = 192.168.122.2/24
+lxc.network.ipv4.gateway = 192.168.122.1
+lxc.network.ipv6 = 2003:db8:1:0:214:1234:fe0b:3596/64
+lxc.network.ipv6.gateway = 2003:db8:1:0:214:1234:fe0b:3595
+
+#remove next line if host DNS configuration should not be available to container
+lxc.mount.entry = proc proc proc nodev,noexec,nosuid 0 0
+lxc.mount.entry = sysfs sys sysfs defaults 0 0
+lxc.mount.entry = tmpfs run tmpfs size=8m,mode=0755,nodev,nosuid 0 0
+lxc.mount.entry = /etc/resolv.conf etc/resolv.conf none bind,ro 0 0
+lxc.rootfs = /var/lib/lxc/migrate_test/rootfs
+lxc.utsname = migrate_test
+lxc.arch = x86
+lxc.autodev=1
+lxc.tty = 2
+lxc.pts = 1024
+lxc.cap.drop = sys_module mac_admin mac_override mknod
+
+# When using LXC with apparmor, uncomment the next line to run unconfined:
+#lxc.aa_profile = unconfined
+
+lxc.cgroup.devices.deny = a
+# /dev/null and zero
+lxc.cgroup.devices.allow = c 1:3 rwm
+lxc.cgroup.devices.allow = c 1:5 rwm
+# consoles
+lxc.cgroup.devices.allow = c 5:1 rwm
+lxc.cgroup.devices.allow = c 5:0 rwm
+lxc.cgroup.devices.allow = c 4:0 rwm
+lxc.cgroup.devices.allow = c 4:1 rwm
+# /dev/{,u}random
+lxc.cgroup.devices.allow = c 1:9 rwm
+lxc.cgroup.devices.allow = c 1:8 rwm
+lxc.cgroup.devices.allow = c 136:* rwm
+lxc.cgroup.devices.allow = c 5:2 rwm
+# rtc
+lxc.cgroup.devices.allow = c 254:0 rwm
diff --git a/tests/lxcconf2xmldata/lxcconf2xml-ethernet.xml b/tests/lxcconf2xmldata/lxcconf2xml-ethernet.xml
new file mode 100644
index 0000000..24b017a
--- /dev/null
+++ b/tests/lxcconf2xmldata/lxcconf2xml-ethernet.xml
@@ -0,0 +1,54 @@
+<domain type='lxc'>
+ <name>migrate_test</name>
+ <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
+ <memory unit='KiB'>65536</memory>
+ <currentMemory unit='KiB'>65536</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <os>
+ <type arch='i686'>exe</type>
+ <init>/sbin/init</init>
+ </os>
+ <features>
+ <capabilities policy='allow'>
+ <mac_admin state='off'/>
+ <mac_override state='off'/>
+ <mknod state='off'/>
+ <sys_module state='off'/>
+ </capabilities>
+ </features>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/libexec/libvirt_lxc</emulator>
+ <filesystem type='mount' accessmode='passthrough'>
+ <source dir='/var/lib/lxc/migrate_test/rootfs'/>
+ <target dir='/'/>
+ </filesystem>
+ <filesystem type='ram' accessmode='passthrough'>
+ <source usage='8192' units='KiB'/>
+ <target dir='/run'/>
+ </filesystem>
+ <filesystem type='mount' accessmode='passthrough'>
+ <source dir='/etc/resolv.conf'/>
+ <target dir='/etc/resolv.conf'/>
+ <readonly/>
+ </filesystem>
+ <interface type='ethernet'>
+ <mac address='02:00:15:8f:05:c1'/>
+ <ip address='192.168.122.2' family='ipv4' prefix='24'/>
+ <ip address='2003:db8:1:0:214:1234:fe0b:3596' family='ipv6' prefix='64'/>
+ <route family='ipv4' address='0.0.0.0' gateway='192.168.122.1'/>
+ <route family='ipv6' address='::' gateway='2003:db8:1:0:214:1234:fe0b:3595'/>
+ <guest dev='eth0'/>
+ <link state='up'/>
+ </interface>
+ <console type='pty'>
+ <target type='lxc' port='0'/>
+ </console>
+ <console type='pty'>
+ <target type='lxc' port='1'/>
+ </console>
+ </devices>
+</domain>
diff --git a/tests/lxcconf2xmltest.c b/tests/lxcconf2xmltest.c
index 83895cd..7a0893e 100644
--- a/tests/lxcconf2xmltest.c
+++ b/tests/lxcconf2xmltest.c
@@ -119,6 +119,7 @@ mymain(void)
DO_TEST("cputune", false);
DO_TEST("cpusettune", false);
DO_TEST("blkiotune", false);
+ DO_TEST("ethernet", false);
virObjectUnref(xmlopt);
virObjectUnref(caps);
diff --git a/tests/lxcxml2xmldata/lxc-ethernet.xml b/tests/lxcxml2xmldata/lxc-ethernet.xml
new file mode 100644
index 0000000..6c4a739
--- /dev/null
+++ b/tests/lxcxml2xmldata/lxc-ethernet.xml
@@ -0,0 +1,42 @@
+<domain type='lxc'>
+ <name>8675309</name>
+ <uuid>e21987a5-e98e-9c99-0e35-803e4d9ad1fe</uuid>
+ <memory unit='KiB'>1048576</memory>
+ <currentMemory unit='KiB'>1048576</currentMemory>
+ <vcpu placement='static'>1</vcpu>
+ <resource>
+ <partition>/machine</partition>
+ </resource>
+ <os>
+ <type arch='x86_64'>exe</type>
+ <init>/sbin/init</init>
+ </os>
+ <idmap>
+ <uid start='0' target='100000' count='100000'/>
+ <gid start='0' target='100000' count='100000'/>
+ </idmap>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>restart</on_crash>
+ <devices>
+ <emulator>/usr/libexec/libvirt_lxc</emulator>
+ <filesystem type='mount' accessmode='passthrough'>
+ <source dir='/mach/8675309'/>
+ <target dir='/'/>
+ </filesystem>
+ <interface type='ethernet'>
+ <mac address='00:16:3e:0f:ef:8a'/>
+ <ip address='192.168.122.12' family='ipv4' prefix='24'/>
+ <ip address='192.168.122.13' family='ipv4' prefix='24'/>
+ <route family='ipv4' address='0.0.0.0' gateway='192.168.122.1'/>
+ <route family='ipv4' address='192.168.124.0' prefix='24' gateway='192.168.124.1'/>
+ <target dev='veth0'/>
+ <guest dev='eth2'/>
+ </interface>
+ <console type='pty'>
+ <target type='lxc' port='0'/>
+ </console>
+ </devices>
+ <seclabel type='none'/>
+</domain>
diff --git a/tests/lxcxml2xmltest.c b/tests/lxcxml2xmltest.c
index fec0142..001aa8d 100644
--- a/tests/lxcxml2xmltest.c
+++ b/tests/lxcxml2xmltest.c
@@ -94,6 +94,7 @@ mymain(void)
DO_TEST("idmap");
DO_TEST("capabilities");
DO_TEST("sharenet");
+ DO_TEST("ethernet");
DO_TEST_FULL("filesystem-root", 0, false,
VIR_DOMAIN_DEF_PARSE_SKIP_OSTYPE_CHECKS);
--
2.5.5
8 years, 6 months
[libvirt] [PATCH v2 0/3] auto-assign controller indexes
by Laine Stump
Patches 1 and 2 just shuffle a couple of existing functions. Patch 3
gets to the point.
v1->v2 changes are explained in patch 3.
Laine Stump (3):
conf/qemu: make IS_USB2_CONTROLLER globally available
conf: make virDomainControllerFindUnusedIndex() more generally usable
conf: permit auto-assignment of controller indexes
docs/formatdomain.html.in | 7 +-
docs/schemas/domaincommon.rng | 8 +-
src/conf/domain_conf.c | 128 ++++++++++++++---
src/conf/domain_conf.h | 10 +-
src/libvirt_private.syms | 1 +
src/qemu/qemu_domain_address.c | 7 -
src/qemu/qemu_driver.c | 5 +-
src/qemu/qemu_hotplug.c | 8 ++
tests/qemuxml2argvdata/qemuxml2argv-autoindex.args | 53 +++++++
tests/qemuxml2argvdata/qemuxml2argv-autoindex.xml | 54 ++++++++
tests/qemuxml2argvtest.c | 9 ++
.../qemuxml2xmlout-autoindex.xml | 153 +++++++++++++++++++++
tests/qemuxml2xmltest.c | 10 +-
13 files changed, 421 insertions(+), 32 deletions(-)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-autoindex.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-autoindex.xml
create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-autoindex.xml
--
2.5.5
8 years, 6 months
[libvirt] [PATCH 0/2] Add virFirmware object for use by driver config
by Jim Fehlig
While refreshing and testing my series to add domain capabilities
and UEFI support to the libxl driver [1], I realized it would be
useful to support the '--with-loader-nvram' configure option as
well. This would allow users/packagers to specify system-provided
firmwares instead of those provided by the Xen installation.
Instead of copying code from the qemu driver, I decided to create
a virFirmware object containing the firmware name (loader) and
associated nvram, along with a few operations on the object. Patch1
introduces the object in src/util/virfirmware.[ch] and switches
the qemu driver to use. The patch could be split along those lines,
but I thought it would be review-friendly to see the movement of
code in a single patch. But it can be split if preferred.
Patch2 adds virFirmware to the libxl driver config. It is unused
in this series, but if this approach is aggreable it will be used
when rebasing the domain capabilities series.
Note that currently Xen does not support storage for non-volitile
variables for UEFI firmware (OVMF), so 'nvram' will be unused for
the time being. Adding a 'nvram' option to libxl.conf can be
deferred until support is added to Xen. But even with this
limitation, folks are using UEFI + HVM guests with xl/libxl and
would like to do the same with libvirt.
Patch1 is a lot of code movement to avoid copying
virQEMUDriverConfigLoaderNVRAMParse (and eventually
virQEMUDriverConfigNVRAMParse). But I've complained about copy/paste
in some of my recent reviews and shouldn't be doing the same in
my own patches :-).
[1] https://www.redhat.com/archives/libvir-list/2016-April/msg01358.html
Jim Fehlig (2):
driver config: Introduce virFirmware object
libxl: add default firmwares to driver config object
po/POTFILES.in | 1 +
src/Makefile.am | 1 +
src/libvirt_private.syms | 6 ++
src/libxl/libxl_conf.c | 21 +++++++
src/libxl/libxl_conf.h | 4 ++
src/qemu/qemu_capabilities.c | 22 +++----
src/qemu/qemu_capabilities.h | 5 +-
src/qemu/qemu_conf.c | 127 ++++++----------------------------------
src/qemu/qemu_conf.h | 7 +--
src/qemu/qemu_driver.c | 2 +-
src/qemu/qemu_process.c | 6 +-
src/util/virfirmware.c | 135 +++++++++++++++++++++++++++++++++++++++++++
src/util/virfirmware.h | 51 ++++++++++++++++
tests/domaincapstest.c | 3 +-
14 files changed, 260 insertions(+), 131 deletions(-)
create mode 100644 src/util/virfirmware.c
create mode 100644 src/util/virfirmware.h
--
2.1.4
8 years, 6 months
Re: [libvirt] [PATCH] libxl: add .domainInterfaceAddresses
by Jim Fehlig
On 05/22/2016 09:34 PM, Chun Yan Liu wrote:
>
>>>> On 5/17/2016 at 11:46 PM, in message
> <2fa0cb6f-ea83-d6f3-18f8-51a671574205(a)laine.org>, Laine Stump <laine(a)laine.org>
> wrote:
>> On 05/16/2016 06:05 PM, Jim Fehlig wrote:
>>> Chun Yan Liu wrote:
>>>>>>> On 5/14/2016 at 07:47 AM, in message <5736677D.8030209(a)suse.com>, Jim Fehlig
>>>> <jfehlig(a)suse.com> wrote:
>>>>> On 05/13/2016 12:21 AM, Chunyan Liu wrote:
>>>>>> Add .domainInterfaceAddresses so that user can have a way to
>>>>>> get domain interface address by 'virsh domifaddr'. Currently
>>>>>> it only supports '--source lease'.
>>>>>>
>>>>>> Signed-off: Chunyan Liu <cyliu(a)suse.com>
>>>>>> ---
>>>>>> src/libxl/libxl_driver.c | 140
>>>>> +++++++++++++++++++++++++++++++++++++++++++++++
>>>>>> 1 file changed, 140 insertions(+)
>>>>>>
>>>>>> diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c
>>>>>> index 062d6f8..f2bd6fa 100644
>>>>>> --- a/src/libxl/libxl_driver.c
>>>>>> +++ b/src/libxl/libxl_driver.c
>>>>>> @@ -5425,6 +5425,145 @@ static int libxlNodeGetSecurityModel(virConnectPtr
>>>>> conn,
>>>>>> return 0;
>>>>>> }
>>>>>>
>>>>>> +static int
>>>>>> +libxlGetDHCPInterfaces(virDomainPtr dom,
>>>>>> + virDomainObjPtr vm,
>>>>>> + virDomainInterfacePtr **ifaces)
>>>>>> +{
>>>>>> + int rv = -1;
>>>>>> + int n_leases = 0;
>>>>>> + size_t i, j;
>>>>>> + size_t ifaces_count = 0;
>>>>>> + virNetworkPtr network = NULL;
>>>>>> + char macaddr[VIR_MAC_STRING_BUFLEN];
>>>>>> + virDomainInterfacePtr iface = NULL;
>>>>>> + virNetworkDHCPLeasePtr *leases = NULL;
>>>>>> + virDomainInterfacePtr *ifaces_ret = NULL;
>>>>>> +
>>>>>> + if (!dom->conn->networkDriver ||
>>>>>> + !dom->conn->networkDriver->networkGetDHCPLeases) {
>>>>>> + virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
>>>>>> + _("Network driver does not support DHCP lease
>>>>> query"));
>>>>>> + return -1;
>>>>>> + }
>>>>>> +
>>>>>> + for (i = 0; i < vm->def->nnets; i++) {
>>>>>> + if (vm->def->nets[i]->type != VIR_DOMAIN_NET_TYPE_NETWORK)
>>>>>> + continue;
>>>>>> +
>>>>>> + virMacAddrFormat(&(vm->def->nets[i]->mac), macaddr);
>>>>>> + virObjectUnref(network);
>>>>>> + network = virNetworkLookupByName(dom->conn,
>>>>>> +
>> vm->def->nets[i]->data.network.name);
>>>>>> +
>>>>>> + if ((n_leases = virNetworkGetDHCPLeases(network, macaddr,
>>>>>> + &leases, 0)) < 0)
>>>>>> + goto error;
>>>>>> +
>>>>>> + if (n_leases) {
>>>>>> + if (VIR_EXPAND_N(ifaces_ret, ifaces_count, 1) < 0)
>>>>>> + goto error;
>>>>>> +
>>>>>> + if (VIR_ALLOC(ifaces_ret[ifaces_count - 1]) < 0)
>>>>>> + goto error;
>>>>>> +
>>>>>> + iface = ifaces_ret[ifaces_count - 1];
>>>>>> + /* Assuming each lease corresponds to a separate IP */
>>>>>> + iface->naddrs = n_leases;
>>>>>> +
>>>>>> + if (VIR_ALLOC_N(iface->addrs, iface->naddrs) < 0)
>>>>>> + goto error;
>>>>>> +
>>>>>> + if (VIR_STRDUP(iface->name, vm->def->nets[i]->ifname) < 0)
>>>>>> + goto cleanup;
>>>>>> +
>>>>>> + if (VIR_STRDUP(iface->hwaddr, macaddr) < 0)
>>>>>> + goto cleanup;
>>>>>> + }
>>>>>> +
>>>>>> + for (j = 0; j < n_leases; j++) {
>>>>>> + virNetworkDHCPLeasePtr lease = leases[j];
>>>>>> + virDomainIPAddressPtr ip_addr = &iface->addrs[j];
>>>>>> +
>>>>>> + if (VIR_STRDUP(ip_addr->addr, lease->ipaddr) < 0)
>>>>>> + goto cleanup;
>>>>>> +
>>>>>> + ip_addr->type = lease->type;
>>>>>> + ip_addr->prefix = lease->prefix;
>>>>>> + }
>>>>>> +
>>>>>> + for (j = 0; j < n_leases; j++)
>>>>>> + virNetworkDHCPLeaseFree(leases[j]);
>>>>>> +
>>>>>> + VIR_FREE(leases);
>>>>>> + }
>>>>>> +
>>>>>> + *ifaces = ifaces_ret;
>>>>>> + ifaces_ret = NULL;
>>>>>> + rv = ifaces_count;
>>>>>> +
>>>>>> + cleanup:
>>>>>> + virObjectUnref(network);
>>>>>> + if (leases) {
>>>>>> + for (i = 0; i < n_leases; i++)
>>>>>> + virNetworkDHCPLeaseFree(leases[i]);
>>>>>> + }
>>>>>> + VIR_FREE(leases);
>>>>>> +
>>>>>> + return rv;
>>>>>> +
>>>>>> + error:
>>>>>> + if (ifaces_ret) {
>>>>>> + for (i = 0; i < ifaces_count; i++)
>>>>>> + virDomainInterfaceFree(ifaces_ret[i]);
>>>>>> + }
>>>>>> + VIR_FREE(ifaces_ret);
>>>>>> +
>>>>>> + goto cleanup;
>>>>>> +}
>>>>>
>>>>> It's unfortunate this is a copy-paste from the qemu driver. The code is not
>>>>> trivial and any bug fixes in one copy could be missed in the other. A lot
>> of
>>>>> the
>>>>> function is domain related, so probably can't be abstracted further to the
>>>>> network code. Have you considered approaches that allow the drivers to
>> share
>>>>> this code?
>>>> Well, it can be extracted and placed in bridge_driver.c as
>> networkGetDHCPInterfaces,
>>>> but I don't know if that is acceptable?
>>> Hmm, maybe something like networkGetDHCPLeasesAll() is a better name.
>> Regardless
>>> of the name, I see that other functions in bridge_driver.c take a
>>> virDomainDefPtr, so maybe extracting the code to bridge_driver.c is
>> acceptable.
>>
>> Well, I don't really *like* the way that those network*() functions are
>> implemented (just by exporting a symbol, implying that any hypervisor
>> driver that uses them must directly link the bridge driver in, rather
>> than being able to load an alternative), but that was the most expedient
>> way of handling the need at the time, and nobody complained about it,
>> so... :-)
>>
>> Definitely duplication of code is bad (I say that although I do it a lot
>> myself!). And if a function is all about "doing something with a network
>> device / connection" and it will need access to the network object, I
>> think the network driver is the place to have it. *AND* if it's
>> something that's not needed directly in the public API, then making it
>> available as a public API call is a bad idea (since you're then stuck
>> with it forever).
>>
>> However, I don't know that I like the idea of a function in the network
>> driver that is trawling through the virDomainDef object. It may seem
>> like a fine distinction - returning the lease info for a single
>> interface vs. returning the lease info for all interfaces in the domain,
>> but it does take the co-mingling between the network and hypervisor
>> drivers to a new level. Yes, it's true that there are already functions
>> that are part of this "backend super double secret network API" (watch
>> Animal House and you'll understand the reference) that take a
>> virDomainDefPtr as an argument; but they only use it to format the
>> domain XML and send it to the network hook script. Technically there's
>> nothing preventing a function in the network driver from accessing every
>> attribute of the domain, or even modifying it :-O, that doesn't mean we
>> should do it though.
>>
>> I'm trying to completely recall a vague memory of something similar to
>> this that happened in the past - something that was needed in multiple
>> hypervisors (which would imply that it should live either in util or
>> conf), but that also needed to call a network function (or maybe some
>> other driver, I forget). When trying to maintain some sort of separation
>> and rules of engagement between the various components, there tend to be
>> cases that just don't fit within the mold.
>>
>> In this case, I'm wondering if maybe the duplication can be reduced by
>> creating a function in conf (either domain_conf.c or one of its
>> subsidiaries) that takes a *function as an argument and calls that
>> function for each interface. Something like this:
>>
>> int
>> virDomainGetDHCPInterfaces(virDomainDefPtr def,
>> virDomainDefGetDHCPLeasesCB getLeases,
>> virDomainInterfacePtr **ifaces)
>> {
>>
>> for (i = 0; i < def->nnets; i++) {
>> virDomainNetDefPtr net = def->nets[i];
>>
>> if (virDomainNetDefGetActualType(net) !=
>> VIR_DOMAIN_NET_TYPE_NETWORK)
>> continue;
>> if ((n_leases = getLeases(net->data.network.name, net->mac,
>> &leases)) < 0) {
>> OH NOES!!!!!
>> goto error;
>> if (n_leases) {
>> bobloblawlawblog.com ....
>> }
>>
>> etc etc.
>> }
>>
>> various cleanup stuff etc.
>>
>> }
>>
>> The function getLeases would be a thin (if any) wrapper around a
>> function in the network driver called networkGetDHCPLeases(). The
>> toplevel function in qemu and libxl would then be simple a bit of glue
>> followed by a call to virDomainGetDHCPInterfaces() with a pointer to the
>> appropriate getLeases function.
>>
>> This way we would eliminate almost all of the duplicate code (most would
>> go into domain_conf.c, and a bit into bridge_driver.c) without needing
>> to teach the network driver about the internal workings of a domain def.
>>
>> Does that make any sense?
> Had a look at this and tried, seems hard to put into domain_conf.c:
> except for the vm->def->nets, almost all the other things are called
> from src/libvirt-domain.c or src/libvirt-network.c, not only the
> getLeases cb of a specific network, but even the virDomainInterfacePtr
> itself is defined in libvirt-domain.h and also its Free function (in case of
> error, virNetworkDHCPLeaseFree and virDomainInterfaceFree are also
> needed). Ideas?
Hrm, maybe just go with the small amount of copied code? :-)
When originally looking at the patch, I thought it might be quite disruptive to
factor it out into something that could be used by both drivers. Unless others
have a clever idea, I'm leaning towards pushing this patch as is.
Regards,
Jim
8 years, 6 months
[libvirt] [PATCHv2 0/3] qemu: support for SLIC ACPI tables
by Ján Tomko
Windows uses this BLOB for activation purposes.
https://bugzilla.redhat.com/show_bug.cgi?id=1327537
In v2:
* make <table> a subelement of <acpi>
* minor documentation fixes
* comma-escape the value on QEMU command line
* mention that this option was added in 2009
Ján Tomko (3):
conf: add <acpi><table> to <os>
qemu: format SLIC ACPI table command line
security: label the slic_table
docs/formatdomain.html.in | 8 ++++
docs/schemas/domaincommon.rng | 18 +++++++++
src/conf/domain_conf.c | 46 ++++++++++++++++++++++
src/conf/domain_conf.h | 1 +
src/qemu/qemu_command.c | 7 ++++
src/security/security_dac.c | 5 +++
src/security/security_selinux.c | 5 +++
src/security/virt-aa-helper.c | 4 ++
.../qemuxml2argvdata/qemuxml2argv-acpi-table.args | 19 +++++++++
tests/qemuxml2argvdata/qemuxml2argv-acpi-table.xml | 30 ++++++++++++++
tests/qemuxml2argvtest.c | 2 +
.../qemuxml2xmlout-acpi-table.xml | 34 ++++++++++++++++
tests/qemuxml2xmltest.c | 3 ++
13 files changed, 182 insertions(+)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-acpi-table.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-acpi-table.xml
create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-acpi-table.xml
--
2.7.3
8 years, 6 months
[libvirt] [PATCH] esx: use lsilogic adapter type in vol create.
by Dawid Zamirski
ESX will refuse to attach VMDKS that have buslogic adatper type to 64bit
VMs whereas lsilogic works fine both 32bit and 64bit VMs.
---
src/esx/esx_storage_backend_vmfs.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/esx/esx_storage_backend_vmfs.c b/src/esx/esx_storage_backend_vmfs.c
index d03d33a..a1a660b 100644
--- a/src/esx/esx_storage_backend_vmfs.c
+++ b/src/esx/esx_storage_backend_vmfs.c
@@ -966,9 +966,9 @@ esxStorageVolCreateXML(virStoragePoolPtr pool,
/*
* FIXME: The adapter type is a required parameter, but there is no
* way to let the user specify it in the volume XML config. Therefore,
- * default to 'busLogic' here.
+ * default to 'lsilogic' here.
*/
- virtualDiskSpec->adapterType = (char *)"busLogic";
+ virtualDiskSpec->adapterType = (char *)"lsilogic";
virtualDiskSpec->capacityKb->value =
VIR_DIV_UP(def->target.capacity, 1024); /* Scale from byte to kilobyte */
--
2.7.4
8 years, 6 months
[libvirt] [PATCH v2] qemucapstest: replace caps-1.6.50 with updated caps-1.7.0
by Pavel Hrdina
The qemu-1.6.50 is a beta before the new minor version, let's replace it with
the release qemu-1.7.0.
Signed-off-by: Pavel Hrdina <phrdina(a)redhat.com>
---
tests/domaincapsschemadata/qemu_1.6.50.x86_64.xml | 78 -
tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml | 78 +
tests/domaincapstest.c | 2 +-
.../caps_1.6.50.x86_64.replies | 2848 -----------------
tests/qemucapabilitiesdata/caps_1.6.50.x86_64.xml | 197 --
.../qemucapabilitiesdata/caps_1.7.0.x86_64.replies | 3195 ++++++++++++++++++++
tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml | 200 ++
tests/qemucapabilitiestest.c | 2 +-
8 files changed, 3475 insertions(+), 3125 deletions(-)
delete mode 100644 tests/domaincapsschemadata/qemu_1.6.50.x86_64.xml
create mode 100644 tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml
delete mode 100644 tests/qemucapabilitiesdata/caps_1.6.50.x86_64.replies
delete mode 100644 tests/qemucapabilitiesdata/caps_1.6.50.x86_64.xml
create mode 100644 tests/qemucapabilitiesdata/caps_1.7.0.x86_64.replies
create mode 100644 tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
diff --git a/tests/domaincapsschemadata/qemu_1.6.50.x86_64.xml b/tests/domaincapsschemadata/qemu_1.6.50.x86_64.xml
deleted file mode 100644
index 161d0ab..0000000
--- a/tests/domaincapsschemadata/qemu_1.6.50.x86_64.xml
+++ /dev/null
@@ -1,78 +0,0 @@
-<domainCapabilities>
- <path>/usr/bin/qemu-system-x86_64</path>
- <domain>kvm</domain>
- <machine>pc-i440fx-1.7</machine>
- <arch>x86_64</arch>
- <vcpu max='255'/>
- <os supported='yes'>
- <loader supported='yes'>
- <value>/usr/share/AAVMF/AAVMF_CODE.fd</value>
- <value>/usr/share/OVMF/OVMF_CODE.fd</value>
- <enum name='type'>
- <value>rom</value>
- <value>pflash</value>
- </enum>
- <enum name='readonly'>
- <value>yes</value>
- <value>no</value>
- </enum>
- </loader>
- </os>
- <devices>
- <disk supported='yes'>
- <enum name='diskDevice'>
- <value>disk</value>
- <value>cdrom</value>
- <value>floppy</value>
- <value>lun</value>
- </enum>
- <enum name='bus'>
- <value>ide</value>
- <value>fdc</value>
- <value>scsi</value>
- <value>virtio</value>
- <value>usb</value>
- </enum>
- </disk>
- <graphics supported='yes'>
- <enum name='type'>
- <value>sdl</value>
- <value>vnc</value>
- <value>spice</value>
- </enum>
- </graphics>
- <video supported='yes'>
- <enum name='modelType'>
- <value>vga</value>
- <value>cirrus</value>
- <value>vmvga</value>
- <value>qxl</value>
- </enum>
- </video>
- <hostdev supported='yes'>
- <enum name='mode'>
- <value>subsystem</value>
- </enum>
- <enum name='startupPolicy'>
- <value>default</value>
- <value>mandatory</value>
- <value>requisite</value>
- <value>optional</value>
- </enum>
- <enum name='subsysType'>
- <value>usb</value>
- <value>pci</value>
- <value>scsi</value>
- </enum>
- <enum name='capsType'/>
- <enum name='pciBackend'>
- <value>default</value>
- <value>kvm</value>
- <value>vfio</value>
- </enum>
- </hostdev>
- </devices>
- <features>
- <gic supported='no'/>
- </features>
-</domainCapabilities>
diff --git a/tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml b/tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml
new file mode 100644
index 0000000..161d0ab
--- /dev/null
+++ b/tests/domaincapsschemadata/qemu_1.7.0.x86_64.xml
@@ -0,0 +1,78 @@
+<domainCapabilities>
+ <path>/usr/bin/qemu-system-x86_64</path>
+ <domain>kvm</domain>
+ <machine>pc-i440fx-1.7</machine>
+ <arch>x86_64</arch>
+ <vcpu max='255'/>
+ <os supported='yes'>
+ <loader supported='yes'>
+ <value>/usr/share/AAVMF/AAVMF_CODE.fd</value>
+ <value>/usr/share/OVMF/OVMF_CODE.fd</value>
+ <enum name='type'>
+ <value>rom</value>
+ <value>pflash</value>
+ </enum>
+ <enum name='readonly'>
+ <value>yes</value>
+ <value>no</value>
+ </enum>
+ </loader>
+ </os>
+ <devices>
+ <disk supported='yes'>
+ <enum name='diskDevice'>
+ <value>disk</value>
+ <value>cdrom</value>
+ <value>floppy</value>
+ <value>lun</value>
+ </enum>
+ <enum name='bus'>
+ <value>ide</value>
+ <value>fdc</value>
+ <value>scsi</value>
+ <value>virtio</value>
+ <value>usb</value>
+ </enum>
+ </disk>
+ <graphics supported='yes'>
+ <enum name='type'>
+ <value>sdl</value>
+ <value>vnc</value>
+ <value>spice</value>
+ </enum>
+ </graphics>
+ <video supported='yes'>
+ <enum name='modelType'>
+ <value>vga</value>
+ <value>cirrus</value>
+ <value>vmvga</value>
+ <value>qxl</value>
+ </enum>
+ </video>
+ <hostdev supported='yes'>
+ <enum name='mode'>
+ <value>subsystem</value>
+ </enum>
+ <enum name='startupPolicy'>
+ <value>default</value>
+ <value>mandatory</value>
+ <value>requisite</value>
+ <value>optional</value>
+ </enum>
+ <enum name='subsysType'>
+ <value>usb</value>
+ <value>pci</value>
+ <value>scsi</value>
+ </enum>
+ <enum name='capsType'/>
+ <enum name='pciBackend'>
+ <value>default</value>
+ <value>kvm</value>
+ <value>vfio</value>
+ </enum>
+ </hostdev>
+ </devices>
+ <features>
+ <gic supported='no'/>
+ </features>
+</domainCapabilities>
diff --git a/tests/domaincapstest.c b/tests/domaincapstest.c
index 3436197..670f4fb 100644
--- a/tests/domaincapstest.c
+++ b/tests/domaincapstest.c
@@ -286,7 +286,7 @@ mymain(void)
#if WITH_QEMU
- DO_TEST_QEMU("1.6.50", "caps_1.6.50",
+ DO_TEST_QEMU("1.7.0", "caps_1.7.0",
"/usr/bin/qemu-system-x86_64", NULL,
"x86_64", VIR_DOMAIN_VIRT_KVM);
diff --git a/tests/qemucapabilitiesdata/caps_1.6.50.x86_64.replies b/tests/qemucapabilitiesdata/caps_1.6.50.x86_64.replies
deleted file mode 100644
index d23249c..0000000
--- a/tests/qemucapabilitiesdata/caps_1.6.50.x86_64.replies
+++ /dev/null
@@ -1,2848 +0,0 @@
-{
- "QMP": {
- "version": {
- "qemu": {
- "micro": 50,
- "minor": 6,
- "major": 1
- },
- "package": ""
- },
- "capabilities": [
- ]
- }
-}
-
-{
- "return": {
- },
- "id": "libvirt-1"
-}
-
-{
- "return": {
- "qemu": {
- "micro": 50,
- "minor": 6,
- "major": 1
- },
- "package": ""
- },
- "id": "libvirt-2"
-}
-
-{
- "return": {
- "arch": "x86_64"
- },
- "id": "libvirt-3"
-}
-
-{
- "return": [
- {
- "name": "query-rx-filter"
- },
- {
- "name": "chardev-remove"
- },
- {
- "name": "chardev-add"
- },
- {
- "name": "query-tpm-types"
- },
- {
- "name": "query-tpm-models"
- },
- {
- "name": "query-tpm"
- },
- {
- "name": "query-target"
- },
- {
- "name": "query-cpu-definitions"
- },
- {
- "name": "query-machines"
- },
- {
- "name": "device-list-properties"
- },
- {
- "name": "qom-list-types"
- },
- {
- "name": "change-vnc-password"
- },
- {
- "name": "nbd-server-stop"
- },
- {
- "name": "nbd-server-add"
- },
- {
- "name": "nbd-server-start"
- },
- {
- "name": "qom-get"
- },
- {
- "name": "qom-set"
- },
- {
- "name": "qom-list"
- },
- {
- "name": "query-block-jobs"
- },
- {
- "name": "query-balloon"
- },
- {
- "name": "query-migrate-capabilities"
- },
- {
- "name": "migrate-set-capabilities"
- },
- {
- "name": "query-migrate"
- },
- {
- "name": "query-command-line-options"
- },
- {
- "name": "query-uuid"
- },
- {
- "name": "query-name"
- },
- {
- "name": "query-spice"
- },
- {
- "name": "query-vnc"
- },
- {
- "name": "query-mice"
- },
- {
- "name": "query-status"
- },
- {
- "name": "query-kvm"
- },
- {
- "name": "query-pci"
- },
- {
- "name": "query-cpus"
- },
- {
- "name": "query-blockstats"
- },
- {
- "name": "query-block"
- },
- {
- "name": "query-chardev"
- },
- {
- "name": "query-events"
- },
- {
- "name": "query-commands"
- },
- {
- "name": "query-version"
- },
- {
- "name": "human-monitor-command"
- },
- {
- "name": "qmp_capabilities"
- },
- {
- "name": "add_client"
- },
- {
- "name": "expire_password"
- },
- {
- "name": "set_password"
- },
- {
- "name": "block_set_io_throttle"
- },
- {
- "name": "block_passwd"
- },
- {
- "name": "query-fdsets"
- },
- {
- "name": "remove-fd"
- },
- {
- "name": "add-fd"
- },
- {
- "name": "closefd"
- },
- {
- "name": "getfd"
- },
- {
- "name": "set_link"
- },
- {
- "name": "balloon"
- },
- {
- "name": "drive-mirror"
- },
- {
- "name": "blockdev-snapshot-delete-internal-sync"
- },
- {
- "name": "blockdev-snapshot-internal-sync"
- },
- {
- "name": "blockdev-snapshot-sync"
- },
- {
- "name": "transaction"
- },
- {
- "name": "block-job-complete"
- },
- {
- "name": "block-job-resume"
- },
- {
- "name": "block-job-pause"
- },
- {
- "name": "block-job-cancel"
- },
- {
- "name": "block-job-set-speed"
- },
- {
- "name": "drive-backup"
- },
- {
- "name": "block-commit"
- },
- {
- "name": "block-stream"
- },
- {
- "name": "block_resize"
- },
- {
- "name": "netdev_del"
- },
- {
- "name": "netdev_add"
- },
- {
- "name": "dump-guest-memory"
- },
- {
- "name": "client_migrate_info"
- },
- {
- "name": "migrate_set_downtime"
- },
- {
- "name": "migrate_set_speed"
- },
- {
- "name": "query-migrate-cache-size"
- },
- {
- "name": "migrate-set-cache-size"
- },
- {
- "name": "migrate_cancel"
- },
- {
- "name": "migrate"
- },
- {
- "name": "xen-set-global-dirty-log"
- },
- {
- "name": "xen-save-devices-state"
- },
- {
- "name": "ringbuf-read"
- },
- {
- "name": "ringbuf-write"
- },
- {
- "name": "inject-nmi"
- },
- {
- "name": "pmemsave"
- },
- {
- "name": "memsave"
- },
- {
- "name": "cpu-add"
- },
- {
- "name": "cpu"
- },
- {
- "name": "send-key"
- },
- {
- "name": "device_del"
- },
- {
- "name": "device_add"
- },
- {
- "name": "system_powerdown"
- },
- {
- "name": "system_reset"
- },
- {
- "name": "system_wakeup"
- },
- {
- "name": "cont"
- },
- {
- "name": "stop"
- },
- {
- "name": "screendump"
- },
- {
- "name": "change"
- },
- {
- "name": "eject"
- },
- {
- "name": "quit"
- }
- ],
- "id": "libvirt-4"
-}
-
-{
- "return": {
- "fd": 10,
- "fdset-id": 0
- },
- "id": "libvirt-5"
-}
-
-{
- "id": "libvirt-6",
- "error": {
- "class": "GenericError",
- "desc": "Parameter 'top' is missing"
- }
-}
-
-{
- "return": [
- {
- "name": "BLOCK_IMAGE_CORRUPTED"
- },
- {
- "name": "GUEST_PANICKED"
- },
- {
- "name": "SPICE_MIGRATE_COMPLETED"
- },
- {
- "name": "BALLOON_CHANGE"
- },
- {
- "name": "WAKEUP"
- },
- {
- "name": "SUSPEND_DISK"
- },
- {
- "name": "SUSPEND"
- },
- {
- "name": "NIC_RX_FILTER_CHANGED"
- },
- {
- "name": "DEVICE_TRAY_MOVED"
- },
- {
- "name": "DEVICE_DELETED"
- },
- {
- "name": "BLOCK_JOB_READY"
- },
- {
- "name": "BLOCK_JOB_ERROR"
- },
- {
- "name": "BLOCK_JOB_CANCELLED"
- },
- {
- "name": "BLOCK_JOB_COMPLETED"
- },
- {
- "name": "SPICE_DISCONNECTED"
- },
- {
- "name": "SPICE_INITIALIZED"
- },
- {
- "name": "SPICE_CONNECTED"
- },
- {
- "name": "WATCHDOG"
- },
- {
- "name": "RTC_CHANGE"
- },
- {
- "name": "BLOCK_IO_ERROR"
- },
- {
- "name": "VNC_DISCONNECTED"
- },
- {
- "name": "VNC_INITIALIZED"
- },
- {
- "name": "VNC_CONNECTED"
- },
- {
- "name": "RESUME"
- },
- {
- "name": "STOP"
- },
- {
- "name": "POWERDOWN"
- },
- {
- "name": "RESET"
- },
- {
- "name": "SHUTDOWN"
- }
- ],
- "id": "libvirt-7"
-}
-
-{
- "return": [
- {
- "name": "virtio-blk-device"
- },
- {
- "name": "ib700"
- },
- {
- "name": "ICH9 LPC"
- },
- {
- "name": "port92"
- },
- {
- "name": "i6300esb"
- },
- {
- "name": "kvm-pci-assign"
- },
- {
- "name": "virtio-scsi-device"
- },
- {
- "name": "apic"
- },
- {
- "name": "pc-testdev"
- },
- {
- "name": "fusbh200-ehci-usb"
- },
- {
- "name": "virtio-scsi-pci"
- },
- {
- "name": "usb-ehci"
- },
- {
- "name": "exynos4210-ehci-usb"
- },
- {
- "name": "xlnx,ps7-usb"
- },
- {
- "name": "virtio-balloon-pci"
- },
- {
- "name": "virtio-net-pci"
- },
- {
- "name": "ich9-usb-ehci2"
- },
- {
- "name": "ich9-ahci"
- },
- {
- "name": "ich9-usb-ehci1"
- },
- {
- "name": "isa-ide"
- },
- {
- "name": "ICH9 SMB"
- },
- {
- "name": "piix4-usb-uhci"
- },
- {
- "name": "vt82c686b-usb-uhci"
- },
- {
- "name": "i82558b"
- },
- {
- "name": "i82558a"
- },
- {
- "name": "isa-fdc"
- },
- {
- "name": "isabus-bridge"
- },
- {
- "name": "sb16"
- },
- {
- "name": "i2c-bus"
- },
- {
- "name": "piix3-ide"
- },
- {
- "name": "ioapic"
- },
- {
- "name": "pci-bridge"
- },
- {
- "name": "HDA"
- },
- {
- "name": "am53c974"
- },
- {
- "name": "hpet"
- },
- {
- "name": "vmmouse"
- },
- {
- "name": "i82801b11-bridge"
- },
- {
- "name": "nvme"
- },
- {
- "name": "lsi53c810"
- },
- {
- "name": "vmxnet3"
- },
- {
- "name": "isa-cirrus-vga"
- },
- {
- "name": "dc390"
- },
- {
- "name": "vmware-svga"
- },
- {
- "name": "smbus-eeprom"
- },
- {
- "name": "i82801"
- },
- {
- "name": "ccid-card-passthru"
- },
- {
- "name": "fw_cfg"
- },
- {
- "name": "x86_64-cpu"
- },
- {
- "name": "piix3-usb-uhci"
- },
- {
- "name": "usb-audio"
- },
- {
- "name": "virtio-9p-device"
- },
- {
- "name": "i82557c"
- },
- {
- "name": "i82557b"
- },
- {
- "name": "i82557a"
- },
- {
- "name": "IndustryPack"
- },
- {
- "name": "qxl"
- },
- {
- "name": "pvscsi"
- },
- {
- "name": "rtl8139"
- },
- {
- "name": "isa-applesmc"
- },
- {
- "name": "xen-platform"
- },
- {
- "name": "container"
- },
- {
- "name": "virtio-mmio"
- },
- {
- "name": "vfio-pci"
- },
- {
- "name": "cfi.pflash01"
- },
- {
- "name": "usb-kbd"
- },
- {
- "name": "ich9-usb-uhci5"
- },
- {
- "name": "isa-vga"
- },
- {
- "name": "pci-testdev"
- },
- {
- "name": "usb-tablet"
- },
- {
- "name": "vmport"
- },
- {
- "name": "virtio-rng-pci"
- },
- {
- "name": "kvmvapic"
- },
- {
- "name": "usb-bt-dongle"
- },
- {
- "name": "sysbus-fdc"
- },
- {
- "name": "piix4-ide"
- },
- {
- "name": "xen-pci-passthrough"
- },
- {
- "name": "e1000"
- },
- {
- "name": "AC97"
- },
- {
- "name": "ich9-usb-uhci6"
- },
- {
- "name": "ipoctal232"
- },
- {
- "name": "mch"
- },
- {
- "name": "mc146818rtc"
- },
- {
- "name": "ivshmem"
- },
- {
- "name": "usb-ccid"
- },
- {
- "name": "sysbus-ahci"
- },
- {
- "name": "kvmclock"
- },
- {
- "name": "i82562"
- },
- {
- "name": "hda-output"
- },
- {
- "name": "pci-serial-4x"
- },
- {
- "name": "ccid-bus"
- },
- {
- "name": "i82559er"
- },
- {
- "name": "virtio-balloon-device"
- },
- {
- "name": "megasas"
- },
- {
- "name": "i8042"
- },
- {
- "name": "intel-hda"
- },
- {
- "name": "hda-duplex"
- },
- {
- "name": "virtio-serial-pci"
- },
- {
- "name": "ne2k_pci"
- },
- {
- "name": "ich9-usb-uhci2"
- },
- {
- "name": "ich9-usb-uhci3"
- },
- {
- "name": "virtconsole"
- },
- {
- "name": "ich9-usb-uhci4"
- },
- {
- "name": "isa-parallel"
- },
- {
- "name": "pci-serial"
- },
- {
- "name": "ich9-usb-uhci1"
- },
- {
- "name": "PCI"
- },
- {
- "name": "adlib"
- },
- {
- "name": "SUNW,fdtwo"
- },
- {
- "name": "ide-cd"
- },
- {
- "name": "isa-debugcon"
- },
- {
- "name": "usb-bot"
- },
- {
- "name": "i82551"
- },
- {
- "name": "i82550"
- },
- {
- "name": "isa-serial"
- },
- {
- "name": "PCIE"
- },
- {
- "name": "kvm-ioapic"
- },
- {
- "name": "nec-usb-xhci"
- },
- {
- "name": "System"
- },
- {
- "name": "kvm-apic"
- },
- {
- "name": "ich9-intel-hda"
- },
- {
- "name": "virtio-net-device"
- },
- {
- "name": "q35-pcihost"
- },
- {
- "name": "usb-wacom-tablet"
- },
- {
- "name": "PIIX4_PM"
- },
- {
- "name": "kvm-i8259"
- },
- {
- "name": "xen-apic"
- },
- {
- "name": "scsi-cd"
- },
- {
- "name": "pci-ohci"
- },
- {
- "name": "i440FX"
- },
- {
- "name": "usb-braille"
- },
- {
- "name": "virtserialport"
- },
- {
- "name": "pci-serial-2x"
- },
- {
- "name": "icc-bridge"
- },
- {
- "name": "xio3130-downstream"
- },
- {
- "name": "rng-random"
- },
- {
- "name": "hda-micro"
- },
- {
- "name": "scsi-disk"
- },
- {
- "name": "vhost-scsi"
- },
- {
- "name": "lsi53c895a"
- },
- {
- "name": "SCSI"
- },
- {
- "name": "pcnet"
- },
- {
- "name": "scsi-generic"
- },
- {
- "name": "pvpanic"
- },
- {
- "name": "virtio-serial-device"
- },
- {
- "name": "virtio-serial-bus"
- },
- {
- "name": "vhost-scsi-pci"
- },
- {
- "name": "usb-bus"
- },
- {
- "name": "ne2k_isa"
- },
- {
- "name": "IDE"
- },
- {
- "name": "ccid-card-emulated"
- },
- {
- "name": "tegra2-ehci-usb"
- },
- {
- "name": "usb-net"
- },
- {
- "name": "virtio-mmio-bus"
- },
- {
- "name": "usb-hub"
- },
- {
- "name": "i440FX-pcihost"
- },
- {
- "name": "usb-mouse"
- },
- {
- "name": "ISA"
- },
- {
- "name": "cs4231a"
- },
- {
- "name": "usb-serial"
- },
- {
- "name": "scsi-block"
- },
- {
- "name": "isa-i8259"
- },
- {
- "name": "sga"
- },
- {
- "name": "isa-debug-exit"
- },
- {
- "name": "virtio-rng-device"
- },
- {
- "name": "qemu-console"
- },
- {
- "name": "ioh3420"
- },
- {
- "name": "ES1370"
- },
- {
- "name": "PIIX3"
- },
- {
- "name": "isa-pcspk"
- },
- {
- "name": "ide-hd"
- },
- {
- "name": "rng-egd"
- },
- {
- "name": "cirrus-vga"
- },
- {
- "name": "kvm-pit"
- },
- {
- "name": "virtio-9p-pci"
- },
- {
- "name": "xen-pvdevice"
- },
- {
- "name": "icc-bus"
- },
- {
- "name": "ide-drive"
- },
- {
- "name": "x3130-upstream"
- },
- {
- "name": "virtio-pci-bus"
- },
- {
- "name": "qxl-vga"
- },
- {
- "name": "usb-uas"
- },
- {
- "name": "virtio-blk-pci"
- },
- {
- "name": "sysbus-ohci"
- },
- {
- "name": "esp"
- },
- {
- "name": "piix3-ide-xen"
- },
- {
- "name": "i82559c"
- },
- {
- "name": "i82559b"
- },
- {
- "name": "i82559a"
- },
- {
- "name": "scsi-hd"
- },
- {
- "name": "PIIX3-xen"
- },
- {
- "name": "usb-storage"
- },
- {
- "name": "isa-pit"
- },
- {
- "name": "tpci200"
- },
- {
- "name": "gus"
- },
- {
- "name": "VGA"
- }
- ],
- "id": "libvirt-8"
-}
-
-{
- "return": [
- {
- "name": "command_serr_enable",
- "type": "on/off"
- },
- {
- "name": "multifunction",
- "type": "on/off"
- },
- {
- "name": "rombar",
- "type": "uint32"
- },
- {
- "name": "romfile",
- "type": "string"
- },
- {
- "name": "addr",
- "type": "pci-devfn"
- },
- {
- "name": "scsi",
- "type": "on/off"
- },
- {
- "name": "config-wce",
- "type": "on/off"
- },
- {
- "name": "serial",
- "type": "string"
- },
- {
- "name": "secs",
- "type": "uint32"
- },
- {
- "name": "heads",
- "type": "uint32"
- },
- {
- "name": "cyls",
- "type": "uint32"
- },
- {
- "name": "discard_granularity",
- "type": "uint32"
- },
- {
- "name": "bootindex",
- "type": "int32"
- },
- {
- "name": "opt_io_size",
- "type": "uint32"
- },
- {
- "name": "min_io_size",
- "type": "uint16"
- },
- {
- "name": "physical_block_size",
- "type": "blocksize"
- },
- {
- "name": "logical_block_size",
- "type": "blocksize"
- },
- {
- "name": "drive",
- "type": "drive"
- },
- {
- "name": "event_idx",
- "type": "on/off"
- },
- {
- "name": "indirect_desc",
- "type": "on/off"
- },
- {
- "name": "x-data-plane",
- "type": "on/off"
- },
- {
- "name": "vectors",
- "type": "uint32"
- },
- {
- "name": "ioeventfd",
- "type": "on/off"
- },
- {
- "name": "class",
- "type": "hex32"
- }
- ],
- "id": "libvirt-9"
-}
-
-{
- "return": [
- {
- "name": "command_serr_enable",
- "type": "on/off"
- },
- {
- "name": "multifunction",
- "type": "on/off"
- },
- {
- "name": "rombar",
- "type": "uint32"
- },
- {
- "name": "romfile",
- "type": "string"
- },
- {
- "name": "addr",
- "type": "pci-devfn"
- },
- {
- "name": "tx",
- "type": "string"
- },
- {
- "name": "x-txburst",
- "type": "int32"
- },
- {
- "name": "x-txtimer",
- "type": "uint32"
- },
- {
- "name": "bootindex",
- "type": "int32"
- },
- {
- "name": "netdev",
- "type": "netdev"
- },
- {
- "name": "vlan",
- "type": "vlan"
- },
- {
- "name": "mac",
- "type": "macaddr"
- },
- {
- "name": "mq",
- "type": "on/off"
- },
- {
- "name": "ctrl_guest_offloads",
- "type": "on/off"
- },
- {
- "name": "ctrl_mac_addr",
- "type": "on/off"
- },
- {
- "name": "ctrl_rx_extra",
- "type": "on/off"
- },
- {
- "name": "ctrl_vlan",
- "type": "on/off"
- },
- {
- "name": "ctrl_rx",
- "type": "on/off"
- },
- {
- "name": "ctrl_vq",
- "type": "on/off"
- },
- {
- "name": "status",
- "type": "on/off"
- },
- {
- "name": "mrg_rxbuf",
- "type": "on/off"
- },
- {
- "name": "host_ufo",
- "type": "on/off"
- },
- {
- "name": "host_ecn",
- "type": "on/off"
- },
- {
- "name": "host_tso6",
- "type": "on/off"
- },
- {
- "name": "host_tso4",
- "type": "on/off"
- },
- {
- "name": "guest_ufo",
- "type": "on/off"
- },
- {
- "name": "guest_ecn",
- "type": "on/off"
- },
- {
- "name": "guest_tso6",
- "type": "on/off"
- },
- {
- "name": "guest_tso4",
- "type": "on/off"
- },
- {
- "name": "gso",
- "type": "on/off"
- },
- {
- "name": "guest_csum",
- "type": "on/off"
- },
- {
- "name": "csum",
- "type": "on/off"
- },
- {
- "name": "any_layout",
- "type": "on/off"
- },
- {
- "name": "event_idx",
- "type": "on/off"
- },
- {
- "name": "indirect_desc",
- "type": "on/off"
- },
- {
- "name": "vectors",
- "type": "uint32"
- },
- {
- "name": "ioeventfd",
- "type": "on/off"
- }
- ],
- "id": "libvirt-10"
-}
-
-{
- "return": [
- {
- "name": "ioeventfd",
- "type": "on/off"
- },
- {
- "name": "vectors",
- "type": "uint32"
- }
- ],
- "id": "libvirt-11"
-}
-
-{
- "id": "libvirt-12",
- "error": {
- "class": "DeviceNotFound",
- "desc": "Device 'virtio-blk-ccw' not found"
- }
-}
-
-{
- "id": "libvirt-13",
- "error": {
- "class": "DeviceNotFound",
- "desc": "Device 'virtio-net-ccw' not found"
- }
-}
-
-{
- "id": "libvirt-14",
- "error": {
- "class": "DeviceNotFound",
- "desc": "Device 'virtio-scsi-ccw' not found"
- }
-}
-
-{
- "id": "libvirt-15",
- "error": {
- "class": "DeviceNotFound",
- "desc": "Device 'virtio-blk-s390' not found"
- }
-}
-
-{
- "id": "libvirt-16",
- "error": {
- "class": "DeviceNotFound",
- "desc": "Device 'virtio-net-s390' not found"
- }
-}
-
-{
- "id": "libvirt-17",
- "error": {
- "class": "DeviceNotFound",
- "desc": "Device 'pci-assign' not found"
- }
-}
-
-{
- "return": [
- {
- "name": "command_serr_enable",
- "type": "on/off"
- },
- {
- "name": "multifunction",
- "type": "on/off"
- },
- {
- "name": "rombar",
- "type": "uint32"
- },
- {
- "name": "romfile",
- "type": "string"
- },
- {
- "name": "addr",
- "type": "pci-devfn"
- },
- {
- "name": "configfd",
- "type": "string"
- },
- {
- "name": "bootindex",
- "type": "int32"
- },
- {
- "name": "share_intx",
- "type": "on/off"
- },
- {
- "name": "prefer_msi",
- "type": "on/off"
- },
- {
- "name": "host",
- "type": "pci-host-devaddr"
- }
- ],
- "id": "libvirt-18"
-}
-
-{
- "return": [
- {
- "name": "command_serr_enable",
- "type": "on/off"
- },
- {
- "name": "multifunction",
- "type": "on/off"
- },
- {
- "name": "rombar",
- "type": "uint32"
- },
- {
- "name": "romfile",
- "type": "string"
- },
- {
- "name": "addr",
- "type": "pci-devfn"
- },
- {
- "name": "bootindex",
- "type": "int32"
- },
- {
- "name": "x-vga",
- "type": "on/off"
- },
- {
- "name": "x-intx-mmap-timeout-ms",
- "type": "uint32"
- },
- {
- "name": "host",
- "type": "pci-host-devaddr"
- }
- ],
- "id": "libvirt-19"
-}
-
-{
- "return": [
- {
- "name": "lun",
- "type": "uint32"
- },
- {
- "name": "scsi-id",
- "type": "uint32"
- },
- {
- "name": "channel",
- "type": "uint32"
- },
- {
- "name": "wwn",
- "type": "hex64"
- },
- {
- "name": "dpofua",
- "type": "on/off"
- },
- {
- "name": "removable",
- "type": "on/off"
- },
- {
- "name": "product",
- "type": "string"
- },
- {
- "name": "vendor",
- "type": "string"
- },
- {
- "name": "serial",
- "type": "string"
- },
- {
- "name": "ver",
- "type": "string"
- },
- {
- "name": "discard_granularity",
- "type": "uint32"
- },
- {
- "name": "bootindex",
- "type": "int32"
- },
- {
- "name": "opt_io_size",
- "type": "uint32"
- },
- {
- "name": "min_io_size",
- "type": "uint16"
- },
- {
- "name": "physical_block_size",
- "type": "blocksize"
- },
- {
- "name": "logical_block_size",
- "type": "blocksize"
- },
- {
- "name": "drive",
- "type": "drive"
- }
- ],
- "id": "libvirt-20"
-}
-
-{
- "return": [
- {
- "name": "unit",
- "type": "uint32"
- },
- {
- "name": "model",
- "type": "string"
- },
- {
- "name": "serial",
- "type": "string"
- },
- {
- "name": "wwn",
- "type": "hex64"
- },
- {
- "name": "ver",
- "type": "string"
- },
- {
- "name": "discard_granularity",
- "type": "uint32"
- },
- {
- "name": "bootindex",
- "type": "int32"
- },
- {
- "name": "opt_io_size",
- "type": "uint32"
- },
- {
- "name": "min_io_size",
- "type": "uint16"
- },
- {
- "name": "physical_block_size",
- "type": "blocksize"
- },
- {
- "name": "logical_block_size",
- "type": "blocksize"
- },
- {
- "name": "drive",
- "type": "drive"
- }
- ],
- "id": "libvirt-21"
-}
-
-{
- "return": [
- {
- "name": "command_serr_enable",
- "type": "on/off"
- },
- {
- "name": "multifunction",
- "type": "on/off"
- },
- {
- "name": "rombar",
- "type": "uint32"
- },
- {
- "name": "romfile",
- "type": "string"
- },
- {
- "name": "addr",
- "type": "pci-devfn"
- },
- {
- "name": "s4_val",
- "type": "uint8"
- },
- {
- "name": "disable_s4",
- "type": "uint8"
- },
- {
- "name": "disable_s3",
- "type": "uint8"
- },
- {
- "name": "smb_io_base",
- "type": "uint32"
- }
- ],
- "id": "libvirt-22"
-}
-
-{
- "id": "libvirt-23",
- "error": {
- "class": "DeviceNotFound",
- "desc": "Device 'usb-redir' not found"
- }
-}
-
-{
- "id": "libvirt-24",
- "error": {
- "class": "DeviceNotFound",
- "desc": "Device 'usb-host' not found"
- }
-}
-
-{
- "return": [
- {
- "name": "lun",
- "type": "uint32"
- },
- {
- "name": "scsi-id",
- "type": "uint32"
- },
- {
- "name": "channel",
- "type": "uint32"
- },
- {
- "name": "bootindex",
- "type": "int32"
- },
- {
- "name": "drive",
- "type": "drive"
- }
- ],
- "id": "libvirt-25"
-}
-
-{
- "return": [
- {
- "name": "pci-hole64-size",
- "type": "size"
- }
- ],
- "id": "libvirt-26"
-}
-
-{
- "return": [
- {
- "name": "pci-hole64-size",
- "type": "size"
- },
- {
- "name": "MCFG",
- "type": "uint64"
- }
- ],
- "id": "libvirt-27"
-}
-
-{
- "return": [
- {
- "name": "full-path",
- "type": "on/off"
- },
- {
- "name": "serial",
- "type": "string"
- },
- {
- "name": "port",
- "type": "string"
- },
- {
- "name": "removable",
- "type": "on/off"
- },
- {
- "name": "discard_granularity",
- "type": "uint32"
- },
- {
- "name": "bootindex",
- "type": "int32"
- },
- {
- "name": "opt_io_size",
- "type": "uint32"
- },
- {
- "name": "min_io_size",
- "type": "uint16"
- },
- {
- "name": "physical_block_size",
- "type": "blocksize"
- },
- {
- "name": "logical_block_size",
- "type": "blocksize"
- },
- {
- "name": "drive",
- "type": "drive"
- }
- ],
- "id": "libvirt-28"
-}
-
-{
- "return": [
- {
- "name": "lost_tick_policy",
- "type": "LostTickPolicy"
- },
- {
- "name": "iobase",
- "type": "hex32"
- }
- ],
- "id": "libvirt-29"
-}
-
-{
- "return": [
- {
- "name": "command_serr_enable",
- "type": "on/off"
- },
- {
- "name": "multifunction",
- "type": "on/off"
- },
- {
- "name": "rombar",
- "type": "uint32"
- },
- {
- "name": "romfile",
- "type": "string"
- },
- {
- "name": "addr",
- "type": "pci-devfn"
- },
- {
- "name": "mmio",
- "type": "on/off"
- },
- {
- "name": "vgamem_mb",
- "type": "uint32"
- }
- ],
- "id": "libvirt-30"
-}
-
-{
- "return": [
- {
- "name": "command_serr_enable",
- "type": "on/off"
- },
- {
- "name": "multifunction",
- "type": "on/off"
- },
- {
- "name": "rombar",
- "type": "uint32"
- },
- {
- "name": "romfile",
- "type": "string"
- },
- {
- "name": "addr",
- "type": "pci-devfn"
- },
- {
- "name": "vgamem_mb",
- "type": "uint32"
- }
- ],
- "id": "libvirt-31"
-}
-
-{
- "return": [
- {
- "name": "command_serr_enable",
- "type": "on/off"
- },
- {
- "name": "multifunction",
- "type": "on/off"
- },
- {
- "name": "rombar",
- "type": "uint32"
- },
- {
- "name": "romfile",
- "type": "string"
- },
- {
- "name": "addr",
- "type": "pci-devfn"
- },
- {
- "name": "surfaces",
- "type": "int32"
- },
- {
- "name": "vgamem_mb",
- "type": "uint32"
- },
- {
- "name": "vram64_size_mb",
- "type": "uint32"
- },
- {
- "name": "vram_size_mb",
- "type": "uint32"
- },
- {
- "name": "ram_size_mb",
- "type": "uint32"
- },
- {
- "name": "cmdlog",
- "type": "uint32"
- },
- {
- "name": "guestdebug",
- "type": "uint32"
- },
- {
- "name": "debug",
- "type": "uint32"
- },
- {
- "name": "revision",
- "type": "uint32"
- },
- {
- "name": "vram_size",
- "type": "uint32"
- },
- {
- "name": "ram_size",
- "type": "uint32"
- }
- ],
- "id": "libvirt-32"
-}
-
-{
- "return": [
- {
- "name": "command_serr_enable",
- "type": "on/off"
- },
- {
- "name": "multifunction",
- "type": "on/off"
- },
- {
- "name": "rombar",
- "type": "uint32"
- },
- {
- "name": "romfile",
- "type": "string"
- },
- {
- "name": "addr",
- "type": "pci-devfn"
- },
- {
- "name": "surfaces",
- "type": "int32"
- },
- {
- "name": "vgamem_mb",
- "type": "uint32"
- },
- {
- "name": "vram64_size_mb",
- "type": "uint32"
- },
- {
- "name": "vram_size_mb",
- "type": "uint32"
- },
- {
- "name": "ram_size_mb",
- "type": "uint32"
- },
- {
- "name": "cmdlog",
- "type": "uint32"
- },
- {
- "name": "guestdebug",
- "type": "uint32"
- },
- {
- "name": "debug",
- "type": "uint32"
- },
- {
- "name": "revision",
- "type": "uint32"
- },
- {
- "name": "vram_size",
- "type": "uint32"
- },
- {
- "name": "ram_size",
- "type": "uint32"
- }
- ],
- "id": "libvirt-33"
-}
-
-{
- "id": "libvirt-34",
- "error": {
- "class": "DeviceNotFound",
- "desc": "Device 'virtio-gpu-pci' not found"
- }
-}
-
-{
- "id": "libvirt-35",
- "error": {
- "class": "DeviceNotFound",
- "desc": "Device 'ICH9-LPC' not found"
- }
-}
-
-{
- "return": [
- {
- "name": "command_serr_enable",
- "type": "on/off"
- },
- {
- "name": "multifunction",
- "type": "on/off"
- },
- {
- "name": "rombar",
- "type": "uint32"
- },
- {
- "name": "romfile",
- "type": "string"
- },
- {
- "name": "addr",
- "type": "pci-devfn"
- },
- {
- "name": "class",
- "type": "hex32"
- },
- {
- "name": "event_idx",
- "type": "on/off"
- },
- {
- "name": "indirect_desc",
- "type": "on/off"
- }
- ],
- "id": "libvirt-36"
-}
-
-{
- "id": "libvirt-37",
- "error": {
- "class": "DeviceNotFound",
- "desc": "Device 'virtio-balloon-ccw' not found"
- }
-}
-
-{
- "return": [
- ],
- "id": "libvirt-38"
-}
-
-{
- "return": [
- {
- "name": "msi",
- "type": "on/off"
- },
- {
- "name": "msix",
- "type": "on/off"
- },
- {
- "name": "intrs",
- "type": "uint32"
- },
- {
- "name": "slots",
- "type": "uint32"
- },
- {
- "name": "2",
- "type": "uint32"
- },
- {
- "name": "p3",
- "type": "uint32"
- }
- ]
-}
-
-{
- "return": [
- {
- "name": "xenpv",
- "cpu-max": 1
- },
- {
- "name": "pc-q35-1.4",
- "cpu-max": 255
- },
- {
- "name": "pc-q35-1.5",
- "cpu-max": 255
- },
- {
- "name": "pc-q35-1.6",
- "cpu-max": 255
- },
- {
- "name": "pc-q35-1.7",
- "cpu-max": 255,
- "alias": "q35"
- },
- {
- "name": "xenfv",
- "cpu-max": 128
- },
- {
- "name": "isapc",
- "cpu-max": 1
- },
- {
- "name": "pc-0.10",
- "cpu-max": 255
- },
- {
- "name": "pc-0.11",
- "cpu-max": 255
- },
- {
- "name": "pc-0.12",
- "cpu-max": 255
- },
- {
- "name": "pc-0.13",
- "cpu-max": 255
- },
- {
- "name": "pc-0.14",
- "cpu-max": 255
- },
- {
- "name": "pc-0.15",
- "cpu-max": 255
- },
- {
- "name": "pc-1.0",
- "cpu-max": 255
- },
- {
- "name": "pc-1.1",
- "cpu-max": 255
- },
- {
- "name": "pc-1.2",
- "cpu-max": 255
- },
- {
- "name": "pc-1.3",
- "cpu-max": 255
- },
- {
- "name": "pc-i440fx-1.4",
- "cpu-max": 255
- },
- {
- "name": "pc-i440fx-1.5",
- "cpu-max": 255
- },
- {
- "name": "pc-i440fx-1.6",
- "cpu-max": 255
- },
- {
- "name": "pc-i440fx-1.7",
- "is-default": true,
- "cpu-max": 255,
- "alias": "pc"
- },
- {
- "name": "none",
- "cpu-max": 1
- }
- ],
- "id": "libvirt-39"
-}
-
-{
- "return": [
- {
- "name": "Opteron_G5"
- },
- {
- "name": "Opteron_G4"
- },
- {
- "name": "Opteron_G3"
- },
- {
- "name": "Opteron_G2"
- },
- {
- "name": "Opteron_G1"
- },
- {
- "name": "Haswell"
- },
- {
- "name": "SandyBridge"
- },
- {
- "name": "Westmere"
- },
- {
- "name": "Nehalem"
- },
- {
- "name": "Penryn"
- },
- {
- "name": "Conroe"
- },
- {
- "name": "n270"
- },
- {
- "name": "athlon"
- },
- {
- "name": "pentium3"
- },
- {
- "name": "pentium2"
- },
- {
- "name": "pentium"
- },
- {
- "name": "486"
- },
- {
- "name": "coreduo"
- },
- {
- "name": "kvm32"
- },
- {
- "name": "qemu32"
- },
- {
- "name": "kvm64"
- },
- {
- "name": "core2duo"
- },
- {
- "name": "phenom"
- },
- {
- "name": "qemu64"
- }
- ],
- "id": "libvirt-40"
-}
-
-{
- "return": {
- "enabled": false,
- "present": true
- },
- "id": "libvirt-41"
-}
-
-{
- "return": [
- ],
- "id": "libvirt-42"
-}
-
-{
- "return": [
- ],
- "id": "libvirt-43"
-}
-
-{
- "return": [
- {
- "parameters": [
- ],
- "option": "smbios"
- },
- {
- "parameters": [
- {
- "name": "seamless-migration",
- "type": "boolean"
- },
- {
- "name": "playback-compression",
- "type": "boolean"
- },
- {
- "name": "agent-mouse",
- "type": "boolean"
- },
- {
- "name": "streaming-video",
- "type": "string"
- },
- {
- "name": "zlib-glz-wan-compression",
- "type": "string"
- },
- {
- "name": "jpeg-wan-compression",
- "type": "string"
- },
- {
- "name": "image-compression",
- "type": "string"
- },
- {
- "name": "plaintext-channel",
- "type": "string"
- },
- {
- "name": "tls-channel",
- "type": "string"
- },
- {
- "name": "tls-ciphers",
- "type": "string"
- },
- {
- "name": "x509-dh-key-file",
- "type": "string"
- },
- {
- "name": "x509-cacert-file",
- "type": "string"
- },
- {
- "name": "x509-cert-file",
- "type": "string"
- },
- {
- "name": "x509-key-password",
- "type": "string"
- },
- {
- "name": "x509-key-file",
- "type": "string"
- },
- {
- "name": "x509-dir",
- "type": "string"
- },
- {
- "name": "sasl",
- "type": "boolean"
- },
- {
- "name": "disable-agent-file-xfer",
- "type": "boolean"
- },
- {
- "name": "disable-copy-paste",
- "type": "boolean"
- },
- {
- "name": "disable-ticketing",
- "type": "boolean"
- },
- {
- "name": "password",
- "type": "string"
- },
- {
- "name": "ipv6",
- "type": "boolean"
- },
- {
- "name": "ipv4",
- "type": "boolean"
- },
- {
- "name": "addr",
- "type": "string"
- },
- {
- "name": "tls-port",
- "type": "number"
- },
- {
- "name": "port",
- "type": "number"
- }
- ],
- "option": "spice"
- },
- {
- "parameters": [
- ],
- "option": "acpi"
- },
- {
- "parameters": [
- {
- "name": "sock_fd",
- "type": "number"
- },
- {
- "name": "socket",
- "type": "string"
- },
- {
- "name": "readonly",
- "type": "boolean"
- },
- {
- "name": "writeout",
- "type": "string"
- },
- {
- "name": "security_model",
- "type": "string"
- },
- {
- "name": "mount_tag",
- "type": "string"
- },
- {
- "name": "path",
- "type": "string"
- },
- {
- "name": "fsdriver",
- "type": "string"
- }
- ],
- "option": "virtfs"
- },
- {
- "parameters": [
- {
- "name": "sock_fd",
- "type": "number"
- },
- {
- "name": "socket",
- "type": "string"
- },
- {
- "name": "readonly",
- "type": "boolean"
- },
- {
- "name": "writeout",
- "type": "string"
- },
- {
- "name": "security_model",
- "type": "string"
- },
- {
- "name": "path",
- "type": "string"
- },
- {
- "name": "fsdriver",
- "type": "string"
- }
- ],
- "option": "fsdev"
- },
- {
- "parameters": [
- {
- "name": "timestamp",
- "type": "boolean"
- }
- ],
- "option": "msg"
- },
- {
- "parameters": [
- {
- "name": "mlock",
- "type": "boolean"
- }
- ],
- "option": "realtime"
- },
- {
- "parameters": [
- ],
- "option": "tpmdev"
- },
- {
- "parameters": [
- ],
- "option": "object"
- },
- {
- "parameters": [
- {
- "name": "opaque",
- "help": "free-form string used to describe fd",
- "type": "string"
- },
- {
- "name": "set",
- "help": "ID of the fd set to add fd to",
- "type": "number"
- },
- {
- "name": "fd",
- "help": "file descriptor of which a duplicate is added to fd set",
- "type": "number"
- }
- ],
- "option": "add-fd"
- },
- {
- "parameters": [
- {
- "name": "enable",
- "type": "boolean"
- }
- ],
- "option": "sandbox"
- },
- {
- "parameters": [
- {
- "name": "strict",
- "type": "string"
- },
- {
- "name": "reboot-timeout",
- "type": "string"
- },
- {
- "name": "splash-time",
- "type": "string"
- },
- {
- "name": "splash",
- "type": "string"
- },
- {
- "name": "menu",
- "type": "boolean"
- },
- {
- "name": "once",
- "type": "string"
- },
- {
- "name": "order",
- "type": "string"
- }
- ],
- "option": "boot-opts"
- },
- {
- "parameters": [
- {
- "name": "maxcpus",
- "type": "number"
- },
- {
- "name": "threads",
- "type": "number"
- },
- {
- "name": "cores",
- "type": "number"
- },
- {
- "name": "sockets",
- "type": "number"
- },
- {
- "name": "cpus",
- "type": "number"
- }
- ],
- "option": "smp-opts"
- },
- {
- "parameters": [
- {
- "name": "usb",
- "help": "Set on/off to enable/disable usb",
- "type": "boolean"
- },
- {
- "name": "mem-merge",
- "help": "enable/disable memory merge support",
- "type": "boolean"
- },
- {
- "name": "dump-guest-core",
- "help": "Include guest memory in a core dump",
- "type": "boolean"
- },
- {
- "name": "dt_compatible",
- "help": "Overrides the \"compatible\" property of the dt root node",
- "type": "string"
- },
- {
- "name": "phandle_start",
- "help": "The first phandle ID we may generate dynamically",
- "type": "number"
- },
- {
- "name": "dumpdtb",
- "help": "Dump current dtb to a file and quit",
- "type": "string"
- },
- {
- "name": "dtb",
- "help": "Linux kernel device tree file",
- "type": "string"
- },
- {
- "name": "append",
- "help": "Linux kernel command line",
- "type": "string"
- },
- {
- "name": "initrd",
- "help": "Linux initial ramdisk file",
- "type": "string"
- },
- {
- "name": "kernel",
- "help": "Linux kernel image file",
- "type": "string"
- },
- {
- "name": "kvm_shadow_mem",
- "help": "KVM shadow MMU size",
- "type": "size"
- },
- {
- "name": "kernel_irqchip",
- "help": "use KVM in-kernel irqchip",
- "type": "boolean"
- },
- {
- "name": "accel",
- "help": "accelerator list",
- "type": "string"
- },
- {
- "name": "type",
- "help": "emulated machine",
- "type": "string"
- }
- ],
- "option": "machine"
- },
- {
- "parameters": [
- {
- "name": "romfile",
- "type": "string"
- },
- {
- "name": "bootindex",
- "type": "number"
- }
- ],
- "option": "option-rom"
- },
- {
- "parameters": [
- {
- "name": "file",
- "type": "string"
- },
- {
- "name": "events",
- "type": "string"
- }
- ],
- "option": "trace"
- },
- {
- "parameters": [
- {
- "name": "pretty",
- "type": "boolean"
- },
- {
- "name": "default",
- "type": "boolean"
- },
- {
- "name": "chardev",
- "type": "string"
- },
- {
- "name": "mode",
- "type": "string"
- }
- ],
- "option": "mon"
- },
- {
- "parameters": [
- {
- "name": "value",
- "type": "string"
- },
- {
- "name": "property",
- "type": "string"
- },
- {
- "name": "driver",
- "type": "string"
- }
- ],
- "option": "global"
- },
- {
- "parameters": [
- {
- "name": "driftfix",
- "type": "string"
- },
- {
- "name": "clock",
- "type": "string"
- },
- {
- "name": "base",
- "type": "string"
- }
- ],
- "option": "rtc"
- },
- {
- "parameters": [
- ],
- "option": "net"
- },
- {
- "parameters": [
- ],
- "option": "netdev"
- },
- {
- "parameters": [
- ],
- "option": "numa"
- },
- {
- "parameters": [
- ],
- "option": "device"
- },
- {
- "parameters": [
- {
- "name": "chardev",
- "type": "string"
- },
- {
- "name": "size",
- "type": "size"
- },
- {
- "name": "debug",
- "type": "number"
- },
- {
- "name": "name",
- "type": "string"
- },
- {
- "name": "signal",
- "type": "boolean"
- },
- {
- "name": "mux",
- "type": "boolean"
- },
- {
- "name": "rows",
- "type": "number"
- },
- {
- "name": "cols",
- "type": "number"
- },
- {
- "name": "height",
- "type": "number"
- },
- {
- "name": "width",
- "type": "number"
- },
- {
- "name": "telnet",
- "type": "boolean"
- },
- {
- "name": "delay",
- "type": "boolean"
- },
- {
- "name": "server",
- "type": "boolean"
- },
- {
- "name": "wait",
- "type": "boolean"
- },
- {
- "name": "ipv6",
- "type": "boolean"
- },
- {
- "name": "ipv4",
- "type": "boolean"
- },
- {
- "name": "to",
- "type": "number"
- },
- {
- "name": "localport",
- "type": "string"
- },
- {
- "name": "localaddr",
- "type": "string"
- },
- {
- "name": "port",
- "type": "string"
- },
- {
- "name": "host",
- "type": "string"
- },
- {
- "name": "path",
- "type": "string"
- },
- {
- "name": "backend",
- "type": "string"
- }
- ],
- "option": "chardev"
- },
- {
- "parameters": [
- ],
- "option": "drive"
- }
- ],
- "id": "libvirt-44"
-}
-
-{
- "return": [
- {
- "capability": "xbzrle",
- "state": false
- },
- {
- "capability": "x-rdma-pin-all",
- "state": false
- },
- {
- "capability": "auto-converge",
- "state": false
- },
- {
- "capability": "zero-blocks",
- "state": false
- }
- ],
- "id": "libvirt-45"
-}
diff --git a/tests/qemucapabilitiesdata/caps_1.6.50.x86_64.xml b/tests/qemucapabilitiesdata/caps_1.6.50.x86_64.xml
deleted file mode 100644
index 296f769..0000000
--- a/tests/qemucapabilitiesdata/caps_1.6.50.x86_64.xml
+++ /dev/null
@@ -1,197 +0,0 @@
-<qemuCaps>
- <qemuctime>0</qemuctime>
- <selfctime>0</selfctime>
- <selfvers>0</selfvers>
- <usedQMP/>
- <flag name='mem-path'/>
- <flag name='drive-serial'/>
- <flag name='chardev'/>
- <flag name='enable-kvm'/>
- <flag name='monitor-json'/>
- <flag name='sdl'/>
- <flag name='smp-topology'/>
- <flag name='netdev'/>
- <flag name='rtc'/>
- <flag name='vhost-net'/>
- <flag name='no-hpet'/>
- <flag name='no-kvm-pit'/>
- <flag name='pci-configfd'/>
- <flag name='nodefconfig'/>
- <flag name='boot-menu'/>
- <flag name='fsdev'/>
- <flag name='name-process'/>
- <flag name='smbios-type'/>
- <flag name='vga-qxl'/>
- <flag name='spice'/>
- <flag name='vga-none'/>
- <flag name='boot-index'/>
- <flag name='hda-duplex'/>
- <flag name='drive-aio'/>
- <flag name='pci-multibus'/>
- <flag name='pci-bootindex'/>
- <flag name='ccid-emulated'/>
- <flag name='ccid-passthru'/>
- <flag name='chardev-spicevmc'/>
- <flag name='virtio-tx-alg'/>
- <flag name='device-qxl-vga'/>
- <flag name='pci-multifunction'/>
- <flag name='virtio-blk-pci.ioeventfd'/>
- <flag name='sga'/>
- <flag name='virtio-blk-pci.event_idx'/>
- <flag name='virtio-net-pci.event_idx'/>
- <flag name='cache-directsync'/>
- <flag name='piix3-usb-uhci'/>
- <flag name='piix4-usb-uhci'/>
- <flag name='usb-ehci'/>
- <flag name='ich9-usb-ehci1'/>
- <flag name='vt82c686b-usb-uhci'/>
- <flag name='pci-ohci'/>
- <flag name='usb-hub'/>
- <flag name='no-shutdown'/>
- <flag name='cache-unsafe'/>
- <flag name='ich9-ahci'/>
- <flag name='no-acpi'/>
- <flag name='fsdev-readonly'/>
- <flag name='virtio-blk-pci.scsi'/>
- <flag name='drive-copy-on-read'/>
- <flag name='fsdev-writeout'/>
- <flag name='drive-iotune'/>
- <flag name='system_wakeup'/>
- <flag name='scsi-disk.channel'/>
- <flag name='scsi-block'/>
- <flag name='transaction'/>
- <flag name='block-job-async'/>
- <flag name='scsi-cd'/>
- <flag name='ide-cd'/>
- <flag name='no-user-config'/>
- <flag name='hda-micro'/>
- <flag name='dump-guest-memory'/>
- <flag name='nec-usb-xhci'/>
- <flag name='balloon-event'/>
- <flag name='bridge'/>
- <flag name='lsi'/>
- <flag name='virtio-scsi-pci'/>
- <flag name='blockio'/>
- <flag name='disable-s3'/>
- <flag name='disable-s4'/>
- <flag name='ide-drive.wwn'/>
- <flag name='scsi-disk.wwn'/>
- <flag name='seccomp-sandbox'/>
- <flag name='reboot-timeout'/>
- <flag name='dump-guest-core'/>
- <flag name='seamless-migration'/>
- <flag name='block-commit'/>
- <flag name='vnc'/>
- <flag name='drive-mirror'/>
- <flag name='blockdev-snapshot-sync'/>
- <flag name='qxl'/>
- <flag name='VGA'/>
- <flag name='cirrus-vga'/>
- <flag name='vmware-svga'/>
- <flag name='device-video-primary'/>
- <flag name='usb-serial'/>
- <flag name='usb-net'/>
- <flag name='add-fd'/>
- <flag name='nbd-server'/>
- <flag name='virtio-rng'/>
- <flag name='rng-random'/>
- <flag name='rng-egd'/>
- <flag name='dtb'/>
- <flag name='megasas'/>
- <flag name='ipv6-migration'/>
- <flag name='machine-opt'/>
- <flag name='machine-usb-opt'/>
- <flag name='pci-bridge'/>
- <flag name='vfio-pci'/>
- <flag name='vfio-pci.bootindex'/>
- <flag name='scsi-generic'/>
- <flag name='scsi-generic.bootindex'/>
- <flag name='mem-merge'/>
- <flag name='vnc-websocket'/>
- <flag name='mlock'/>
- <flag name='vnc-share-policy'/>
- <flag name='device-del-event'/>
- <flag name='dmi-to-pci-bridge'/>
- <flag name='i440fx-pci-hole64-size'/>
- <flag name='q35-pci-hole64-size'/>
- <flag name='usb-storage'/>
- <flag name='usb-storage.removable'/>
- <flag name='virtio-mmio'/>
- <flag name='ich9-intel-hda'/>
- <flag name='kvm-pit-lost-tick-policy'/>
- <flag name='boot-strict'/>
- <flag name='pvpanic'/>
- <flag name='spice-file-xfer-disable'/>
- <flag name='spiceport'/>
- <flag name='usb-kbd'/>
- <flag name='host-pci-multidomain'/>
- <flag name='msg-timestamp'/>
- <flag name='numa'/>
- <flag name='usb-audio'/>
- <flag name='splash-timeout'/>
- <flag name='ivshmem'/>
- <flag name='VGA.vgamem_mb'/>
- <flag name='vmware-svga.vgamem_mb'/>
- <flag name='qxl.vgamem_mb'/>
- <flag name='qxl-vga.vgamem_mb'/>
- <flag name='pci-serial'/>
- <flag name='ioh3420'/>
- <flag name='x3130-upstream'/>
- <flag name='xio3130-downstream'/>
- <flag name='rtl8139'/>
- <flag name='e1000'/>
- <flag name='virtio-net'/>
- <flag name='qxl.vram64_size_mb'/>
- <flag name='qxl-vga.vram64_size_mb'/>
- <flag name='device-tray-moved-event'/>
- <flag name='nec-usb-xhci-ports'/>
- <version>1006050</version>
- <kvmVersion>0</kvmVersion>
- <package></package>
- <arch>x86_64</arch>
- <cpu name='Opteron_G5'/>
- <cpu name='Opteron_G4'/>
- <cpu name='Opteron_G3'/>
- <cpu name='Opteron_G2'/>
- <cpu name='Opteron_G1'/>
- <cpu name='Haswell'/>
- <cpu name='SandyBridge'/>
- <cpu name='Westmere'/>
- <cpu name='Nehalem'/>
- <cpu name='Penryn'/>
- <cpu name='Conroe'/>
- <cpu name='n270'/>
- <cpu name='athlon'/>
- <cpu name='pentium3'/>
- <cpu name='pentium2'/>
- <cpu name='pentium'/>
- <cpu name='486'/>
- <cpu name='coreduo'/>
- <cpu name='kvm32'/>
- <cpu name='qemu32'/>
- <cpu name='kvm64'/>
- <cpu name='core2duo'/>
- <cpu name='phenom'/>
- <cpu name='qemu64'/>
- <machine name='pc-i440fx-1.7' alias='pc' maxCpus='255'/>
- <machine name='xenpv' maxCpus='1'/>
- <machine name='pc-q35-1.4' maxCpus='255'/>
- <machine name='pc-q35-1.5' maxCpus='255'/>
- <machine name='pc-q35-1.6' maxCpus='255'/>
- <machine name='pc-q35-1.7' alias='q35' maxCpus='255'/>
- <machine name='xenfv' maxCpus='128'/>
- <machine name='isapc' maxCpus='1'/>
- <machine name='pc-0.10' maxCpus='255'/>
- <machine name='pc-0.11' maxCpus='255'/>
- <machine name='pc-0.12' maxCpus='255'/>
- <machine name='pc-0.13' maxCpus='255'/>
- <machine name='pc-0.14' maxCpus='255'/>
- <machine name='pc-0.15' maxCpus='255'/>
- <machine name='pc-1.0' maxCpus='255'/>
- <machine name='pc-1.1' maxCpus='255'/>
- <machine name='pc-1.2' maxCpus='255'/>
- <machine name='pc-1.3' maxCpus='255'/>
- <machine name='pc-i440fx-1.4' maxCpus='255'/>
- <machine name='pc-i440fx-1.5' maxCpus='255'/>
- <machine name='pc-i440fx-1.6' maxCpus='255'/>
-</qemuCaps>
diff --git a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.replies
new file mode 100644
index 0000000..50e4042
--- /dev/null
+++ b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.replies
@@ -0,0 +1,3195 @@
+{
+ "QMP": {
+ "version": {
+ "qemu": {
+ "micro": 0,
+ "minor": 7,
+ "major": 1
+ },
+ "package": ""
+ },
+ "capabilities": [
+ ]
+ }
+}
+
+{
+ "return": {
+ },
+ "id": "libvirt-1"
+}
+
+{
+ "return": {
+ "qemu": {
+ "micro": 0,
+ "minor": 7,
+ "major": 1
+ },
+ "package": ""
+ },
+ "id": "libvirt-2"
+}
+
+{
+ "return": {
+ "arch": "x86_64"
+ },
+ "id": "libvirt-3"
+}
+
+{
+ "return": [
+ {
+ "name": "blockdev-add"
+ },
+ {
+ "name": "query-rx-filter"
+ },
+ {
+ "name": "chardev-remove"
+ },
+ {
+ "name": "chardev-add"
+ },
+ {
+ "name": "query-tpm-types"
+ },
+ {
+ "name": "query-tpm-models"
+ },
+ {
+ "name": "query-tpm"
+ },
+ {
+ "name": "query-target"
+ },
+ {
+ "name": "query-cpu-definitions"
+ },
+ {
+ "name": "query-machines"
+ },
+ {
+ "name": "device-list-properties"
+ },
+ {
+ "name": "qom-list-types"
+ },
+ {
+ "name": "change-vnc-password"
+ },
+ {
+ "name": "nbd-server-stop"
+ },
+ {
+ "name": "nbd-server-add"
+ },
+ {
+ "name": "nbd-server-start"
+ },
+ {
+ "name": "qom-get"
+ },
+ {
+ "name": "qom-set"
+ },
+ {
+ "name": "qom-list"
+ },
+ {
+ "name": "query-block-jobs"
+ },
+ {
+ "name": "query-balloon"
+ },
+ {
+ "name": "query-migrate-capabilities"
+ },
+ {
+ "name": "migrate-set-capabilities"
+ },
+ {
+ "name": "query-migrate"
+ },
+ {
+ "name": "query-command-line-options"
+ },
+ {
+ "name": "query-uuid"
+ },
+ {
+ "name": "query-name"
+ },
+ {
+ "name": "query-spice"
+ },
+ {
+ "name": "query-vnc"
+ },
+ {
+ "name": "query-mice"
+ },
+ {
+ "name": "query-status"
+ },
+ {
+ "name": "query-kvm"
+ },
+ {
+ "name": "query-pci"
+ },
+ {
+ "name": "query-cpus"
+ },
+ {
+ "name": "query-blockstats"
+ },
+ {
+ "name": "query-block"
+ },
+ {
+ "name": "query-chardev"
+ },
+ {
+ "name": "query-events"
+ },
+ {
+ "name": "query-commands"
+ },
+ {
+ "name": "query-version"
+ },
+ {
+ "name": "human-monitor-command"
+ },
+ {
+ "name": "qmp_capabilities"
+ },
+ {
+ "name": "add_client"
+ },
+ {
+ "name": "expire_password"
+ },
+ {
+ "name": "set_password"
+ },
+ {
+ "name": "block_set_io_throttle"
+ },
+ {
+ "name": "block_passwd"
+ },
+ {
+ "name": "query-fdsets"
+ },
+ {
+ "name": "remove-fd"
+ },
+ {
+ "name": "add-fd"
+ },
+ {
+ "name": "closefd"
+ },
+ {
+ "name": "getfd"
+ },
+ {
+ "name": "set_link"
+ },
+ {
+ "name": "balloon"
+ },
+ {
+ "name": "drive-mirror"
+ },
+ {
+ "name": "blockdev-snapshot-delete-internal-sync"
+ },
+ {
+ "name": "blockdev-snapshot-internal-sync"
+ },
+ {
+ "name": "blockdev-snapshot-sync"
+ },
+ {
+ "name": "transaction"
+ },
+ {
+ "name": "block-job-complete"
+ },
+ {
+ "name": "block-job-resume"
+ },
+ {
+ "name": "block-job-pause"
+ },
+ {
+ "name": "block-job-cancel"
+ },
+ {
+ "name": "block-job-set-speed"
+ },
+ {
+ "name": "drive-backup"
+ },
+ {
+ "name": "block-commit"
+ },
+ {
+ "name": "block-stream"
+ },
+ {
+ "name": "block_resize"
+ },
+ {
+ "name": "netdev_del"
+ },
+ {
+ "name": "netdev_add"
+ },
+ {
+ "name": "dump-guest-memory"
+ },
+ {
+ "name": "client_migrate_info"
+ },
+ {
+ "name": "migrate_set_downtime"
+ },
+ {
+ "name": "migrate_set_speed"
+ },
+ {
+ "name": "query-migrate-cache-size"
+ },
+ {
+ "name": "migrate-set-cache-size"
+ },
+ {
+ "name": "migrate_cancel"
+ },
+ {
+ "name": "migrate"
+ },
+ {
+ "name": "xen-set-global-dirty-log"
+ },
+ {
+ "name": "xen-save-devices-state"
+ },
+ {
+ "name": "ringbuf-read"
+ },
+ {
+ "name": "ringbuf-write"
+ },
+ {
+ "name": "inject-nmi"
+ },
+ {
+ "name": "pmemsave"
+ },
+ {
+ "name": "memsave"
+ },
+ {
+ "name": "cpu-add"
+ },
+ {
+ "name": "cpu"
+ },
+ {
+ "name": "send-key"
+ },
+ {
+ "name": "device_del"
+ },
+ {
+ "name": "device_add"
+ },
+ {
+ "name": "system_powerdown"
+ },
+ {
+ "name": "system_reset"
+ },
+ {
+ "name": "system_wakeup"
+ },
+ {
+ "name": "cont"
+ },
+ {
+ "name": "stop"
+ },
+ {
+ "name": "screendump"
+ },
+ {
+ "name": "change"
+ },
+ {
+ "name": "eject"
+ },
+ {
+ "name": "quit"
+ }
+ ],
+ "id": "libvirt-4"
+}
+
+{
+ "return": {
+ "fd": 11,
+ "fdset-id": 0
+ },
+ "id": "libvirt-5"
+}
+
+{
+ "id": "libvirt-6",
+ "error": {
+ "class": "GenericError",
+ "desc": "Parameter 'top' is missing"
+ }
+}
+
+{
+ "return": [
+ {
+ "name": "BLOCK_IMAGE_CORRUPTED"
+ },
+ {
+ "name": "GUEST_PANICKED"
+ },
+ {
+ "name": "SPICE_MIGRATE_COMPLETED"
+ },
+ {
+ "name": "BALLOON_CHANGE"
+ },
+ {
+ "name": "WAKEUP"
+ },
+ {
+ "name": "SUSPEND_DISK"
+ },
+ {
+ "name": "SUSPEND"
+ },
+ {
+ "name": "NIC_RX_FILTER_CHANGED"
+ },
+ {
+ "name": "DEVICE_TRAY_MOVED"
+ },
+ {
+ "name": "DEVICE_DELETED"
+ },
+ {
+ "name": "BLOCK_JOB_READY"
+ },
+ {
+ "name": "BLOCK_JOB_ERROR"
+ },
+ {
+ "name": "BLOCK_JOB_CANCELLED"
+ },
+ {
+ "name": "BLOCK_JOB_COMPLETED"
+ },
+ {
+ "name": "SPICE_DISCONNECTED"
+ },
+ {
+ "name": "SPICE_INITIALIZED"
+ },
+ {
+ "name": "SPICE_CONNECTED"
+ },
+ {
+ "name": "WATCHDOG"
+ },
+ {
+ "name": "RTC_CHANGE"
+ },
+ {
+ "name": "BLOCK_IO_ERROR"
+ },
+ {
+ "name": "VNC_DISCONNECTED"
+ },
+ {
+ "name": "VNC_INITIALIZED"
+ },
+ {
+ "name": "VNC_CONNECTED"
+ },
+ {
+ "name": "RESUME"
+ },
+ {
+ "name": "STOP"
+ },
+ {
+ "name": "POWERDOWN"
+ },
+ {
+ "name": "RESET"
+ },
+ {
+ "name": "SHUTDOWN"
+ }
+ ],
+ "id": "libvirt-7"
+}
+
+{
+ "return": [
+ {
+ "name": "virtio-blk-device"
+ },
+ {
+ "name": "ib700"
+ },
+ {
+ "name": "ICH9 LPC"
+ },
+ {
+ "name": "port92"
+ },
+ {
+ "name": "i6300esb"
+ },
+ {
+ "name": "kvm-pci-assign"
+ },
+ {
+ "name": "virtio-scsi-device"
+ },
+ {
+ "name": "apic"
+ },
+ {
+ "name": "pc-testdev"
+ },
+ {
+ "name": "fusbh200-ehci-usb"
+ },
+ {
+ "name": "virtio-scsi-pci"
+ },
+ {
+ "name": "usb-ehci"
+ },
+ {
+ "name": "exynos4210-ehci-usb"
+ },
+ {
+ "name": "xlnx,ps7-usb"
+ },
+ {
+ "name": "virtio-balloon-pci"
+ },
+ {
+ "name": "usb-host"
+ },
+ {
+ "name": "ich9-usb-ehci2"
+ },
+ {
+ "name": "ich9-ahci"
+ },
+ {
+ "name": "ich9-usb-ehci1"
+ },
+ {
+ "name": "isa-ide"
+ },
+ {
+ "name": "ICH9 SMB"
+ },
+ {
+ "name": "piix4-usb-uhci"
+ },
+ {
+ "name": "vt82c686b-usb-uhci"
+ },
+ {
+ "name": "i82558b"
+ },
+ {
+ "name": "i82558a"
+ },
+ {
+ "name": "isa-fdc"
+ },
+ {
+ "name": "isabus-bridge"
+ },
+ {
+ "name": "sb16"
+ },
+ {
+ "name": "i2c-bus"
+ },
+ {
+ "name": "piix3-ide"
+ },
+ {
+ "name": "ioapic"
+ },
+ {
+ "name": "pci-bridge"
+ },
+ {
+ "name": "HDA"
+ },
+ {
+ "name": "am53c974"
+ },
+ {
+ "name": "hpet"
+ },
+ {
+ "name": "vmmouse"
+ },
+ {
+ "name": "i82801b11-bridge"
+ },
+ {
+ "name": "nvme"
+ },
+ {
+ "name": "lsi53c810"
+ },
+ {
+ "name": "vmxnet3"
+ },
+ {
+ "name": "isa-cirrus-vga"
+ },
+ {
+ "name": "dc390"
+ },
+ {
+ "name": "vmware-svga"
+ },
+ {
+ "name": "smbus-eeprom"
+ },
+ {
+ "name": "i82801"
+ },
+ {
+ "name": "ccid-card-passthru"
+ },
+ {
+ "name": "fw_cfg"
+ },
+ {
+ "name": "x86_64-cpu"
+ },
+ {
+ "name": "piix3-usb-uhci"
+ },
+ {
+ "name": "usb-audio"
+ },
+ {
+ "name": "virtio-9p-device"
+ },
+ {
+ "name": "i82557c"
+ },
+ {
+ "name": "i82557b"
+ },
+ {
+ "name": "i82557a"
+ },
+ {
+ "name": "IndustryPack"
+ },
+ {
+ "name": "qxl"
+ },
+ {
+ "name": "pvscsi"
+ },
+ {
+ "name": "rtl8139"
+ },
+ {
+ "name": "isa-applesmc"
+ },
+ {
+ "name": "container"
+ },
+ {
+ "name": "virtio-mmio"
+ },
+ {
+ "name": "vfio-pci"
+ },
+ {
+ "name": "cfi.pflash01"
+ },
+ {
+ "name": "usb-kbd"
+ },
+ {
+ "name": "ich9-usb-uhci5"
+ },
+ {
+ "name": "isa-vga"
+ },
+ {
+ "name": "pci-testdev"
+ },
+ {
+ "name": "usb-tablet"
+ },
+ {
+ "name": "vmport"
+ },
+ {
+ "name": "virtio-rng-pci"
+ },
+ {
+ "name": "kvmvapic"
+ },
+ {
+ "name": "usb-bt-dongle"
+ },
+ {
+ "name": "sysbus-fdc"
+ },
+ {
+ "name": "piix4-ide"
+ },
+ {
+ "name": "e1000"
+ },
+ {
+ "name": "kvm-apic"
+ },
+ {
+ "name": "AC97"
+ },
+ {
+ "name": "ich9-usb-uhci6"
+ },
+ {
+ "name": "ipoctal232"
+ },
+ {
+ "name": "mch"
+ },
+ {
+ "name": "mc146818rtc"
+ },
+ {
+ "name": "ivshmem"
+ },
+ {
+ "name": "usb-ccid"
+ },
+ {
+ "name": "sysbus-ahci"
+ },
+ {
+ "name": "kvmclock"
+ },
+ {
+ "name": "i82562"
+ },
+ {
+ "name": "hda-output"
+ },
+ {
+ "name": "pci-serial-4x"
+ },
+ {
+ "name": "ccid-bus"
+ },
+ {
+ "name": "i82559er"
+ },
+ {
+ "name": "virtio-balloon-device"
+ },
+ {
+ "name": "megasas"
+ },
+ {
+ "name": "i8042"
+ },
+ {
+ "name": "intel-hda"
+ },
+ {
+ "name": "hda-duplex"
+ },
+ {
+ "name": "virtio-serial-pci"
+ },
+ {
+ "name": "ne2k_pci"
+ },
+ {
+ "name": "ich9-usb-uhci2"
+ },
+ {
+ "name": "ich9-usb-uhci3"
+ },
+ {
+ "name": "virtconsole"
+ },
+ {
+ "name": "ich9-usb-uhci4"
+ },
+ {
+ "name": "isa-parallel"
+ },
+ {
+ "name": "pci-serial"
+ },
+ {
+ "name": "ich9-usb-uhci1"
+ },
+ {
+ "name": "PCI"
+ },
+ {
+ "name": "adlib"
+ },
+ {
+ "name": "SUNW,fdtwo"
+ },
+ {
+ "name": "ide-cd"
+ },
+ {
+ "name": "isa-debugcon"
+ },
+ {
+ "name": "usb-bot"
+ },
+ {
+ "name": "i82551"
+ },
+ {
+ "name": "i82550"
+ },
+ {
+ "name": "isa-serial"
+ },
+ {
+ "name": "PCIE"
+ },
+ {
+ "name": "kvm-ioapic"
+ },
+ {
+ "name": "nec-usb-xhci"
+ },
+ {
+ "name": "System"
+ },
+ {
+ "name": "qemu-console"
+ },
+ {
+ "name": "ich9-intel-hda"
+ },
+ {
+ "name": "virtio-net-device"
+ },
+ {
+ "name": "q35-pcihost"
+ },
+ {
+ "name": "usb-wacom-tablet"
+ },
+ {
+ "name": "PIIX4_PM"
+ },
+ {
+ "name": "kvm-i8259"
+ },
+ {
+ "name": "usb-redir"
+ },
+ {
+ "name": "scsi-cd"
+ },
+ {
+ "name": "pci-ohci"
+ },
+ {
+ "name": "i440FX"
+ },
+ {
+ "name": "usb-braille"
+ },
+ {
+ "name": "virtserialport"
+ },
+ {
+ "name": "pci-serial-2x"
+ },
+ {
+ "name": "icc-bridge"
+ },
+ {
+ "name": "xio3130-downstream"
+ },
+ {
+ "name": "rng-random"
+ },
+ {
+ "name": "hda-micro"
+ },
+ {
+ "name": "scsi-disk"
+ },
+ {
+ "name": "vhost-scsi"
+ },
+ {
+ "name": "lsi53c895a"
+ },
+ {
+ "name": "SCSI"
+ },
+ {
+ "name": "pcnet"
+ },
+ {
+ "name": "scsi-generic"
+ },
+ {
+ "name": "pvpanic"
+ },
+ {
+ "name": "virtio-serial-device"
+ },
+ {
+ "name": "virtio-serial-bus"
+ },
+ {
+ "name": "vhost-scsi-pci"
+ },
+ {
+ "name": "usb-bus"
+ },
+ {
+ "name": "ne2k_isa"
+ },
+ {
+ "name": "IDE"
+ },
+ {
+ "name": "ccid-card-emulated"
+ },
+ {
+ "name": "tegra2-ehci-usb"
+ },
+ {
+ "name": "usb-net"
+ },
+ {
+ "name": "virtio-mmio-bus"
+ },
+ {
+ "name": "usb-hub"
+ },
+ {
+ "name": "i440FX-pcihost"
+ },
+ {
+ "name": "usb-mouse"
+ },
+ {
+ "name": "ISA"
+ },
+ {
+ "name": "cs4231a"
+ },
+ {
+ "name": "usb-serial"
+ },
+ {
+ "name": "scsi-block"
+ },
+ {
+ "name": "isa-i8259"
+ },
+ {
+ "name": "sga"
+ },
+ {
+ "name": "virtio-net-pci"
+ },
+ {
+ "name": "isa-debug-exit"
+ },
+ {
+ "name": "virtio-rng-device"
+ },
+ {
+ "name": "ioh3420"
+ },
+ {
+ "name": "ES1370"
+ },
+ {
+ "name": "PIIX3"
+ },
+ {
+ "name": "isa-pcspk"
+ },
+ {
+ "name": "ide-hd"
+ },
+ {
+ "name": "rng-egd"
+ },
+ {
+ "name": "cirrus-vga"
+ },
+ {
+ "name": "kvm-pit"
+ },
+ {
+ "name": "virtio-9p-pci"
+ },
+ {
+ "name": "icc-bus"
+ },
+ {
+ "name": "ide-drive"
+ },
+ {
+ "name": "x3130-upstream"
+ },
+ {
+ "name": "virtio-pci-bus"
+ },
+ {
+ "name": "qxl-vga"
+ },
+ {
+ "name": "usb-uas"
+ },
+ {
+ "name": "virtio-blk-pci"
+ },
+ {
+ "name": "sysbus-ohci"
+ },
+ {
+ "name": "esp"
+ },
+ {
+ "name": "piix3-ide-xen"
+ },
+ {
+ "name": "i82559c"
+ },
+ {
+ "name": "i82559b"
+ },
+ {
+ "name": "i82559a"
+ },
+ {
+ "name": "scsi-hd"
+ },
+ {
+ "name": "PIIX3-xen"
+ },
+ {
+ "name": "usb-storage"
+ },
+ {
+ "name": "isa-pit"
+ },
+ {
+ "name": "tpci200"
+ },
+ {
+ "name": "gus"
+ },
+ {
+ "name": "VGA"
+ }
+ ],
+ "id": "libvirt-8"
+}
+
+{
+ "return": [
+ {
+ "name": "command_serr_enable",
+ "type": "on/off"
+ },
+ {
+ "name": "multifunction",
+ "type": "on/off"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "romfile",
+ "type": "string"
+ },
+ {
+ "name": "addr",
+ "type": "pci-devfn"
+ },
+ {
+ "name": "scsi",
+ "type": "on/off"
+ },
+ {
+ "name": "config-wce",
+ "type": "on/off"
+ },
+ {
+ "name": "serial",
+ "type": "string"
+ },
+ {
+ "name": "secs",
+ "type": "uint32"
+ },
+ {
+ "name": "heads",
+ "type": "uint32"
+ },
+ {
+ "name": "cyls",
+ "type": "uint32"
+ },
+ {
+ "name": "discard_granularity",
+ "type": "uint32"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "opt_io_size",
+ "type": "uint32"
+ },
+ {
+ "name": "min_io_size",
+ "type": "uint16"
+ },
+ {
+ "name": "physical_block_size",
+ "type": "blocksize"
+ },
+ {
+ "name": "logical_block_size",
+ "type": "blocksize"
+ },
+ {
+ "name": "drive",
+ "type": "drive"
+ },
+ {
+ "name": "event_idx",
+ "type": "on/off"
+ },
+ {
+ "name": "indirect_desc",
+ "type": "on/off"
+ },
+ {
+ "name": "x-data-plane",
+ "type": "on/off"
+ },
+ {
+ "name": "vectors",
+ "type": "uint32"
+ },
+ {
+ "name": "ioeventfd",
+ "type": "on/off"
+ },
+ {
+ "name": "class",
+ "type": "hex32"
+ }
+ ],
+ "id": "libvirt-9"
+}
+
+{
+ "return": [
+ {
+ "name": "command_serr_enable",
+ "type": "on/off"
+ },
+ {
+ "name": "multifunction",
+ "type": "on/off"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "romfile",
+ "type": "string"
+ },
+ {
+ "name": "addr",
+ "type": "pci-devfn"
+ },
+ {
+ "name": "tx",
+ "type": "string"
+ },
+ {
+ "name": "x-txburst",
+ "type": "int32"
+ },
+ {
+ "name": "x-txtimer",
+ "type": "uint32"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "netdev",
+ "type": "netdev"
+ },
+ {
+ "name": "vlan",
+ "type": "vlan"
+ },
+ {
+ "name": "mac",
+ "type": "macaddr"
+ },
+ {
+ "name": "mq",
+ "type": "on/off"
+ },
+ {
+ "name": "ctrl_guest_offloads",
+ "type": "on/off"
+ },
+ {
+ "name": "ctrl_mac_addr",
+ "type": "on/off"
+ },
+ {
+ "name": "ctrl_rx_extra",
+ "type": "on/off"
+ },
+ {
+ "name": "ctrl_vlan",
+ "type": "on/off"
+ },
+ {
+ "name": "ctrl_rx",
+ "type": "on/off"
+ },
+ {
+ "name": "ctrl_vq",
+ "type": "on/off"
+ },
+ {
+ "name": "status",
+ "type": "on/off"
+ },
+ {
+ "name": "mrg_rxbuf",
+ "type": "on/off"
+ },
+ {
+ "name": "host_ufo",
+ "type": "on/off"
+ },
+ {
+ "name": "host_ecn",
+ "type": "on/off"
+ },
+ {
+ "name": "host_tso6",
+ "type": "on/off"
+ },
+ {
+ "name": "host_tso4",
+ "type": "on/off"
+ },
+ {
+ "name": "guest_ufo",
+ "type": "on/off"
+ },
+ {
+ "name": "guest_ecn",
+ "type": "on/off"
+ },
+ {
+ "name": "guest_tso6",
+ "type": "on/off"
+ },
+ {
+ "name": "guest_tso4",
+ "type": "on/off"
+ },
+ {
+ "name": "gso",
+ "type": "on/off"
+ },
+ {
+ "name": "guest_csum",
+ "type": "on/off"
+ },
+ {
+ "name": "csum",
+ "type": "on/off"
+ },
+ {
+ "name": "any_layout",
+ "type": "on/off"
+ },
+ {
+ "name": "event_idx",
+ "type": "on/off"
+ },
+ {
+ "name": "indirect_desc",
+ "type": "on/off"
+ },
+ {
+ "name": "vectors",
+ "type": "uint32"
+ },
+ {
+ "name": "ioeventfd",
+ "type": "on/off"
+ }
+ ],
+ "id": "libvirt-10"
+}
+
+{
+ "return": [
+ {
+ "name": "command_serr_enable",
+ "type": "on/off"
+ },
+ {
+ "name": "multifunction",
+ "type": "on/off"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "romfile",
+ "type": "string"
+ },
+ {
+ "name": "addr",
+ "type": "pci-devfn"
+ },
+ {
+ "name": "cmd_per_lun",
+ "type": "uint32"
+ },
+ {
+ "name": "max_sectors",
+ "type": "uint32"
+ },
+ {
+ "name": "num_queues",
+ "type": "uint32"
+ },
+ {
+ "name": "param_change",
+ "type": "on/off"
+ },
+ {
+ "name": "hotplug",
+ "type": "on/off"
+ },
+ {
+ "name": "event_idx",
+ "type": "on/off"
+ },
+ {
+ "name": "indirect_desc",
+ "type": "on/off"
+ },
+ {
+ "name": "vectors",
+ "type": "uint32"
+ },
+ {
+ "name": "ioeventfd",
+ "type": "on/off"
+ }
+ ],
+ "id": "libvirt-11"
+}
+
+{
+ "id": "libvirt-12",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'virtio-blk-ccw' not found"
+ }
+}
+
+{
+ "id": "libvirt-13",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'virtio-net-ccw' not found"
+ }
+}
+
+{
+ "id": "libvirt-14",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'virtio-scsi-ccw' not found"
+ }
+}
+
+{
+ "id": "libvirt-15",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'virtio-blk-s390' not found"
+ }
+}
+
+{
+ "id": "libvirt-16",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'virtio-net-s390' not found"
+ }
+}
+
+{
+ "id": "libvirt-17",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'pci-assign' not found"
+ }
+}
+
+{
+ "return": [
+ {
+ "name": "command_serr_enable",
+ "type": "on/off"
+ },
+ {
+ "name": "multifunction",
+ "type": "on/off"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "romfile",
+ "type": "string"
+ },
+ {
+ "name": "addr",
+ "type": "pci-devfn"
+ },
+ {
+ "name": "configfd",
+ "type": "string"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "share_intx",
+ "type": "on/off"
+ },
+ {
+ "name": "prefer_msi",
+ "type": "on/off"
+ },
+ {
+ "name": "host",
+ "type": "pci-host-devaddr"
+ }
+ ],
+ "id": "libvirt-18"
+}
+
+{
+ "return": [
+ {
+ "name": "command_serr_enable",
+ "type": "on/off"
+ },
+ {
+ "name": "multifunction",
+ "type": "on/off"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "romfile",
+ "type": "string"
+ },
+ {
+ "name": "addr",
+ "type": "pci-devfn"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "x-vga",
+ "type": "on/off"
+ },
+ {
+ "name": "x-intx-mmap-timeout-ms",
+ "type": "uint32"
+ },
+ {
+ "name": "host",
+ "type": "pci-host-devaddr"
+ }
+ ],
+ "id": "libvirt-19"
+}
+
+{
+ "return": [
+ {
+ "name": "lun",
+ "type": "uint32"
+ },
+ {
+ "name": "scsi-id",
+ "type": "uint32"
+ },
+ {
+ "name": "channel",
+ "type": "uint32"
+ },
+ {
+ "name": "wwn",
+ "type": "hex64"
+ },
+ {
+ "name": "dpofua",
+ "type": "on/off"
+ },
+ {
+ "name": "removable",
+ "type": "on/off"
+ },
+ {
+ "name": "product",
+ "type": "string"
+ },
+ {
+ "name": "vendor",
+ "type": "string"
+ },
+ {
+ "name": "serial",
+ "type": "string"
+ },
+ {
+ "name": "ver",
+ "type": "string"
+ },
+ {
+ "name": "discard_granularity",
+ "type": "uint32"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "opt_io_size",
+ "type": "uint32"
+ },
+ {
+ "name": "min_io_size",
+ "type": "uint16"
+ },
+ {
+ "name": "physical_block_size",
+ "type": "blocksize"
+ },
+ {
+ "name": "logical_block_size",
+ "type": "blocksize"
+ },
+ {
+ "name": "drive",
+ "type": "drive"
+ }
+ ],
+ "id": "libvirt-20"
+}
+
+{
+ "return": [
+ {
+ "name": "unit",
+ "type": "uint32"
+ },
+ {
+ "name": "model",
+ "type": "string"
+ },
+ {
+ "name": "serial",
+ "type": "string"
+ },
+ {
+ "name": "wwn",
+ "type": "hex64"
+ },
+ {
+ "name": "ver",
+ "type": "string"
+ },
+ {
+ "name": "discard_granularity",
+ "type": "uint32"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "opt_io_size",
+ "type": "uint32"
+ },
+ {
+ "name": "min_io_size",
+ "type": "uint16"
+ },
+ {
+ "name": "physical_block_size",
+ "type": "blocksize"
+ },
+ {
+ "name": "logical_block_size",
+ "type": "blocksize"
+ },
+ {
+ "name": "drive",
+ "type": "drive"
+ }
+ ],
+ "id": "libvirt-21"
+}
+
+{
+ "return": [
+ {
+ "name": "command_serr_enable",
+ "type": "on/off"
+ },
+ {
+ "name": "multifunction",
+ "type": "on/off"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "romfile",
+ "type": "string"
+ },
+ {
+ "name": "addr",
+ "type": "pci-devfn"
+ },
+ {
+ "name": "s4_val",
+ "type": "uint8"
+ },
+ {
+ "name": "disable_s4",
+ "type": "uint8"
+ },
+ {
+ "name": "disable_s3",
+ "type": "uint8"
+ },
+ {
+ "name": "smb_io_base",
+ "type": "uint32"
+ }
+ ],
+ "id": "libvirt-22"
+}
+
+{
+ "return": [
+ {
+ "name": "full-path",
+ "type": "on/off"
+ },
+ {
+ "name": "serial",
+ "type": "string"
+ },
+ {
+ "name": "port",
+ "type": "string"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "filter",
+ "type": "string"
+ },
+ {
+ "name": "debug",
+ "type": "uint8"
+ },
+ {
+ "name": "chardev",
+ "type": "chr"
+ }
+ ],
+ "id": "libvirt-23"
+}
+
+{
+ "return": [
+ {
+ "name": "full-path",
+ "type": "on/off"
+ },
+ {
+ "name": "serial",
+ "type": "string"
+ },
+ {
+ "name": "port",
+ "type": "string"
+ },
+ {
+ "name": "pipeline",
+ "type": "on/off"
+ },
+ {
+ "name": "loglevel",
+ "type": "uint32"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "isobsize",
+ "type": "uint32"
+ },
+ {
+ "name": "isobufs",
+ "type": "uint32"
+ },
+ {
+ "name": "productid",
+ "type": "hex32"
+ },
+ {
+ "name": "vendorid",
+ "type": "hex32"
+ },
+ {
+ "name": "hostport",
+ "type": "string"
+ },
+ {
+ "name": "hostaddr",
+ "type": "uint32"
+ },
+ {
+ "name": "hostbus",
+ "type": "uint32"
+ }
+ ],
+ "id": "libvirt-24"
+}
+
+{
+ "return": [
+ {
+ "name": "lun",
+ "type": "uint32"
+ },
+ {
+ "name": "scsi-id",
+ "type": "uint32"
+ },
+ {
+ "name": "channel",
+ "type": "uint32"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "drive",
+ "type": "drive"
+ }
+ ],
+ "id": "libvirt-25"
+}
+
+{
+ "return": [
+ {
+ "name": "short_root_bus",
+ "type": "uint32"
+ },
+ {
+ "name": "pci-hole64-size",
+ "type": "size"
+ }
+ ],
+ "id": "libvirt-26"
+}
+
+{
+ "return": [
+ {
+ "name": "short_root_bus",
+ "type": "uint32"
+ },
+ {
+ "name": "pci-hole64-size",
+ "type": "size"
+ },
+ {
+ "name": "MCFG",
+ "type": "uint64"
+ }
+ ],
+ "id": "libvirt-27"
+}
+
+{
+ "return": [
+ {
+ "name": "full-path",
+ "type": "on/off"
+ },
+ {
+ "name": "serial",
+ "type": "string"
+ },
+ {
+ "name": "port",
+ "type": "string"
+ },
+ {
+ "name": "removable",
+ "type": "on/off"
+ },
+ {
+ "name": "discard_granularity",
+ "type": "uint32"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "opt_io_size",
+ "type": "uint32"
+ },
+ {
+ "name": "min_io_size",
+ "type": "uint16"
+ },
+ {
+ "name": "physical_block_size",
+ "type": "blocksize"
+ },
+ {
+ "name": "logical_block_size",
+ "type": "blocksize"
+ },
+ {
+ "name": "drive",
+ "type": "drive"
+ }
+ ],
+ "id": "libvirt-28"
+}
+
+{
+ "return": [
+ {
+ "name": "lost_tick_policy",
+ "type": "LostTickPolicy"
+ },
+ {
+ "name": "iobase",
+ "type": "hex32"
+ }
+ ],
+ "id": "libvirt-29"
+}
+
+{
+ "return": [
+ {
+ "name": "command_serr_enable",
+ "type": "on/off"
+ },
+ {
+ "name": "multifunction",
+ "type": "on/off"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "romfile",
+ "type": "string"
+ },
+ {
+ "name": "addr",
+ "type": "pci-devfn"
+ },
+ {
+ "name": "mmio",
+ "type": "on/off"
+ },
+ {
+ "name": "vgamem_mb",
+ "type": "uint32"
+ }
+ ],
+ "id": "libvirt-30"
+}
+
+{
+ "return": [
+ {
+ "name": "command_serr_enable",
+ "type": "on/off"
+ },
+ {
+ "name": "multifunction",
+ "type": "on/off"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "romfile",
+ "type": "string"
+ },
+ {
+ "name": "addr",
+ "type": "pci-devfn"
+ },
+ {
+ "name": "vgamem_mb",
+ "type": "uint32"
+ }
+ ],
+ "id": "libvirt-31"
+}
+
+{
+ "return": [
+ {
+ "name": "command_serr_enable",
+ "type": "on/off"
+ },
+ {
+ "name": "multifunction",
+ "type": "on/off"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "romfile",
+ "type": "string"
+ },
+ {
+ "name": "addr",
+ "type": "pci-devfn"
+ },
+ {
+ "name": "surfaces",
+ "type": "int32"
+ },
+ {
+ "name": "vgamem_mb",
+ "type": "uint32"
+ },
+ {
+ "name": "vram64_size_mb",
+ "type": "uint32"
+ },
+ {
+ "name": "vram_size_mb",
+ "type": "uint32"
+ },
+ {
+ "name": "ram_size_mb",
+ "type": "uint32"
+ },
+ {
+ "name": "cmdlog",
+ "type": "uint32"
+ },
+ {
+ "name": "guestdebug",
+ "type": "uint32"
+ },
+ {
+ "name": "debug",
+ "type": "uint32"
+ },
+ {
+ "name": "revision",
+ "type": "uint32"
+ },
+ {
+ "name": "vram_size",
+ "type": "uint32"
+ },
+ {
+ "name": "ram_size",
+ "type": "uint32"
+ }
+ ],
+ "id": "libvirt-32"
+}
+
+{
+ "return": [
+ {
+ "name": "command_serr_enable",
+ "type": "on/off"
+ },
+ {
+ "name": "multifunction",
+ "type": "on/off"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "romfile",
+ "type": "string"
+ },
+ {
+ "name": "addr",
+ "type": "pci-devfn"
+ },
+ {
+ "name": "surfaces",
+ "type": "int32"
+ },
+ {
+ "name": "vgamem_mb",
+ "type": "uint32"
+ },
+ {
+ "name": "vram64_size_mb",
+ "type": "uint32"
+ },
+ {
+ "name": "vram_size_mb",
+ "type": "uint32"
+ },
+ {
+ "name": "ram_size_mb",
+ "type": "uint32"
+ },
+ {
+ "name": "cmdlog",
+ "type": "uint32"
+ },
+ {
+ "name": "guestdebug",
+ "type": "uint32"
+ },
+ {
+ "name": "debug",
+ "type": "uint32"
+ },
+ {
+ "name": "revision",
+ "type": "uint32"
+ },
+ {
+ "name": "vram_size",
+ "type": "uint32"
+ },
+ {
+ "name": "ram_size",
+ "type": "uint32"
+ }
+ ],
+ "id": "libvirt-33"
+}
+
+{
+ "id": "libvirt-34",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'virtio-gpu-pci' not found"
+ }
+}
+
+{
+ "id": "libvirt-35",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'ICH9-LPC' not found"
+ }
+}
+
+{
+ "return": [
+ {
+ "name": "command_serr_enable",
+ "type": "on/off"
+ },
+ {
+ "name": "multifunction",
+ "type": "on/off"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "romfile",
+ "type": "string"
+ },
+ {
+ "name": "addr",
+ "type": "pci-devfn"
+ },
+ {
+ "name": "class",
+ "type": "hex32"
+ },
+ {
+ "name": "event_idx",
+ "type": "on/off"
+ },
+ {
+ "name": "indirect_desc",
+ "type": "on/off"
+ }
+ ],
+ "id": "libvirt-36"
+}
+
+{
+ "id": "libvirt-37",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'virtio-balloon-ccw' not found"
+ }
+}
+
+{
+ "return": [
+ ],
+ "id": "libvirt-38"
+}
+
+{
+ "return": [
+ {
+ "name": "command_serr_enable",
+ "type": "on/off"
+ },
+ {
+ "name": "multifunction",
+ "type": "on/off"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "romfile",
+ "type": "string"
+ },
+ {
+ "name": "addr",
+ "type": "pci-devfn"
+ },
+ {
+ "name": "p3",
+ "type": "uint32"
+ },
+ {
+ "name": "p2",
+ "type": "uint32"
+ },
+ {
+ "name": "slots",
+ "type": "uint32"
+ },
+ {
+ "name": "intrs",
+ "type": "uint32"
+ },
+ {
+ "name": "msix",
+ "type": "on/off"
+ },
+ {
+ "name": "msi",
+ "type": "on/off"
+ }
+ ],
+ "id": "libvirt-39"
+}
+
+{
+ "return": [
+ {
+ "name": "pc-q35-1.4",
+ "cpu-max": 255
+ },
+ {
+ "name": "pc-q35-1.5",
+ "cpu-max": 255
+ },
+ {
+ "name": "pc-q35-1.6",
+ "cpu-max": 255
+ },
+ {
+ "name": "pc-q35-1.7",
+ "cpu-max": 255,
+ "alias": "q35"
+ },
+ {
+ "name": "isapc",
+ "cpu-max": 1
+ },
+ {
+ "name": "pc-0.10",
+ "cpu-max": 255
+ },
+ {
+ "name": "pc-0.11",
+ "cpu-max": 255
+ },
+ {
+ "name": "pc-0.12",
+ "cpu-max": 255
+ },
+ {
+ "name": "pc-0.13",
+ "cpu-max": 255
+ },
+ {
+ "name": "pc-0.14",
+ "cpu-max": 255
+ },
+ {
+ "name": "pc-0.15",
+ "cpu-max": 255
+ },
+ {
+ "name": "pc-1.0",
+ "cpu-max": 255
+ },
+ {
+ "name": "pc-1.1",
+ "cpu-max": 255
+ },
+ {
+ "name": "pc-1.2",
+ "cpu-max": 255
+ },
+ {
+ "name": "pc-1.3",
+ "cpu-max": 255
+ },
+ {
+ "name": "pc-i440fx-1.4",
+ "cpu-max": 255
+ },
+ {
+ "name": "pc-i440fx-1.5",
+ "cpu-max": 255
+ },
+ {
+ "name": "pc-i440fx-1.6",
+ "cpu-max": 255
+ },
+ {
+ "name": "pc-i440fx-1.7",
+ "is-default": true,
+ "cpu-max": 255,
+ "alias": "pc"
+ },
+ {
+ "name": "none",
+ "cpu-max": 1
+ }
+ ],
+ "id": "libvirt-40"
+}
+
+{
+ "return": [
+ {
+ "name": "Opteron_G5"
+ },
+ {
+ "name": "Opteron_G4"
+ },
+ {
+ "name": "Opteron_G3"
+ },
+ {
+ "name": "Opteron_G2"
+ },
+ {
+ "name": "Opteron_G1"
+ },
+ {
+ "name": "Haswell"
+ },
+ {
+ "name": "SandyBridge"
+ },
+ {
+ "name": "Westmere"
+ },
+ {
+ "name": "Nehalem"
+ },
+ {
+ "name": "Penryn"
+ },
+ {
+ "name": "Conroe"
+ },
+ {
+ "name": "n270"
+ },
+ {
+ "name": "athlon"
+ },
+ {
+ "name": "pentium3"
+ },
+ {
+ "name": "pentium2"
+ },
+ {
+ "name": "pentium"
+ },
+ {
+ "name": "486"
+ },
+ {
+ "name": "coreduo"
+ },
+ {
+ "name": "kvm32"
+ },
+ {
+ "name": "qemu32"
+ },
+ {
+ "name": "kvm64"
+ },
+ {
+ "name": "core2duo"
+ },
+ {
+ "name": "phenom"
+ },
+ {
+ "name": "qemu64"
+ }
+ ],
+ "id": "libvirt-41"
+}
+
+{
+ "return": {
+ "enabled": false,
+ "present": true
+ },
+ "id": "libvirt-42"
+}
+
+{
+ "return": [
+ ],
+ "id": "libvirt-43"
+}
+
+{
+ "return": [
+ ],
+ "id": "libvirt-44"
+}
+
+{
+ "return": [
+ {
+ "parameters": [
+ {
+ "name": "initiator-name",
+ "help": "Initiator iqn name to use when connecting",
+ "type": "string"
+ },
+ {
+ "name": "header-digest",
+ "help": "HeaderDigest setting. {CRC32C|CRC32C-NONE|NONE-CRC32C|NONE}",
+ "type": "string"
+ },
+ {
+ "name": "password",
+ "help": "password for CHAP authentication to target",
+ "type": "string"
+ },
+ {
+ "name": "user",
+ "help": "username for CHAP authentication to target",
+ "type": "string"
+ }
+ ],
+ "option": "iscsi"
+ },
+ {
+ "parameters": [
+ ],
+ "option": "smbios"
+ },
+ {
+ "parameters": [
+ {
+ "name": "seamless-migration",
+ "type": "boolean"
+ },
+ {
+ "name": "playback-compression",
+ "type": "boolean"
+ },
+ {
+ "name": "agent-mouse",
+ "type": "boolean"
+ },
+ {
+ "name": "streaming-video",
+ "type": "string"
+ },
+ {
+ "name": "zlib-glz-wan-compression",
+ "type": "string"
+ },
+ {
+ "name": "jpeg-wan-compression",
+ "type": "string"
+ },
+ {
+ "name": "image-compression",
+ "type": "string"
+ },
+ {
+ "name": "plaintext-channel",
+ "type": "string"
+ },
+ {
+ "name": "tls-channel",
+ "type": "string"
+ },
+ {
+ "name": "tls-ciphers",
+ "type": "string"
+ },
+ {
+ "name": "x509-dh-key-file",
+ "type": "string"
+ },
+ {
+ "name": "x509-cacert-file",
+ "type": "string"
+ },
+ {
+ "name": "x509-cert-file",
+ "type": "string"
+ },
+ {
+ "name": "x509-key-password",
+ "type": "string"
+ },
+ {
+ "name": "x509-key-file",
+ "type": "string"
+ },
+ {
+ "name": "x509-dir",
+ "type": "string"
+ },
+ {
+ "name": "sasl",
+ "type": "boolean"
+ },
+ {
+ "name": "disable-agent-file-xfer",
+ "type": "boolean"
+ },
+ {
+ "name": "disable-copy-paste",
+ "type": "boolean"
+ },
+ {
+ "name": "disable-ticketing",
+ "type": "boolean"
+ },
+ {
+ "name": "password",
+ "type": "string"
+ },
+ {
+ "name": "ipv6",
+ "type": "boolean"
+ },
+ {
+ "name": "ipv4",
+ "type": "boolean"
+ },
+ {
+ "name": "addr",
+ "type": "string"
+ },
+ {
+ "name": "tls-port",
+ "type": "number"
+ },
+ {
+ "name": "port",
+ "type": "number"
+ }
+ ],
+ "option": "spice"
+ },
+ {
+ "parameters": [
+ ],
+ "option": "acpi"
+ },
+ {
+ "parameters": [
+ {
+ "name": "sock_fd",
+ "type": "number"
+ },
+ {
+ "name": "socket",
+ "type": "string"
+ },
+ {
+ "name": "readonly",
+ "type": "boolean"
+ },
+ {
+ "name": "writeout",
+ "type": "string"
+ },
+ {
+ "name": "security_model",
+ "type": "string"
+ },
+ {
+ "name": "mount_tag",
+ "type": "string"
+ },
+ {
+ "name": "path",
+ "type": "string"
+ },
+ {
+ "name": "fsdriver",
+ "type": "string"
+ }
+ ],
+ "option": "virtfs"
+ },
+ {
+ "parameters": [
+ {
+ "name": "sock_fd",
+ "type": "number"
+ },
+ {
+ "name": "socket",
+ "type": "string"
+ },
+ {
+ "name": "readonly",
+ "type": "boolean"
+ },
+ {
+ "name": "writeout",
+ "type": "string"
+ },
+ {
+ "name": "security_model",
+ "type": "string"
+ },
+ {
+ "name": "path",
+ "type": "string"
+ },
+ {
+ "name": "fsdriver",
+ "type": "string"
+ }
+ ],
+ "option": "fsdev"
+ },
+ {
+ "parameters": [
+ {
+ "name": "timestamp",
+ "type": "boolean"
+ }
+ ],
+ "option": "msg"
+ },
+ {
+ "parameters": [
+ {
+ "name": "mlock",
+ "type": "boolean"
+ }
+ ],
+ "option": "realtime"
+ },
+ {
+ "parameters": [
+ ],
+ "option": "tpmdev"
+ },
+ {
+ "parameters": [
+ ],
+ "option": "object"
+ },
+ {
+ "parameters": [
+ {
+ "name": "opaque",
+ "help": "free-form string used to describe fd",
+ "type": "string"
+ },
+ {
+ "name": "set",
+ "help": "ID of the fd set to add fd to",
+ "type": "number"
+ },
+ {
+ "name": "fd",
+ "help": "file descriptor of which a duplicate is added to fd set",
+ "type": "number"
+ }
+ ],
+ "option": "add-fd"
+ },
+ {
+ "parameters": [
+ {
+ "name": "enable",
+ "type": "boolean"
+ }
+ ],
+ "option": "sandbox"
+ },
+ {
+ "parameters": [
+ {
+ "name": "strict",
+ "type": "string"
+ },
+ {
+ "name": "reboot-timeout",
+ "type": "string"
+ },
+ {
+ "name": "splash-time",
+ "type": "string"
+ },
+ {
+ "name": "splash",
+ "type": "string"
+ },
+ {
+ "name": "menu",
+ "type": "boolean"
+ },
+ {
+ "name": "once",
+ "type": "string"
+ },
+ {
+ "name": "order",
+ "type": "string"
+ }
+ ],
+ "option": "boot-opts"
+ },
+ {
+ "parameters": [
+ {
+ "name": "maxcpus",
+ "type": "number"
+ },
+ {
+ "name": "threads",
+ "type": "number"
+ },
+ {
+ "name": "cores",
+ "type": "number"
+ },
+ {
+ "name": "sockets",
+ "type": "number"
+ },
+ {
+ "name": "cpus",
+ "type": "number"
+ }
+ ],
+ "option": "smp-opts"
+ },
+ {
+ "parameters": [
+ {
+ "name": "usb",
+ "help": "Set on/off to enable/disable usb",
+ "type": "boolean"
+ },
+ {
+ "name": "mem-merge",
+ "help": "enable/disable memory merge support",
+ "type": "boolean"
+ },
+ {
+ "name": "dump-guest-core",
+ "help": "Include guest memory in a core dump",
+ "type": "boolean"
+ },
+ {
+ "name": "dt_compatible",
+ "help": "Overrides the \"compatible\" property of the dt root node",
+ "type": "string"
+ },
+ {
+ "name": "phandle_start",
+ "help": "The first phandle ID we may generate dynamically",
+ "type": "number"
+ },
+ {
+ "name": "dumpdtb",
+ "help": "Dump current dtb to a file and quit",
+ "type": "string"
+ },
+ {
+ "name": "dtb",
+ "help": "Linux kernel device tree file",
+ "type": "string"
+ },
+ {
+ "name": "append",
+ "help": "Linux kernel command line",
+ "type": "string"
+ },
+ {
+ "name": "initrd",
+ "help": "Linux initial ramdisk file",
+ "type": "string"
+ },
+ {
+ "name": "kernel",
+ "help": "Linux kernel image file",
+ "type": "string"
+ },
+ {
+ "name": "kvm_shadow_mem",
+ "help": "KVM shadow MMU size",
+ "type": "size"
+ },
+ {
+ "name": "kernel_irqchip",
+ "help": "use KVM in-kernel irqchip",
+ "type": "boolean"
+ },
+ {
+ "name": "accel",
+ "help": "accelerator list",
+ "type": "string"
+ },
+ {
+ "name": "type",
+ "help": "emulated machine",
+ "type": "string"
+ }
+ ],
+ "option": "machine"
+ },
+ {
+ "parameters": [
+ {
+ "name": "romfile",
+ "type": "string"
+ },
+ {
+ "name": "bootindex",
+ "type": "number"
+ }
+ ],
+ "option": "option-rom"
+ },
+ {
+ "parameters": [
+ {
+ "name": "file",
+ "type": "string"
+ },
+ {
+ "name": "events",
+ "type": "string"
+ }
+ ],
+ "option": "trace"
+ },
+ {
+ "parameters": [
+ {
+ "name": "pretty",
+ "type": "boolean"
+ },
+ {
+ "name": "default",
+ "type": "boolean"
+ },
+ {
+ "name": "chardev",
+ "type": "string"
+ },
+ {
+ "name": "mode",
+ "type": "string"
+ }
+ ],
+ "option": "mon"
+ },
+ {
+ "parameters": [
+ {
+ "name": "value",
+ "type": "string"
+ },
+ {
+ "name": "property",
+ "type": "string"
+ },
+ {
+ "name": "driver",
+ "type": "string"
+ }
+ ],
+ "option": "global"
+ },
+ {
+ "parameters": [
+ {
+ "name": "driftfix",
+ "type": "string"
+ },
+ {
+ "name": "clock",
+ "type": "string"
+ },
+ {
+ "name": "base",
+ "type": "string"
+ }
+ ],
+ "option": "rtc"
+ },
+ {
+ "parameters": [
+ ],
+ "option": "net"
+ },
+ {
+ "parameters": [
+ ],
+ "option": "netdev"
+ },
+ {
+ "parameters": [
+ ],
+ "option": "device"
+ },
+ {
+ "parameters": [
+ {
+ "name": "chardev",
+ "type": "string"
+ },
+ {
+ "name": "size",
+ "type": "size"
+ },
+ {
+ "name": "debug",
+ "type": "number"
+ },
+ {
+ "name": "name",
+ "type": "string"
+ },
+ {
+ "name": "signal",
+ "type": "boolean"
+ },
+ {
+ "name": "mux",
+ "type": "boolean"
+ },
+ {
+ "name": "rows",
+ "type": "number"
+ },
+ {
+ "name": "cols",
+ "type": "number"
+ },
+ {
+ "name": "height",
+ "type": "number"
+ },
+ {
+ "name": "width",
+ "type": "number"
+ },
+ {
+ "name": "telnet",
+ "type": "boolean"
+ },
+ {
+ "name": "delay",
+ "type": "boolean"
+ },
+ {
+ "name": "server",
+ "type": "boolean"
+ },
+ {
+ "name": "wait",
+ "type": "boolean"
+ },
+ {
+ "name": "ipv6",
+ "type": "boolean"
+ },
+ {
+ "name": "ipv4",
+ "type": "boolean"
+ },
+ {
+ "name": "to",
+ "type": "number"
+ },
+ {
+ "name": "localport",
+ "type": "string"
+ },
+ {
+ "name": "localaddr",
+ "type": "string"
+ },
+ {
+ "name": "port",
+ "type": "string"
+ },
+ {
+ "name": "host",
+ "type": "string"
+ },
+ {
+ "name": "path",
+ "type": "string"
+ },
+ {
+ "name": "backend",
+ "type": "string"
+ }
+ ],
+ "option": "chardev"
+ },
+ {
+ "parameters": [
+ {
+ "name": "copy-on-read",
+ "help": "copy read data from backing file into image file",
+ "type": "boolean"
+ },
+ {
+ "name": "read-only",
+ "help": "open drive file as read-only",
+ "type": "boolean"
+ },
+ {
+ "name": "addr",
+ "help": "pci address (virtio only)",
+ "type": "string"
+ },
+ {
+ "name": "boot",
+ "help": "(deprecated, ignored)",
+ "type": "boolean"
+ },
+ {
+ "name": "trans",
+ "help": "chs translation (auto, lba, none)",
+ "type": "string"
+ },
+ {
+ "name": "secs",
+ "help": "number of sectors (ide disk geometry)",
+ "type": "number"
+ },
+ {
+ "name": "heads",
+ "help": "number of heads (ide disk geometry)",
+ "type": "number"
+ },
+ {
+ "name": "cyls",
+ "help": "number of cylinders (ide disk geometry)",
+ "type": "number"
+ },
+ {
+ "name": "if",
+ "help": "interface (ide, scsi, sd, mtd, floppy, pflash, virtio)",
+ "type": "string"
+ },
+ {
+ "name": "media",
+ "help": "media type (disk, cdrom)",
+ "type": "string"
+ },
+ {
+ "name": "index",
+ "help": "index number",
+ "type": "number"
+ },
+ {
+ "name": "unit",
+ "help": "unit number (i.e. lun for scsi)",
+ "type": "number"
+ },
+ {
+ "name": "bus",
+ "help": "bus number",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-size",
+ "help": "when limiting by iops max size of an I/O in bytes",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-write-max",
+ "help": "total bytes write burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-read-max",
+ "help": "total bytes read burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-total-max",
+ "help": "total bytes burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-write-max",
+ "help": "I/O operations write burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-read-max",
+ "help": "I/O operations read burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-total-max",
+ "help": "I/O operations burst",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-write",
+ "help": "limit write bytes per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-read",
+ "help": "limit read bytes per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-total",
+ "help": "limit total bytes per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-write",
+ "help": "limit write operations per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-read",
+ "help": "limit read operations per second",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-total",
+ "help": "limit total I/O operations per second",
+ "type": "number"
+ },
+ {
+ "name": "werror",
+ "help": "write error action",
+ "type": "string"
+ },
+ {
+ "name": "rerror",
+ "help": "read error action",
+ "type": "string"
+ },
+ {
+ "name": "serial",
+ "help": "disk serial number",
+ "type": "string"
+ },
+ {
+ "name": "format",
+ "help": "disk format (raw, qcow2, ...)",
+ "type": "string"
+ },
+ {
+ "name": "aio",
+ "help": "host AIO implementation (threads, native)",
+ "type": "string"
+ },
+ {
+ "name": "cache.no-flush",
+ "help": "ignore any flush requests for the device",
+ "type": "boolean"
+ },
+ {
+ "name": "cache.direct",
+ "help": "enables use of O_DIRECT (bypass the host page cache)",
+ "type": "boolean"
+ },
+ {
+ "name": "cache.writeback",
+ "help": "enables writeback mode for any caches",
+ "type": "boolean"
+ },
+ {
+ "name": "discard",
+ "help": "discard operation (ignore/off, unmap/on)",
+ "type": "string"
+ },
+ {
+ "name": "file",
+ "help": "disk image",
+ "type": "string"
+ },
+ {
+ "name": "snapshot",
+ "help": "enable/disable snapshot mode",
+ "type": "boolean"
+ }
+ ],
+ "option": "drive"
+ }
+ ],
+ "id": "libvirt-45"
+}
+
+{
+ "return": [
+ {
+ "state": false,
+ "capability": "xbzrle"
+ },
+ {
+ "state": false,
+ "capability": "x-rdma-pin-all"
+ },
+ {
+ "state": false,
+ "capability": "auto-converge"
+ },
+ {
+ "state": false,
+ "capability": "zero-blocks"
+ }
+ ],
+ "id": "libvirt-46"
+}
diff --git a/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
new file mode 100644
index 0000000..db0d000
--- /dev/null
+++ b/tests/qemucapabilitiesdata/caps_1.7.0.x86_64.xml
@@ -0,0 +1,200 @@
+<qemuCaps>
+ <qemuctime>0</qemuctime>
+ <selfctime>0</selfctime>
+ <selfvers>0</selfvers>
+ <usedQMP/>
+ <flag name='mem-path'/>
+ <flag name='drive-serial'/>
+ <flag name='chardev'/>
+ <flag name='enable-kvm'/>
+ <flag name='monitor-json'/>
+ <flag name='sdl'/>
+ <flag name='smp-topology'/>
+ <flag name='netdev'/>
+ <flag name='rtc'/>
+ <flag name='vhost-net'/>
+ <flag name='no-hpet'/>
+ <flag name='no-kvm-pit'/>
+ <flag name='pci-configfd'/>
+ <flag name='nodefconfig'/>
+ <flag name='boot-menu'/>
+ <flag name='fsdev'/>
+ <flag name='name-process'/>
+ <flag name='smbios-type'/>
+ <flag name='vga-qxl'/>
+ <flag name='spice'/>
+ <flag name='vga-none'/>
+ <flag name='boot-index'/>
+ <flag name='hda-duplex'/>
+ <flag name='drive-aio'/>
+ <flag name='pci-multibus'/>
+ <flag name='pci-bootindex'/>
+ <flag name='ccid-emulated'/>
+ <flag name='ccid-passthru'/>
+ <flag name='chardev-spicevmc'/>
+ <flag name='virtio-tx-alg'/>
+ <flag name='device-qxl-vga'/>
+ <flag name='pci-multifunction'/>
+ <flag name='virtio-blk-pci.ioeventfd'/>
+ <flag name='sga'/>
+ <flag name='virtio-blk-pci.event_idx'/>
+ <flag name='virtio-net-pci.event_idx'/>
+ <flag name='cache-directsync'/>
+ <flag name='piix3-usb-uhci'/>
+ <flag name='piix4-usb-uhci'/>
+ <flag name='usb-ehci'/>
+ <flag name='ich9-usb-ehci1'/>
+ <flag name='vt82c686b-usb-uhci'/>
+ <flag name='pci-ohci'/>
+ <flag name='usb-redir'/>
+ <flag name='usb-hub'/>
+ <flag name='no-shutdown'/>
+ <flag name='cache-unsafe'/>
+ <flag name='ich9-ahci'/>
+ <flag name='no-acpi'/>
+ <flag name='fsdev-readonly'/>
+ <flag name='virtio-blk-pci.scsi'/>
+ <flag name='drive-copy-on-read'/>
+ <flag name='fsdev-writeout'/>
+ <flag name='drive-iotune'/>
+ <flag name='system_wakeup'/>
+ <flag name='scsi-disk.channel'/>
+ <flag name='scsi-block'/>
+ <flag name='transaction'/>
+ <flag name='block-job-async'/>
+ <flag name='scsi-cd'/>
+ <flag name='ide-cd'/>
+ <flag name='no-user-config'/>
+ <flag name='hda-micro'/>
+ <flag name='dump-guest-memory'/>
+ <flag name='nec-usb-xhci'/>
+ <flag name='balloon-event'/>
+ <flag name='bridge'/>
+ <flag name='lsi'/>
+ <flag name='virtio-scsi-pci'/>
+ <flag name='blockio'/>
+ <flag name='disable-s3'/>
+ <flag name='disable-s4'/>
+ <flag name='usb-redir.filter'/>
+ <flag name='ide-drive.wwn'/>
+ <flag name='scsi-disk.wwn'/>
+ <flag name='seccomp-sandbox'/>
+ <flag name='reboot-timeout'/>
+ <flag name='dump-guest-core'/>
+ <flag name='seamless-migration'/>
+ <flag name='block-commit'/>
+ <flag name='vnc'/>
+ <flag name='drive-mirror'/>
+ <flag name='usb-redir.bootindex'/>
+ <flag name='usb-host.bootindex'/>
+ <flag name='blockdev-snapshot-sync'/>
+ <flag name='qxl'/>
+ <flag name='VGA'/>
+ <flag name='cirrus-vga'/>
+ <flag name='vmware-svga'/>
+ <flag name='device-video-primary'/>
+ <flag name='usb-serial'/>
+ <flag name='usb-net'/>
+ <flag name='add-fd'/>
+ <flag name='nbd-server'/>
+ <flag name='virtio-rng'/>
+ <flag name='rng-random'/>
+ <flag name='rng-egd'/>
+ <flag name='dtb'/>
+ <flag name='megasas'/>
+ <flag name='ipv6-migration'/>
+ <flag name='machine-opt'/>
+ <flag name='machine-usb-opt'/>
+ <flag name='pci-bridge'/>
+ <flag name='vfio-pci'/>
+ <flag name='vfio-pci.bootindex'/>
+ <flag name='scsi-generic'/>
+ <flag name='scsi-generic.bootindex'/>
+ <flag name='mem-merge'/>
+ <flag name='vnc-websocket'/>
+ <flag name='drive-discard'/>
+ <flag name='mlock'/>
+ <flag name='vnc-share-policy'/>
+ <flag name='device-del-event'/>
+ <flag name='dmi-to-pci-bridge'/>
+ <flag name='i440fx-pci-hole64-size'/>
+ <flag name='q35-pci-hole64-size'/>
+ <flag name='usb-storage'/>
+ <flag name='usb-storage.removable'/>
+ <flag name='virtio-mmio'/>
+ <flag name='ich9-intel-hda'/>
+ <flag name='kvm-pit-lost-tick-policy'/>
+ <flag name='boot-strict'/>
+ <flag name='pvpanic'/>
+ <flag name='spice-file-xfer-disable'/>
+ <flag name='spiceport'/>
+ <flag name='usb-kbd'/>
+ <flag name='host-pci-multidomain'/>
+ <flag name='msg-timestamp'/>
+ <flag name='usb-audio'/>
+ <flag name='splash-timeout'/>
+ <flag name='ivshmem'/>
+ <flag name='drive-iotune-max'/>
+ <flag name='VGA.vgamem_mb'/>
+ <flag name='vmware-svga.vgamem_mb'/>
+ <flag name='qxl.vgamem_mb'/>
+ <flag name='qxl-vga.vgamem_mb'/>
+ <flag name='pci-serial'/>
+ <flag name='ioh3420'/>
+ <flag name='x3130-upstream'/>
+ <flag name='xio3130-downstream'/>
+ <flag name='rtl8139'/>
+ <flag name='e1000'/>
+ <flag name='virtio-net'/>
+ <flag name='qxl.vram64_size_mb'/>
+ <flag name='qxl-vga.vram64_size_mb'/>
+ <flag name='device-tray-moved-event'/>
+ <flag name='nec-usb-xhci-ports'/>
+ <version>1007000</version>
+ <kvmVersion>0</kvmVersion>
+ <package></package>
+ <arch>x86_64</arch>
+ <cpu name='Opteron_G5'/>
+ <cpu name='Opteron_G4'/>
+ <cpu name='Opteron_G3'/>
+ <cpu name='Opteron_G2'/>
+ <cpu name='Opteron_G1'/>
+ <cpu name='Haswell'/>
+ <cpu name='SandyBridge'/>
+ <cpu name='Westmere'/>
+ <cpu name='Nehalem'/>
+ <cpu name='Penryn'/>
+ <cpu name='Conroe'/>
+ <cpu name='n270'/>
+ <cpu name='athlon'/>
+ <cpu name='pentium3'/>
+ <cpu name='pentium2'/>
+ <cpu name='pentium'/>
+ <cpu name='486'/>
+ <cpu name='coreduo'/>
+ <cpu name='kvm32'/>
+ <cpu name='qemu32'/>
+ <cpu name='kvm64'/>
+ <cpu name='core2duo'/>
+ <cpu name='phenom'/>
+ <cpu name='qemu64'/>
+ <machine name='pc-i440fx-1.7' alias='pc' maxCpus='255'/>
+ <machine name='pc-q35-1.4' maxCpus='255'/>
+ <machine name='pc-q35-1.5' maxCpus='255'/>
+ <machine name='pc-q35-1.6' maxCpus='255'/>
+ <machine name='pc-q35-1.7' alias='q35' maxCpus='255'/>
+ <machine name='isapc' maxCpus='1'/>
+ <machine name='pc-0.10' maxCpus='255'/>
+ <machine name='pc-0.11' maxCpus='255'/>
+ <machine name='pc-0.12' maxCpus='255'/>
+ <machine name='pc-0.13' maxCpus='255'/>
+ <machine name='pc-0.14' maxCpus='255'/>
+ <machine name='pc-0.15' maxCpus='255'/>
+ <machine name='pc-1.0' maxCpus='255'/>
+ <machine name='pc-1.1' maxCpus='255'/>
+ <machine name='pc-1.2' maxCpus='255'/>
+ <machine name='pc-1.3' maxCpus='255'/>
+ <machine name='pc-i440fx-1.4' maxCpus='255'/>
+ <machine name='pc-i440fx-1.5' maxCpus='255'/>
+ <machine name='pc-i440fx-1.6' maxCpus='255'/>
+</qemuCaps>
diff --git a/tests/qemucapabilitiestest.c b/tests/qemucapabilitiestest.c
index 058ad8c..3d55006 100644
--- a/tests/qemucapabilitiestest.c
+++ b/tests/qemucapabilitiestest.c
@@ -165,7 +165,7 @@ mymain(void)
DO_TEST("x86_64", "caps_1.4.2");
DO_TEST("x86_64", "caps_1.5.3");
DO_TEST("x86_64", "caps_1.6.0");
- DO_TEST("x86_64", "caps_1.6.50");
+ DO_TEST("x86_64", "caps_1.7.0");
DO_TEST("x86_64", "caps_2.1.1");
DO_TEST("x86_64", "caps_2.4.0");
DO_TEST("x86_64", "caps_2.5.0");
--
2.8.3
8 years, 6 months
[libvirt] [PATCH 00/11] qemu: Erradicate use of virDomainLiveConfigHelperMethod
by Peter Krempa
Don't use that terrible function in the qemu driver and a few relevant refactors.
Peter Krempa (11):
qemu: monitor: Remove 'supportMaxOptions' argument from
qemuMonitorGetBlockIoThrottle
qemu: Replace virDomainLiveConfigHelperMethod in
qemuDomainGetBlockIoTune
qemu: Refactor typed params assignment in qemuDomainGetBlockIoTune
qemu: Remove virDomainLiveConfigHelperMethod from
qemuDomainSetMemoryParameters
qemu: Remove virDomainLiveConfigHelperMethod from
qemuDomainGetBlkioParameters
qemu: Refactor qemuDomainGetBlkioParameters
qemu: Remove virDomainLiveConfigHelperMethod from
qemuDomainGetSchedulerParametersFlags
conf: Change virDomainCputune member 'shares' to unsigned long long
qemu: Refactor qemuDomainGetSchedulerParametersFlags
qemu: Remove virDomainLiveConfigHelperMethod from
qemuDomainSetBlockIoTune
qemu: Remove virDomainLiveConfigHelperMethod from
qemuDomainSetSchedulerParametersFlags
src/conf/domain_conf.c | 6 +-
src/conf/domain_conf.h | 2 +-
src/lxc/lxc_native.c | 2 +-
src/qemu/qemu_driver.c | 896 ++++++++++++-------------------------------
src/qemu/qemu_monitor.c | 5 +-
src/qemu/qemu_monitor.h | 3 +-
src/qemu/qemu_monitor_json.c | 24 +-
src/qemu/qemu_monitor_json.h | 3 +-
src/vmx/vmx.c | 6 +-
tests/qemumonitorjsontest.c | 2 +-
10 files changed, 261 insertions(+), 688 deletions(-)
--
2.8.2
8 years, 6 months
[libvirt] [PATCH] libxl: default to qemu driver for network disks
by Jim Fehlig
Xen only supports network-based disks with the qemu (aka qdisk) driver.
Set the driverName to 'qemu' in libxlDomainDeviceDefPostParse() if
not already set. When starting a domain with network-based disks,
ensure the driverName is 'qemu'.
Signed-off-by: Jim Fehlig <jfehlig(a)suse.com>
---
src/libxl/libxl_conf.c | 11 +++++++----
src/libxl/libxl_domain.c | 12 ++++++++++++
2 files changed, 19 insertions(+), 4 deletions(-)
diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c
index 13e56ac..78e9ee9 100644
--- a/src/libxl/libxl_conf.c
+++ b/src/libxl/libxl_conf.c
@@ -1058,13 +1058,18 @@ libxlMakeNetworkDiskSrc(virStorageSourcePtr src, char **srcstr)
int
libxlMakeDisk(virDomainDiskDefPtr l_disk, libxl_device_disk *x_disk)
{
- const char *driver;
- int format;
+ const char *driver = virDomainDiskGetDriver(l_disk);
+ int format = virDomainDiskGetFormat(l_disk);
int actual_type = virStorageSourceGetActualType(l_disk->src);
libxl_device_disk_init(x_disk);
if (actual_type == VIR_STORAGE_TYPE_NETWORK) {
+ if (driver && STRNEQ(driver, "qemu")) {
+ virReportError(VIR_ERR_OPERATION_INVALID, "%s",
+ _("only the 'qemu' driver can be used with network disks"));
+ return -1;
+ }
if (libxlMakeNetworkDiskSrc(l_disk->src, &x_disk->pdev_path) < 0)
return -1;
} else {
@@ -1075,8 +1080,6 @@ libxlMakeDisk(virDomainDiskDefPtr l_disk, libxl_device_disk *x_disk)
if (VIR_STRDUP(x_disk->vdev, l_disk->dst) < 0)
return -1;
- driver = virDomainDiskGetDriver(l_disk);
- format = virDomainDiskGetFormat(l_disk);
if (driver) {
if (STREQ(driver, "tap") || STREQ(driver, "tap2")) {
switch (format) {
diff --git a/src/libxl/libxl_domain.c b/src/libxl/libxl_domain.c
index 113942b..8a3866f 100644
--- a/src/libxl/libxl_domain.c
+++ b/src/libxl/libxl_domain.c
@@ -364,6 +364,18 @@ libxlDomainDeviceDefPostParse(virDomainDeviceDefPtr dev,
}
}
+ /* for network-based disks, set 'qemu' as the default driver */
+ if (dev->type == VIR_DOMAIN_DEVICE_DISK) {
+ virDomainDiskDefPtr disk = dev->data.disk;
+ int actual_type = virStorageSourceGetActualType(disk->src);
+
+ if (actual_type == VIR_STORAGE_TYPE_NETWORK) {
+ if (!virDomainDiskGetDriver(disk) &&
+ virDomainDiskSetDriver(disk, "qemu") < 0)
+ return -1;
+ }
+ }
+
return 0;
}
--
2.1.4
8 years, 6 months
[libvirt] [PATCH v2] Call qemuDomainObjEndJob when qemuCaps is null during hotplug
by Shivaprasad G Bhat
Signed-off-by: Shivaprasad G Bhat <sbhat(a)linux.vnet.ibm.com>
---
src/qemu/qemu_driver.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 249393a..cd53d3c 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -8237,7 +8237,7 @@ qemuDomainAttachDeviceFlags(virDomainPtr dom,
if (priv->qemuCaps)
qemuCaps = virObjectRef(priv->qemuCaps);
else if (!(qemuCaps = virQEMUCapsCacheLookup(driver->qemuCapsCache, vm->def->emulator)))
- goto cleanup;
+ goto endjob;
if (flags & VIR_DOMAIN_AFFECT_CONFIG) {
/* Make a copy for updated domain. */
@@ -8366,7 +8366,7 @@ static int qemuDomainUpdateDeviceFlags(virDomainPtr dom,
if (priv->qemuCaps)
qemuCaps = virObjectRef(priv->qemuCaps);
else if (!(qemuCaps = virQEMUCapsCacheLookup(driver->qemuCapsCache, vm->def->emulator)))
- goto cleanup;
+ goto endjob;
if (flags & VIR_DOMAIN_AFFECT_CONFIG) {
/* Make a copy for updated domain. */
@@ -8490,7 +8490,7 @@ qemuDomainDetachDeviceFlags(virDomainPtr dom,
if (priv->qemuCaps)
qemuCaps = virObjectRef(priv->qemuCaps);
else if (!(qemuCaps = virQEMUCapsCacheLookup(driver->qemuCapsCache, vm->def->emulator)))
- goto cleanup;
+ goto endjob;
if (flags & VIR_DOMAIN_AFFECT_CONFIG) {
/* Make a copy for updated domain. */
8 years, 6 months