Devel
Threads by month
- ----- 2026 -----
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- 32 participants
- 40121 discussions
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
2
2
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
2
8
25 May '16
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
2
1
[libvirt] [PATCH v2] qemucapstest: replace caps-1.6.50 with updated caps-1.7.0
by Pavel Hrdina 25 May '16
by Pavel Hrdina 25 May '16
25 May '16
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
2
1
[libvirt] [PATCH 00/11] qemu: Erradicate use of virDomainLiveConfigHelperMethod
by Peter Krempa 25 May '16
by Peter Krempa 25 May '16
25 May '16
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
2
13
25 May '16
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
3
4
[libvirt] [PATCH v2] Call qemuDomainObjEndJob when qemuCaps is null during hotplug
by Shivaprasad G Bhat 25 May '16
by Shivaprasad G Bhat 25 May '16
25 May '16
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. */
2
1
Re: [libvirt] [Qemu-devel] [Bug 1585533] [NEW] cache-miss-rate / Invalid JSON
by Eric Blake 25 May '16
by Eric Blake 25 May '16
25 May '16
On 05/25/2016 02:46 AM, Marc Brothier wrote:
> Public bug reported:
>
> Hi,
>
> We have VMs which were started with an older version than qemu 2.1 which
> added "cache-miss-rate" property for XBZRLECacheStats. While trying to
> migrate the VM to a new host which is running a higher version (2.3) of
> Qemu we got an exception:
>
> virJSONValueFromString:1642 : internal error: cannot parse json {"return": {"expected-downtime": 1, "xbzrle-cache": {"bytes": 0, "cache-size": 67108864, "cache-miss-rate": -nan, "pages": 0, "overflow": 0, "cache-miss": 8933}, "status": "active", "disk": {"total": 429496729600, "dirty-sync-count": 0, "remaining": 193896382464, "mbps": 0, "transferred": 235600347136, "duplicate": 0, "dirty-pages-rate": 0, "skipped": 0, "normal-bytes": 0, "normal": 0}, "setup-time": 13, "total-time": 1543124, "ram": {"total": 8599183360, "dirty-sync-count": 4, "remaining": 30695424, "mbps": 830.636997, "transferred": 3100448901, "duplicate": 1358341, "dirty-pages-rate": 7, "skipped": 0, "normal-bytes": 3082199040, "normal": 752490}}, "id": "libvirt-186200"}: lexical error: malformed number, a digit is required after the minus sign.
> 67108864, "cache-miss-rate": -nan, "pages": 0, "overflow": 0
> (right here) ------^
>
> virNetClientStreamRaiseError:191 : stream aborted at client request
Wow - I've known we have a problem with qemu emitting non-compliant
JSON, but this proves that it is fatal to libvirt. I guess my series on
improving the JSON parser [1] should consider doing a fallback to
s/NaN/0/ and s/Inf/DBL_MAX/ rather than completely erroring out when a
client tries to request it. Meanwhile, it's an easy patch to qemu to
avoid division by zero when generating cache-miss-rate.
[1] https://lists.gnu.org/archive/html/qemu-devel/2016-05/msg03424.html
>
>
> Would it be possible to improve the JSON parser to skip the key if the value is incorrect
Libvirt uses libyajl to parse JSON, and libyajl has an outstanding bug
request to support extensions to JSON such as parsing non-finite floats.
Since there has been no upstream reaction to the bug request, I
seriously doubt it will happen any time soon, so any change to tolerate
NaN in libvirt would have to be a one-off patch. It sounds like the
better fix is to make qemu emit valid JSON in the first place, rather
than making libvirt deal with broken JSON from qemu.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
1
0
[libvirt] [PATCH 0/3] qemu: Allow update of certain disk options during runtime
by Peter Krempa 25 May '16
by Peter Krempa 25 May '16
25 May '16
Until this series it was possible to update floppies and cdroms only. With this
you can update startup policy and snapshot behavior for regular disks too.
Peter Krempa (3):
qemu: driver: Move around code to avoid need to rollback
qemu: driver: Remove unnecessary cleanup label from
qemuDomainChangeDiskLive
qemu: driver: Allow disk update of startupPolicy/snapshot for all
disks
src/qemu/qemu_driver.c | 74 ++++++++++++++++++--------------------------------
1 file changed, 26 insertions(+), 48 deletions(-)
--
2.8.2
2
5
25 May '16
This had been on the Debian package list before but its time to take
this onwards. So the goal would be to have one set to rule them all
(when using apparmor) and drop the seperate set of definitions which
exist at least in the Ubuntu packaging.
Right now the patch would be at a state which adds all missing files
and rules to the current examples in libvirt and installs them when
using --with-apparmor-profiles.
One problem seems to be that some of the definitions might cause
parse failures on certain versions of apparmor. I checked this morning
and this looks a bit hairy. So some apparmor 2.8 versions potentially
have issues, but not all apparmor 2.8 are the same (gah).
I could imagine (but John, we really could use some guidance here ;))
that at least some changes could be related to version 2.8.95~2430:
+ debian/patches/mediate-signals.patch,
debian/patches/change-signal-syntax.patch: Parse signal rules with
apparmor_parser. See the apparmor.d(5) man page for syntax details.
+ debian/patches/change-ptrace-syntax.patch,
debian/patches/mediate-ptrace.patch: Parse ptrace rules with
apparmor_parser. See the apparmor.d(5) man page for syntax details.
But, regardless of the when, the apparmor rules maybe need a way to handle
versioned features of the parser. One proposal was to comment out problematic
rules and allow the packager to re-enable things. Maybe going one step
further and have some pre-processing that handles version based sections
(like #if (APPARMOR_VERSION >= xxx)).
So that is where we stand. Ideas are very welcome.
-Stefan
---
>From aec5cf8cc30c80492a37856626264c3d4c27a31f Mon Sep 17 00:00:00 2001
From: Stefan Bader <stefan.bader(a)canonical.com>
Date: Thu, 18 Sep 2014 14:15:17 +0200
Subject: [PATCH] Add missing delta from Ubuntu to apparmor profiles
This fixes up the upstream profiles and would allow to drop apparmor
related delta from the Ubuntu package.
Thanks to Serge Hallyn for the Makefile.am install hook that allows
to rename the local file.
Signed-off-by: Stefan Bader <stefan.bader(a)canonical.com>
---
examples/apparmor/Makefile.am | 10 ++++++++
examples/apparmor/libvirt-lxc | 15 +++++++++++-
examples/apparmor/libvirt-qemu | 31 +++++++++++++++++++++++-
examples/apparmor/local-usr.sbin.libvirtd | 2 ++
examples/apparmor/usr.lib.libvirt.virt-aa-helper | 25 ++++++++++++++++---
examples/apparmor/usr.sbin.libvirtd | 17 ++++++++++++-
6 files changed, 94 insertions(+), 6 deletions(-)
create mode 100644 examples/apparmor/local-usr.sbin.libvirtd
diff --git a/examples/apparmor/Makefile.am b/examples/apparmor/Makefile.am
index 7a20e16..aa46cb9 100644
--- a/examples/apparmor/Makefile.am
+++ b/examples/apparmor/Makefile.am
@@ -20,6 +20,7 @@ EXTRA_DIST= \
libvirt-qemu \
libvirt-lxc \
usr.lib.libvirt.virt-aa-helper \
+ local-usr.sbin.libvirtd \
usr.sbin.libvirtd
if WITH_APPARMOR_PROFILES
@@ -29,6 +30,15 @@ apparmor_DATA = \
usr.sbin.libvirtd \
$(NULL)
+localdir = $(apparmordir)/local
+local_DATA = \
+ local-usr.sbin.libvirtd \
+ $(NULL)
+
+install-data-hook:
+ mv $(DESTDIR)$(localdir)/local-usr.sbin.libvirtd \
+ $(DESTDIR)$(localdir)/usr.sbin.libvirtd
+
abstractionsdir = $(apparmordir)/abstractions
abstractions_DATA = \
libvirt-qemu \
diff --git a/examples/apparmor/libvirt-lxc b/examples/apparmor/libvirt-lxc
index 4bfb503..4705e0a 100644
--- a/examples/apparmor/libvirt-lxc
+++ b/examples/apparmor/libvirt-lxc
@@ -1,12 +1,18 @@
-# Last Modified: Fri Feb 7 13:01:36 2014
+# Last Modified: Thu, 18 Sep 2014 13:56:49 +0200
#include <abstractions/base>
umount,
+ dbus,
+ signal,
+ ptrace,
# ignore DENIED message on / remount
deny mount options=(ro, remount) -> /,
+ # support use of cgmanager proxy
+ mount options=(move) /sys/fs/cgroup/cgmanager/ -> /sys/fs/cgroup/cgmanager.lower/,
+
# allow tmpfs mounts everywhere
mount fstype=tmpfs,
@@ -33,8 +39,15 @@
mount fstype=fusectl -> /sys/fs/fuse/connections/,
mount fstype=securityfs -> /sys/kernel/security/,
mount fstype=debugfs -> /sys/kernel/debug/,
+ deny mount fstype=debugfs -> /var/lib/ureadahead/debugfs/,
mount fstype=proc -> /proc/,
mount fstype=sysfs -> /sys/,
+
+ mount options=(rw nosuid nodev noexec remount) -> /sys/,
+ mount options=(rw remount) -> /sys/kernel/security/,
+ mount options=(rw remount) -> /sys/fs/pstore/,
+ mount options=(ro remount) -> /sys/fs/pstore/,
+
deny /sys/firmware/efi/efivars/** rwklx,
deny /sys/kernel/security/** rwklx,
diff --git a/examples/apparmor/libvirt-qemu b/examples/apparmor/libvirt-qemu
index c6de6dd..b69e64c 100644
--- a/examples/apparmor/libvirt-qemu
+++ b/examples/apparmor/libvirt-qemu
@@ -1,4 +1,4 @@
-# Last Modified: Wed Sep 3 21:52:03 2014
+# Last Modified: Thu, 18 Sep 2014 16:41:21 +0200
#include <abstractions/base>
#include <abstractions/consoles>
@@ -13,15 +13,22 @@
capability setgid,
capability setuid,
+ # this is needed with libcap-ng support, however it breaks a lot of things
+ # atm, so just silence the denial until libcap-ng works right. LP: #522845
+ deny capability setpcap,
+
network inet stream,
network inet6 stream,
/dev/net/tun rw,
+ /dev/tap* rw,
/dev/kvm rw,
/dev/ptmx rw,
/dev/kqemu rw,
@{PROC}/*/status r,
@{PROC}/sys/kernel/cap_last_cap r,
+ owner @{PROC}/*/auxv r,
+ @{PROC}/sys/vm/overcommit_memory r,
# For hostdev access. The actual devices will be added dynamically
/sys/bus/usb/devices/ r,
@@ -38,6 +45,9 @@
/dev/snd/* rw,
capability ipc_lock,
# spice
+ /usr/bin/qemu-system-i386-spice rmix,
+ /usr/bin/qemu-system-x86_64-spice rmix,
+ /{dev,run}/shm/ r,
owner /{dev,run}/shm/spice.* rw,
# 'kill' is not required for sound and is a security risk. Do not enable
# unless you absolutely need it.
@@ -73,6 +83,7 @@
# the various binaries
/usr/bin/kvm rmix,
/usr/bin/qemu rmix,
+ /usr/bin/qemu-system-aarch64 rmix,
/usr/bin/qemu-system-arm rmix,
/usr/bin/qemu-system-cris rmix,
/usr/bin/qemu-system-i386 rmix,
@@ -91,6 +102,7 @@
/usr/bin/qemu-system-sparc rmix,
/usr/bin/qemu-system-sparc64 rmix,
/usr/bin/qemu-system-x86_64 rmix,
+ /usr/bin/qemu-system-x86_64-spice rmix,
/usr/bin/qemu-alpha rmix,
/usr/bin/qemu-arm rmix,
/usr/bin/qemu-armeb rmix,
@@ -117,6 +129,16 @@
/bin/dash rmix,
/bin/dd rmix,
/bin/cat rmix,
+ /etc/pki/CA/ r,
+ /etc/pki/CA/* r,
+ /etc/pki/libvirt/ r,
+ /etc/pki/libvirt/** r,
+
+ # for rbd
+ /etc/ceph/ceph.conf r,
+
+ # for access to hugepages
+ owner "/run/hugepages/kvm/libvirt/qemu/**" rw,
# for usb access
/dev/bus/usb/ r,
@@ -124,6 +146,13 @@
/sys/bus/ r,
/sys/class/ r,
+ signal (receive) peer=/usr/sbin/libvirtd,
+ ptrace (tracedby) peer=/usr/sbin/libvirtd,
+
+ # for ppc device-tree access
+ @{PROC}/device-tree/ r,
+ @{PROC}/device-tree/** r,
+
/usr/{lib,libexec}/qemu-bridge-helper Cx -> qemu_bridge_helper,
# child profile for bridge helper process
profile qemu_bridge_helper {
diff --git a/examples/apparmor/local-usr.sbin.libvirtd b/examples/apparmor/local-usr.sbin.libvirtd
new file mode 100644
index 0000000..6e19f20
--- /dev/null
+++ b/examples/apparmor/local-usr.sbin.libvirtd
@@ -0,0 +1,2 @@
+# Site-specific additions and overrides for usr.sbin.libvirtd.
+# For more details, please see /etc/apparmor.d/local/README.
diff --git a/examples/apparmor/usr.lib.libvirt.virt-aa-helper b/examples/apparmor/usr.lib.libvirt.virt-aa-helper
index bceaaff..4df86b0 100644
--- a/examples/apparmor/usr.lib.libvirt.virt-aa-helper
+++ b/examples/apparmor/usr.lib.libvirt.virt-aa-helper
@@ -1,8 +1,9 @@
-# Last Modified: Mon Apr 5 15:10:27 2010
+# Last Modified: Thu, 18 Sep 2014 14:05:36 +0200
#include <tunables/global>
/usr/lib/libvirt/virt-aa-helper {
#include <abstractions/base>
+ #include <abstractions/user-tmp>
# needed for searching directories
capability dac_override,
@@ -19,6 +20,12 @@
# for hostdev
/sys/devices/ r,
/sys/devices/** r,
+ /sys/bus/usb/devices/ r,
+ /sys/bus/usb/devices/** r,
+ deny /dev/sd* r,
+ deny /dev/dm-* r,
+ deny /dev/mapper/ r,
+ deny /dev/mapper/* r,
/usr/lib/libvirt/virt-aa-helper mr,
/sbin/apparmor_parser Ux,
@@ -26,8 +33,11 @@
/etc/apparmor.d/libvirt/* r,
/etc/apparmor.d/libvirt/libvirt-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]* rw,
- # for backingstore -- allow access to non-hidden files in @{HOME} as well
- # as storage pools
+ # For backingstore, virt-aa-helper needs to peek inside the disk image, so
+ # allow access to non-hidden files in @{HOME} as well as storage pools, and
+ # removable media and filesystems, and certain file extentions. A
+ # virt-aa-helper failure when checking a disk for backinsgstore is non-fatal
+ # (but obviously the backingstore won't be added).
audit deny @{HOME}/.* mrwkl,
audit deny @{HOME}/.*/ rw,
audit deny @{HOME}/.*/** mrwkl,
@@ -35,8 +45,17 @@
audit deny @{HOME}/bin/** mrwkl,
@{HOME}/ r,
@{HOME}/** r,
+ @{HOME}/.Private/** mrwlk,
+ @{HOMEDIRS}/.ecryptfs/*/.Private/** mrwlk,
+
/var/lib/libvirt/images/ r,
/var/lib/libvirt/images/** r,
+ /var/lib/nova/images/** r,
+ /var/lib/nova/instances/_base/** r,
+ /var/lib/nova/instances/snapshots/** r,
+ /var/lib/eucalyptus/instances/**/disk* r,
+ /var/lib/eucalyptus/instances/**/loader* r,
+ /var/lib/uvtool/libvirt/images/** r,
/{media,mnt,opt,srv}/** r,
/**.img r,
diff --git a/examples/apparmor/usr.sbin.libvirtd b/examples/apparmor/usr.sbin.libvirtd
index 3011eff..814b4d81 100644
--- a/examples/apparmor/usr.sbin.libvirtd
+++ b/examples/apparmor/usr.sbin.libvirtd
@@ -1,10 +1,12 @@
-# Last Modified: Mon Apr 5 15:03:58 2010
+# Last Modified: Tue, 23 Sep 2014 09:28:07 +0200
#include <tunables/global>
@{LIBVIRT}="libvirt"
/usr/sbin/libvirtd {
#include <abstractions/base>
#include <abstractions/dbus>
+ # Site-specific additions and overrides. See local/README for details.
+ #include <local/usr.sbin.libvirtd>
capability kill,
capability net_admin,
@@ -23,6 +25,7 @@
capability setpcap,
capability mknod,
capability fsetid,
+ capability ipc_lock,
capability audit_write,
# Needed for vfio
@@ -33,6 +36,12 @@
network inet6 stream,
network inet6 dgram,
network packet dgram,
+ network netlink,
+
+ dbus bus=system,
+ signal,
+ ptrace,
+ unix,
# Very lenient profile for libvirtd since we want to first focus on confining
# the guests. Guests will have a very restricted profile.
@@ -45,6 +54,12 @@
/usr/sbin/* PUx,
/lib/udev/scsi_id PUx,
/usr/lib/xen-common/bin/xen-toolstack PUx,
+ /usr/lib/xen-*/bin/pygrub PUx,
+ /usr/lib/xen-*/bin/libxl-save-helper PUx,
+
+ # Required by nwfilter_ebiptables_driver.c:ebiptablesWriteToTempFile() to
+ # write and run an ebtables script.
+ /var/lib/libvirt/virtd* ixr,
# force the use of virt-aa-helper
audit deny /sbin/apparmor_parser rwxl,
--
1.9.1
5
17