Devel
Threads by month
- ----- 2026 -----
- April
- 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
- 25 participants
- 40183 discussions
Kernel 4.13 introduced finer-grained ptrace checks
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/com…
When Apparmor is enabled and libvirtd is confined, attempting to start
a domain fails
virsh start test
error: Failed to start domain test
error: internal error: child reported: Kernel does not provide mount
namespace: Permission denied
The audit log contains
type=AVC msg=audit(1505466699.828:534): apparmor="DENIED"
operation="ptrace" profile="/usr/sbin/libvirtd" pid=6621
comm="libvirtd" requested_mask="trace" denied_mask="trace"
peer="/usr/sbin/libvirtd"
It was also noticed that simply connecting to libvirtd (e.g. virsh list)
resulted in the following entries in the audit log
type=AVC msg=audit(1505755799.975:65): apparmor="DENIED"
operation="ptrace" profile="/usr/sbin/libvirtd" pid=1418
comm="libvirtd" requested_mask="trace" denied_mask="trace"
peer="unconfined"
type=AVC msg=audit(1505755799.976:66): apparmor="DENIED"
operation="ptrace" profile="/usr/sbin/libvirtd" pid=1418
comm="libvirtd" requested_mask="trace" denied_mask="trace"
peer="unconfined"
Both Apparmor denials can be fixed by adding ptrace rules to the
libvirtd profile. The new rules only grant trace permission.
Resolves: https://bugzilla.suse.com/show_bug.cgi?id=1058847
Signed-off-by: Jim Fehlig <jfehlig(a)suse.com>
---
Even with debug enabled in libvirtd, I've had a hard time correlating a
libvirtd action that results in the denied ptrace check seen in the audit
log. I suspect it is related to accessing files in /proc as mentioned in
the apparmor wiki
http://wiki.apparmor.net/index.php/TechnicalDo_Proc_and_ptrace
cc'ing some of the usual apparmor suspects for any words of wisdom.
examples/apparmor/usr.sbin.libvirtd | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/examples/apparmor/usr.sbin.libvirtd b/examples/apparmor/usr.sbin.libvirtd
index acb59e071..ff84aa149 100644
--- a/examples/apparmor/usr.sbin.libvirtd
+++ b/examples/apparmor/usr.sbin.libvirtd
@@ -37,6 +37,10 @@
network packet dgram,
network packet raw,
+ # Support finer-grained ptrace checks, which were enabled in kernel 4.13
+ ptrace trace peer=/usr/sbin/libvirtd,
+ ptrace trace peer=unconfined,
+
# Very lenient profile for libvirtd since we want to first focus on confining
# the guests. Guests will have a very restricted profile.
/ r,
--
2.14.1
4
13
Kernel 4.13 introduced finer-grained ptrace checks
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/com…
With kernel 4.13 and apparmor 2.11, simply starting libvirtd
results in the following apparmor denial
type=AVC msg=audit(1506112085.645:954): apparmor="DENIED"
operation="ptrace" profile="/usr/sbin/libvirtd" pid=6984
comm="libvirtd" requested_mask="trace" denied_mask="trace"
peer="unconfined"
Attempting to start an unconfined domain results in
type=AVC msg=audit(1506112301.227:1112): apparmor="DENIED"
operation="ptrace" profile="/usr/sbin/libvirtd" pid=7498
comm="libvirtd" requested_mask="trace" denied_mask="trace"
peer="/usr/sbin/libvirtd"
And attempting to start a confined domain results in
type=AVC msg=audit(1506112631.408:1312): apparmor="DENIED"
operation="open" profile="virt-aa-helper" name="/etc/libnl/classid"
pid=8283 comm="virt-aa-helper" requested_mask="r" denied_mask="r"
fsuid=0 ouid=0
type=AVC msg=audit(1506112631.530:1319): apparmor="DENIED"
operation="open" profile="virt-aa-helper" name="/etc/libnl/classid"
pid=8289 comm="virt-aa-helper" requested_mask="r" denied_mask="r"
fsuid=0 ouid=0
type=AVC msg=audit(1506112632.186:1324): apparmor="DENIED"
operation="ptrace" profile="/usr/sbin/libvirtd" pid=8342
comm="libvirtd" requested_mask="trace" denied_mask="trace"
peer="libvirt-66154842-e926-4f92-92f0-1c1bf61dd1ff"
Add ptrace rules to allow the trace operations.
Resolves: https://bugzilla.suse.com/show_bug.cgi?id=1058847
Signed-off-by: Jim Fehlig <jfehlig(a)suse.com>
---
examples/apparmor/usr.sbin.libvirtd | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/examples/apparmor/usr.sbin.libvirtd b/examples/apparmor/usr.sbin.libvirtd
index acb59e071..6088db294 100644
--- a/examples/apparmor/usr.sbin.libvirtd
+++ b/examples/apparmor/usr.sbin.libvirtd
@@ -37,6 +37,10 @@
network packet dgram,
network packet raw,
+ ptrace (trace) peer=unconfined,
+ ptrace (trace) peer=/usr/sbin/libvirtd,
+ ptrace (tace) peer=(label=@{profile_name}),
+
# Very lenient profile for libvirtd since we want to first focus on confining
# the guests. Guests will have a very restricted profile.
/ r,
--
2.14.1
1
1
[libvirt] [PATCH libvirt-ci] libvirt-cim: Deal with autoconfiscate.sh rename
by Andrea Bolognani 22 Sep '17
by Andrea Bolognani 22 Sep '17
22 Sep '17
The new name is the more standard autogen.sh. Still not
enough to switch to autotools-*-job, but it's something.
Signed-off-by: Andrea Bolognani <abologna(a)redhat.com>
---
The relevant patch[1] has been ACKed[2] but not pushed yet,
because I figured it's better to have the CI setup updated
first.
[1] https://www.redhat.com/archives/libvir-list/2017-September/msg00813.html
[2] https://www.redhat.com/archives/libvir-list/2017-September/msg00819.html
projects/libvirt-cim.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/projects/libvirt-cim.yaml b/projects/libvirt-cim.yaml
index 82a8127..77c4b1d 100644
--- a/projects/libvirt-cim.yaml
+++ b/projects/libvirt-cim.yaml
@@ -13,7 +13,7 @@
- generic-build-job:
parent_jobs: 'libvirt-master-build'
command: |
- ./autoconfiscate.sh
+ ./autogen.sh
./configure --prefix=$VIRT_PREFIX
make -j{smp}
make -j{smp} install
--
2.13.5
2
1
In my previous commit of b1d87f9ad96f I've made a typo breaking
the FreeBSD build. s/ipAaddr/ipAddr/
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
Pushed under trivial & build breaker rules.
This time I've even tested it on my FreeBSD machine.
tools/nss/libvirt_nss.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/nss/libvirt_nss.c b/tools/nss/libvirt_nss.c
index da4bf79a4..49dc621ab 100644
--- a/tools/nss/libvirt_nss.c
+++ b/tools/nss/libvirt_nss.c
@@ -643,7 +643,7 @@ aiforaf(const char *name, int af, struct addrinfo *pai, struct addrinfo **aip)
hints.ai_family = af;
if (getaddrinfo(ipAddr, NULL, &hints, &res0)) {
- VIR_FREE(ipAaddr);
+ VIR_FREE(ipAddr);
addrList++;
continue;
}
@@ -655,7 +655,7 @@ aiforaf(const char *name, int af, struct addrinfo *pai, struct addrinfo **aip)
while ((*aip)->ai_next)
*aip = (*aip)->ai_next;
- VIR_FREE(ipAaddr);
+ VIR_FREE(ipAddr);
addrList++;
}
}
--
2.13.5
1
0
instead of only unloading it. This makes sure old profiles don't pile up
in /etc/apparmor.d/libvirt and we get updates to modified templates on
VM restart.
---
src/security/security_apparmor.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/security/security_apparmor.c b/src/security/security_apparmor.c
index 5afe0c5c85..1db94c632f 100644
--- a/src/security/security_apparmor.c
+++ b/src/security/security_apparmor.c
@@ -220,7 +220,7 @@ remove_profile(const char *profile)
{
int rc = -1;
const char * const argv[] = {
- VIRT_AA_HELPER, "-R", "-u", profile, NULL
+ VIRT_AA_HELPER, "-D", "-u", profile, NULL
};
if (virRun(argv, NULL) == 0)
--
2.14.1
2
2
[libvirt] [PATCH 0/2] qemu: don't update cpu unconditionally for migratable flag
by Nikolay Shirokovskiy 22 Sep '17
by Nikolay Shirokovskiy 22 Sep '17
22 Sep '17
First patch is just a refactoring.
Nikolay Shirokovskiy (2):
qemu: make explicit that formatting migratable imposes secure
qemu: don't update cpu unconditionally for migratable flag
src/qemu/qemu_domain.c | 27 ++++++++++++++-------------
src/qemu/qemu_domain.h | 4 ----
src/qemu/qemu_driver.c | 6 +-----
src/qemu/qemu_migration.c | 4 +---
src/qemu/qemu_migration_cookie.c | 1 -
5 files changed, 16 insertions(+), 26 deletions(-)
--
1.8.3.1
3
10
22 Sep '17
After commit 8708ca01c0d libvirtd consistently aborts with "stack
smashing detected" when nodedev driver is initialized.
This is caused by nlmsg_parse() being told that its array of nlattr*
has CTRL_CMD_MAX (10) entries, when in fact it is declared to have
CTRL_ATTR_MAX (8) entries. Since all the entries are initialized to
NULL, the result is that nlmsg_parse is overwriting 2*(sizof(nlattr*))
bytes outside the array.
Signed-off-by: Laine Stump <laine(a)laine.org>
---
V1 was posted by jdenemar. It fixed the problem, but it was changing
the wrong line of code:
https://www.redhat.com/archives/libvir-list/2017-September/msg00657.html
src/util/virnetdev.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c
index 41a659732..5060d051d 100644
--- a/src/util/virnetdev.c
+++ b/src/util/virnetdev.c
@@ -3183,7 +3183,7 @@ virNetDevGetFamilyId(const char *family_name)
if (virNetlinkCommand(nl_msg, &resp, &recvbuflen, 0, 0, NETLINK_GENERIC, 0) < 0)
goto cleanup;
- if (nlmsg_parse(resp, sizeof(struct nlmsghdr), tb, CTRL_CMD_MAX, NULL) < 0) {
+ if (nlmsg_parse(resp, sizeof(struct nlmsghdr), tb, CTRL_ATTR_MAX, NULL) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("malformed netlink response message"));
goto cleanup;
--
2.13.5
3
2
22 Sep '17
Jiri Denemark (2):
qemu: Fix error checking in qemuDomainDefFormatXMLInternal
qemu: Use qemuDomainDefFormatXML in qemuDomainDefCopy
src/qemu/qemu_domain.c | 16 +++-------------
1 file changed, 3 insertions(+), 13 deletions(-)
--
2.14.1
3
6
22 Sep '17
Adding s390x qemu caps test for qemu version 2.10.0.
Signed-off-by: Boris Fiuczynski <fiuczy(a)linux.vnet.ibm.com>
---
.../qemucapabilitiesdata/caps_2.10.0.s390x.replies | 16441 +++++++++++++++++++
tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml | 316 +
tests/qemucapabilitiestest.c | 1 +
3 files changed, 16758 insertions(+)
create mode 100644 tests/qemucapabilitiesdata/caps_2.10.0.s390x.replies
create mode 100644 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.s390x.replies b/tests/qemucapabilitiesdata/caps_2.10.0.s390x.replies
new file mode 100644
index 0000000..2958c3e
--- /dev/null
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.s390x.replies
@@ -0,0 +1,16441 @@
+{
+ "QMP": {
+ "version": {
+ "qemu": {
+ "micro": 0,
+ "minor": 10,
+ "major": 2
+ },
+ "package": ""
+ },
+ "capabilities": [
+ ]
+ }
+}
+
+{
+ "return": {
+ },
+ "id": "libvirt-1"
+}
+
+{
+ "return": {
+ "qemu": {
+ "micro": 0,
+ "minor": 10,
+ "major": 2
+ },
+ "package": ""
+ },
+ "id": "libvirt-2"
+}
+
+{
+ "return": {
+ "arch": "s390x"
+ },
+ "id": "libvirt-3"
+}
+
+{
+ "return": [
+ {
+ "name": "netdev_add"
+ },
+ {
+ "name": "device_add"
+ },
+ {
+ "name": "query-qmp-schema"
+ },
+ {
+ "name": "xen-set-replication"
+ },
+ {
+ "name": "xen-set-global-dirty-log"
+ },
+ {
+ "name": "xen-save-devices-state"
+ },
+ {
+ "name": "xen-load-devices-state"
+ },
+ {
+ "name": "xen-colo-do-checkpoint"
+ },
+ {
+ "name": "x-debug-block-dirty-bitmap-sha256"
+ },
+ {
+ "name": "x-colo-lost-heartbeat"
+ },
+ {
+ "name": "x-blockdev-remove-medium"
+ },
+ {
+ "name": "x-blockdev-insert-medium"
+ },
+ {
+ "name": "x-blockdev-change"
+ },
+ {
+ "name": "transaction"
+ },
+ {
+ "name": "trace-event-set-state"
+ },
+ {
+ "name": "trace-event-get-state"
+ },
+ {
+ "name": "system_wakeup"
+ },
+ {
+ "name": "system_reset"
+ },
+ {
+ "name": "system_powerdown"
+ },
+ {
+ "name": "stop"
+ },
+ {
+ "name": "set_password"
+ },
+ {
+ "name": "set_link"
+ },
+ {
+ "name": "send-key"
+ },
+ {
+ "name": "screendump"
+ },
+ {
+ "name": "ringbuf-write"
+ },
+ {
+ "name": "ringbuf-read"
+ },
+ {
+ "name": "remove-fd"
+ },
+ {
+ "name": "quit"
+ },
+ {
+ "name": "query-xen-replication-status"
+ },
+ {
+ "name": "query-vnc-servers"
+ },
+ {
+ "name": "query-vnc"
+ },
+ {
+ "name": "query-vm-generation-id"
+ },
+ {
+ "name": "query-version"
+ },
+ {
+ "name": "query-uuid"
+ },
+ {
+ "name": "query-tpm-types"
+ },
+ {
+ "name": "query-tpm-models"
+ },
+ {
+ "name": "query-tpm"
+ },
+ {
+ "name": "query-target"
+ },
+ {
+ "name": "query-status"
+ },
+ {
+ "name": "query-rx-filter"
+ },
+ {
+ "name": "query-rocker-ports"
+ },
+ {
+ "name": "query-rocker-of-dpa-groups"
+ },
+ {
+ "name": "query-rocker-of-dpa-flows"
+ },
+ {
+ "name": "query-rocker"
+ },
+ {
+ "name": "query-pci"
+ },
+ {
+ "name": "query-named-block-nodes"
+ },
+ {
+ "name": "query-name"
+ },
+ {
+ "name": "query-migrate-parameters"
+ },
+ {
+ "name": "query-migrate-capabilities"
+ },
+ {
+ "name": "query-migrate-cache-size"
+ },
+ {
+ "name": "query-migrate"
+ },
+ {
+ "name": "query-mice"
+ },
+ {
+ "name": "query-memory-devices"
+ },
+ {
+ "name": "query-memdev"
+ },
+ {
+ "name": "query-machines"
+ },
+ {
+ "name": "query-kvm"
+ },
+ {
+ "name": "query-iothreads"
+ },
+ {
+ "name": "query-hotpluggable-cpus"
+ },
+ {
+ "name": "query-fdsets"
+ },
+ {
+ "name": "query-events"
+ },
+ {
+ "name": "query-dump-guest-memory-capability"
+ },
+ {
+ "name": "query-dump"
+ },
+ {
+ "name": "query-cpus"
+ },
+ {
+ "name": "query-cpu-model-expansion"
+ },
+ {
+ "name": "query-cpu-model-comparison"
+ },
+ {
+ "name": "query-cpu-model-baseline"
+ },
+ {
+ "name": "query-cpu-definitions"
+ },
+ {
+ "name": "query-commands"
+ },
+ {
+ "name": "query-command-line-options"
+ },
+ {
+ "name": "query-chardev-backends"
+ },
+ {
+ "name": "query-chardev"
+ },
+ {
+ "name": "query-blockstats"
+ },
+ {
+ "name": "query-block-jobs"
+ },
+ {
+ "name": "query-block"
+ },
+ {
+ "name": "query-balloon"
+ },
+ {
+ "name": "query-acpi-ospm-status"
+ },
+ {
+ "name": "qom-set"
+ },
+ {
+ "name": "qom-list-types"
+ },
+ {
+ "name": "qom-list"
+ },
+ {
+ "name": "qom-get"
+ },
+ {
+ "name": "qmp_capabilities"
+ },
+ {
+ "name": "pmemsave"
+ },
+ {
+ "name": "object-del"
+ },
+ {
+ "name": "object-add"
+ },
+ {
+ "name": "netdev_del"
+ },
+ {
+ "name": "nbd-server-stop"
+ },
+ {
+ "name": "nbd-server-start"
+ },
+ {
+ "name": "nbd-server-add"
+ },
+ {
+ "name": "migrate_set_speed"
+ },
+ {
+ "name": "migrate_set_downtime"
+ },
+ {
+ "name": "migrate_cancel"
+ },
+ {
+ "name": "migrate-start-postcopy"
+ },
+ {
+ "name": "migrate-set-parameters"
+ },
+ {
+ "name": "migrate-set-capabilities"
+ },
+ {
+ "name": "migrate-set-cache-size"
+ },
+ {
+ "name": "migrate-incoming"
+ },
+ {
+ "name": "migrate"
+ },
+ {
+ "name": "memsave"
+ },
+ {
+ "name": "input-send-event"
+ },
+ {
+ "name": "inject-nmi"
+ },
+ {
+ "name": "human-monitor-command"
+ },
+ {
+ "name": "getfd"
+ },
+ {
+ "name": "expire_password"
+ },
+ {
+ "name": "eject"
+ },
+ {
+ "name": "dump-skeys"
+ },
+ {
+ "name": "dump-guest-memory"
+ },
+ {
+ "name": "drive-mirror"
+ },
+ {
+ "name": "drive-backup"
+ },
+ {
+ "name": "device_del"
+ },
+ {
+ "name": "device-list-properties"
+ },
+ {
+ "name": "cpu-add"
+ },
+ {
+ "name": "cpu"
+ },
+ {
+ "name": "cont"
+ },
+ {
+ "name": "closefd"
+ },
+ {
+ "name": "client_migrate_info"
+ },
+ {
+ "name": "chardev-send-break"
+ },
+ {
+ "name": "chardev-remove"
+ },
+ {
+ "name": "chardev-change"
+ },
+ {
+ "name": "chardev-add"
+ },
+ {
+ "name": "change-vnc-password"
+ },
+ {
+ "name": "change-backing-file"
+ },
+ {
+ "name": "change"
+ },
+ {
+ "name": "blockdev-snapshot-sync"
+ },
+ {
+ "name": "blockdev-snapshot-internal-sync"
+ },
+ {
+ "name": "blockdev-snapshot-delete-internal-sync"
+ },
+ {
+ "name": "blockdev-snapshot"
+ },
+ {
+ "name": "blockdev-open-tray"
+ },
+ {
+ "name": "blockdev-mirror"
+ },
+ {
+ "name": "blockdev-del"
+ },
+ {
+ "name": "blockdev-close-tray"
+ },
+ {
+ "name": "blockdev-change-medium"
+ },
+ {
+ "name": "blockdev-backup"
+ },
+ {
+ "name": "blockdev-add"
+ },
+ {
+ "name": "block_set_io_throttle"
+ },
+ {
+ "name": "block_resize"
+ },
+ {
+ "name": "block_passwd"
+ },
+ {
+ "name": "block-stream"
+ },
+ {
+ "name": "block-set-write-threshold"
+ },
+ {
+ "name": "block-job-set-speed"
+ },
+ {
+ "name": "block-job-resume"
+ },
+ {
+ "name": "block-job-pause"
+ },
+ {
+ "name": "block-job-complete"
+ },
+ {
+ "name": "block-job-cancel"
+ },
+ {
+ "name": "block-dirty-bitmap-remove"
+ },
+ {
+ "name": "block-dirty-bitmap-clear"
+ },
+ {
+ "name": "block-dirty-bitmap-add"
+ },
+ {
+ "name": "block-commit"
+ },
+ {
+ "name": "balloon"
+ },
+ {
+ "name": "add_client"
+ },
+ {
+ "name": "add-fd"
+ }
+ ],
+ "id": "libvirt-4"
+}
+
+{
+ "return": {
+ "fd": 15,
+ "fdset-id": 0
+ },
+ "id": "libvirt-5"
+}
+
+{
+ "id": "libvirt-6",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'bogus' not found"
+ }
+}
+
+{
+ "return": {
+ "enabled": true,
+ "present": true
+ },
+ "id": "libvirt-7"
+}
+
+{
+ "return": [
+ {
+ "name": "WATCHDOG"
+ },
+ {
+ "name": "WAKEUP"
+ },
+ {
+ "name": "VSERPORT_CHANGE"
+ },
+ {
+ "name": "VNC_INITIALIZED"
+ },
+ {
+ "name": "VNC_DISCONNECTED"
+ },
+ {
+ "name": "VNC_CONNECTED"
+ },
+ {
+ "name": "SUSPEND_DISK"
+ },
+ {
+ "name": "SUSPEND"
+ },
+ {
+ "name": "STOP"
+ },
+ {
+ "name": "SPICE_MIGRATE_COMPLETED"
+ },
+ {
+ "name": "SPICE_INITIALIZED"
+ },
+ {
+ "name": "SPICE_DISCONNECTED"
+ },
+ {
+ "name": "SPICE_CONNECTED"
+ },
+ {
+ "name": "SHUTDOWN"
+ },
+ {
+ "name": "RTC_CHANGE"
+ },
+ {
+ "name": "RESUME"
+ },
+ {
+ "name": "RESET"
+ },
+ {
+ "name": "QUORUM_REPORT_BAD"
+ },
+ {
+ "name": "QUORUM_FAILURE"
+ },
+ {
+ "name": "POWERDOWN"
+ },
+ {
+ "name": "NIC_RX_FILTER_CHANGED"
+ },
+ {
+ "name": "MIGRATION_PASS"
+ },
+ {
+ "name": "MIGRATION"
+ },
+ {
+ "name": "MEM_UNPLUG_ERROR"
+ },
+ {
+ "name": "GUEST_PANICKED"
+ },
+ {
+ "name": "DUMP_COMPLETED"
+ },
+ {
+ "name": "DEVICE_TRAY_MOVED"
+ },
+ {
+ "name": "DEVICE_DELETED"
+ },
+ {
+ "name": "BLOCK_WRITE_THRESHOLD"
+ },
+ {
+ "name": "BLOCK_JOB_READY"
+ },
+ {
+ "name": "BLOCK_JOB_ERROR"
+ },
+ {
+ "name": "BLOCK_JOB_COMPLETED"
+ },
+ {
+ "name": "BLOCK_JOB_CANCELLED"
+ },
+ {
+ "name": "BLOCK_IO_ERROR"
+ },
+ {
+ "name": "BLOCK_IMAGE_CORRUPTED"
+ },
+ {
+ "name": "BALLOON_CHANGE"
+ },
+ {
+ "name": "ACPI_DEVICE_OST"
+ }
+ ],
+ "id": "libvirt-8"
+}
+
+{
+ "return": [
+ {
+ "name": "vhost-vsock-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "z10EC-base-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "s390-pcihost",
+ "parent": "pci-host-bridge"
+ },
+ {
+ "name": "virtio-tablet-pci",
+ "parent": "virtio-input-hid-pci"
+ },
+ {
+ "name": "s390-storage_attributes-qemu",
+ "parent": "s390-storage_attributes"
+ },
+ {
+ "name": "z9EC-base-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "cryptodev-backend",
+ "parent": "object"
+ },
+ {
+ "name": "virtio-rng-ccw",
+ "parent": "virtio-ccw-device"
+ },
+ {
+ "name": "iothread",
+ "parent": "object"
+ },
+ {
+ "name": "z196.2-base-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "z900-base-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "virtio-gpu-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "z990-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "z900.2-base-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "host-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "z900.3-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "z114-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "vhost-scsi-ccw",
+ "parent": "virtio-ccw-device"
+ },
+ {
+ "name": "i2c-bus",
+ "parent": "bus"
+ },
+ {
+ "name": "s390-flic",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "vhost-vsock-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "z890-base-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "sclplmconsole",
+ "parent": "s390-sclp-event-type"
+ },
+ {
+ "name": "z13.2-base-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "zEC12.2-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "scsi-cd",
+ "parent": "scsi-disk-base"
+ },
+ {
+ "name": "z10BC-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "z900.2-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "z10BC.2-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "container",
+ "parent": "object"
+ },
+ {
+ "name": "chardev-null",
+ "parent": "chardev"
+ },
+ {
+ "name": "z196-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "s390-pcibus",
+ "parent": "bus"
+ },
+ {
+ "name": "scsi-generic",
+ "parent": "scsi-device"
+ },
+ {
+ "name": "z9EC-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "virtio-net-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "virtio-9p-ccw",
+ "parent": "virtio-ccw-device"
+ },
+ {
+ "name": "virtio-mouse-device",
+ "parent": "virtio-input-hid-device"
+ },
+ {
+ "name": "virtio-mouse-pci",
+ "parent": "virtio-input-hid-pci"
+ },
+ {
+ "name": "rng-egd",
+ "parent": "rng-backend"
+ },
+ {
+ "name": "z990-base-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "virtio-blk-ccw",
+ "parent": "virtio-ccw-device"
+ },
+ {
+ "name": "s390-ipl",
+ "parent": "device"
+ },
+ {
+ "name": "s390-sclp-events-bus",
+ "parent": "bus"
+ },
+ {
+ "name": "irq",
+ "parent": "object"
+ },
+ {
+ "name": "z10EC.3-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "s390-ccw-virtio-2.8-machine",
+ "parent": "s390-ccw-machine"
+ },
+ {
+ "name": "virtconsole",
+ "parent": "virtserialport"
+ },
+ {
+ "name": "filter-buffer",
+ "parent": "netfilter"
+ },
+ {
+ "name": "virtio-rng-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "PCIE",
+ "parent": "PCI"
+ },
+ {
+ "name": "chardev-pty",
+ "parent": "chardev"
+ },
+ {
+ "name": "z900-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "z9EC.3-base-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "chardev-memory",
+ "parent": "chardev-ringbuf"
+ },
+ {
+ "name": "z990.5-base-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "sclp-cpu-hotplug",
+ "parent": "s390-sclp-event-type"
+ },
+ {
+ "name": "s390-skeys-kvm",
+ "parent": "s390-skeys"
+ },
+ {
+ "name": "s390-ccw-virtio-2.9-machine",
+ "parent": "s390-ccw-machine"
+ },
+ {
+ "name": "x-terminal3270",
+ "parent": "emulated-ccw-3270"
+ },
+ {
+ "name": "chardev-serial",
+ "parent": "chardev-fd"
+ },
+ {
+ "name": "z10EC.2-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "usb-bus",
+ "parent": "bus"
+ },
+ {
+ "name": "vhost-scsi-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "z9BC.2-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "filter-rewriter",
+ "parent": "netfilter"
+ },
+ {
+ "name": "z10EC-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "z990.3-base-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "sclp",
+ "parent": "device"
+ },
+ {
+ "name": "virtio-crypto-ccw",
+ "parent": "virtio-ccw-device"
+ },
+ {
+ "name": "z14-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "or-irq",
+ "parent": "device"
+ },
+ {
+ "name": "z13s-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "virtual-css-bus",
+ "parent": "bus"
+ },
+ {
+ "name": "filter-redirector",
+ "parent": "netfilter"
+ },
+ {
+ "name": "virtio-tablet-device",
+ "parent": "virtio-input-hid-device"
+ },
+ {
+ "name": "z10EC.3-base-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "zEC12.2-base-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "z890.3-base-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "unimplemented-device",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "sclpquiesce",
+ "parent": "s390-sclp-event-type"
+ },
+ {
+ "name": "chardev-pipe",
+ "parent": "chardev-fd"
+ },
+ {
+ "name": "scsi-disk",
+ "parent": "scsi-disk-base"
+ },
+ {
+ "name": "z9EC.3-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "virtio-9p-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "vfio-pci-igd-lpc-bridge",
+ "parent": "pci-device"
+ },
+ {
+ "name": "z990.5-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "z13-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "chardev-ringbuf",
+ "parent": "chardev"
+ },
+ {
+ "name": "s390-pci-iommu",
+ "parent": "object"
+ },
+ {
+ "name": "virtio-scsi-device",
+ "parent": "virtio-scsi-common"
+ },
+ {
+ "name": "z13s-base-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "virtio-blk-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "virtio-9p-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "filter-dump",
+ "parent": "netfilter"
+ },
+ {
+ "name": "z14-base-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "qio-channel-buffer",
+ "parent": "qio-channel"
+ },
+ {
+ "name": "s390-ccw-virtio-2.4-machine",
+ "parent": "s390-ccw-machine"
+ },
+ {
+ "name": "z9EC.2-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "vhost-user-scsi",
+ "parent": "vhost-scsi-common"
+ },
+ {
+ "name": "virtio-mmio",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "z990.4-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "System",
+ "parent": "bus"
+ },
+ {
+ "name": "filter-mirror",
+ "parent": "netfilter"
+ },
+ {
+ "name": "qemu-console",
+ "parent": "object"
+ },
+ {
+ "name": "virtio-net-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "colo-compare",
+ "parent": "object"
+ },
+ {
+ "name": "zEC12-base-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "z9EC.2-base-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "sclp-memory-hotplug-dev",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "s390-ccw-virtio-2.5-machine",
+ "parent": "s390-ccw-machine"
+ },
+ {
+ "name": "chardev-testdev",
+ "parent": "chardev"
+ },
+ {
+ "name": "chardev-hci",
+ "parent": "chardev"
+ },
+ {
+ "name": "virtio-keyboard-pci",
+ "parent": "virtio-input-hid-pci"
+ },
+ {
+ "name": "zBC12-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "input-linux",
+ "parent": "object"
+ },
+ {
+ "name": "z196.2-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "virtual-css-bridge",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "chardev-stdio",
+ "parent": "chardev-fd"
+ },
+ {
+ "name": "qio-dns-resolver",
+ "parent": "object"
+ },
+ {
+ "name": "tls-creds-anon",
+ "parent": "tls-creds"
+ },
+ {
+ "name": "z990.3-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "diag288",
+ "parent": "device"
+ },
+ {
+ "name": "memory-backend-file",
+ "parent": "memory-backend"
+ },
+ {
+ "name": "z990.2-base-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "virtio-keyboard-device",
+ "parent": "virtio-input-hid-device"
+ },
+ {
+ "name": "virtio-crypto-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "qemu:memory-region",
+ "parent": "object"
+ },
+ {
+ "name": "z900.3-base-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "rng-random",
+ "parent": "rng-backend"
+ },
+ {
+ "name": "z890.3-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "chardev-mux",
+ "parent": "chardev"
+ },
+ {
+ "name": "z10EC.2-base-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "z990.2-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "chardev-gdb",
+ "parent": "chardev"
+ },
+ {
+ "name": "virtio-ccw-bus",
+ "parent": "virtio-bus"
+ },
+ {
+ "name": "vhost-user-scsi-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "chardev-udp",
+ "parent": "chardev"
+ },
+ {
+ "name": "virtio-balloon-ccw",
+ "parent": "virtio-ccw-device"
+ },
+ {
+ "name": "virtio-scsi-ccw",
+ "parent": "virtio-ccw-device"
+ },
+ {
+ "name": "z890.2-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "fw_cfg_io",
+ "parent": "fw_cfg"
+ },
+ {
+ "name": "virtio-crypto-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "s390-ccw-virtio-2.10-machine",
+ "parent": "s390-ccw-machine"
+ },
+ {
+ "name": "chardev-wctablet",
+ "parent": "chardev"
+ },
+ {
+ "name": "zBC12-base-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "z800-base-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "chardev-file",
+ "parent": "chardev-fd"
+ },
+ {
+ "name": "zEC12-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "pci-bridge-seat",
+ "parent": "pci-bridge"
+ },
+ {
+ "name": "z9BC.2-base-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "vhost-scsi",
+ "parent": "vhost-scsi-common"
+ },
+ {
+ "name": "tcg-accel",
+ "parent": "accel"
+ },
+ {
+ "name": "virtio-mmio-bus",
+ "parent": "virtio-bus"
+ },
+ {
+ "name": "mmio_interface",
+ "parent": "device"
+ },
+ {
+ "name": "qio-channel-command",
+ "parent": "qio-channel"
+ },
+ {
+ "name": "accel",
+ "parent": "object"
+ },
+ {
+ "name": "z9BC-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "loader",
+ "parent": "device"
+ },
+ {
+ "name": "virtio-serial-bus",
+ "parent": "bus"
+ },
+ {
+ "name": "s390-storage_attributes-kvm",
+ "parent": "s390-storage_attributes"
+ },
+ {
+ "name": "virtio-balloon-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "chardev-vc",
+ "parent": "chardev"
+ },
+ {
+ "name": "virtio-serial-ccw",
+ "parent": "virtio-ccw-device"
+ },
+ {
+ "name": "chardev-socket",
+ "parent": "chardev"
+ },
+ {
+ "name": "virtio-serial-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "s390-flic-kvm",
+ "parent": "s390-flic"
+ },
+ {
+ "name": "qio-channel-file",
+ "parent": "qio-channel"
+ },
+ {
+ "name": "virtio-input-host-device",
+ "parent": "virtio-input-device"
+ },
+ {
+ "name": "s390-sclp-event-facility",
+ "parent": "sys-bus-device"
+ },
+ {
+ "name": "vfio-ccw",
+ "parent": "s390-ccw"
+ },
+ {
+ "name": "z10BC.2-base-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "migration",
+ "parent": "device"
+ },
+ {
+ "name": "none-machine",
+ "parent": "machine"
+ },
+ {
+ "name": "pci-bridge",
+ "parent": "base-pci-bridge"
+ },
+ {
+ "name": "SCSI",
+ "parent": "bus"
+ },
+ {
+ "name": "vhost-vsock-ccw",
+ "parent": "virtio-ccw-device"
+ },
+ {
+ "name": "z990.4-base-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "tls-creds-x509",
+ "parent": "tls-creds"
+ },
+ {
+ "name": "qemu-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "kvm-accel",
+ "parent": "accel"
+ },
+ {
+ "name": "secret",
+ "parent": "object"
+ },
+ {
+ "name": "scsi-hd",
+ "parent": "scsi-disk-base"
+ },
+ {
+ "name": "qtest-accel",
+ "parent": "accel"
+ },
+ {
+ "name": "virtio-balloon-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "scsi-block",
+ "parent": "scsi-disk-base"
+ },
+ {
+ "name": "virtio-scsi-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "fw_cfg_mem",
+ "parent": "fw_cfg"
+ },
+ {
+ "name": "s390-ccw-virtio-2.6-machine",
+ "parent": "s390-ccw-machine"
+ },
+ {
+ "name": "PCI",
+ "parent": "bus"
+ },
+ {
+ "name": "sclpconsole",
+ "parent": "s390-sclp-event-type"
+ },
+ {
+ "name": "z10BC-base-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "qio-channel-websock",
+ "parent": "qio-channel"
+ },
+ {
+ "name": "s390-skeys-qemu",
+ "parent": "s390-skeys"
+ },
+ {
+ "name": "z9BC-base-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "z800-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "virtio-input-host-pci",
+ "parent": "virtio-input-pci"
+ },
+ {
+ "name": "cryptodev-backend-builtin",
+ "parent": "cryptodev-backend"
+ },
+ {
+ "name": "qemu,register",
+ "parent": "device"
+ },
+ {
+ "name": "zpci",
+ "parent": "device"
+ },
+ {
+ "name": "s390-ccw-virtio-2.7-machine",
+ "parent": "s390-ccw-machine"
+ },
+ {
+ "name": "virtio-pci-bus",
+ "parent": "virtio-bus"
+ },
+ {
+ "name": "s390-flic-qemu",
+ "parent": "s390-flic"
+ },
+ {
+ "name": "z890.2-base-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "z13.2-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "filter-replay",
+ "parent": "netfilter"
+ },
+ {
+ "name": "chardev-parallel",
+ "parent": "chardev"
+ },
+ {
+ "name": "qio-channel-tls",
+ "parent": "qio-channel"
+ },
+ {
+ "name": "chardev-msmouse",
+ "parent": "chardev"
+ },
+ {
+ "name": "z114-base-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "memory-backend-ram",
+ "parent": "memory-backend"
+ },
+ {
+ "name": "virtio-serial-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "virtserialport",
+ "parent": "virtio-serial-port"
+ },
+ {
+ "name": "smbus-eeprom",
+ "parent": "smbus-device"
+ },
+ {
+ "name": "z196-base-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "virtio-net-ccw",
+ "parent": "virtio-ccw-device"
+ },
+ {
+ "name": "z13-base-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "virtio-rng-device",
+ "parent": "virtio-device"
+ },
+ {
+ "name": "vfio-pci",
+ "parent": "pci-device"
+ },
+ {
+ "name": "virtio-gpu-pci",
+ "parent": "virtio-pci"
+ },
+ {
+ "name": "z890-s390-cpu",
+ "parent": "s390-cpu"
+ },
+ {
+ "name": "s390-iommu-memory-region",
+ "parent": "qemu:iommu-memory-region"
+ },
+ {
+ "name": "qio-channel-socket",
+ "parent": "qio-channel"
+ },
+ {
+ "name": "virtio-blk-device",
+ "parent": "virtio-device"
+ }
+ ],
+ "id": "libvirt-9"
+}
+
+{
+ "return": [
+ {
+ "name": "secs",
+ "type": "uint32"
+ },
+ {
+ "name": "request-merging",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "min_io_size",
+ "type": "uint16"
+ },
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "serial",
+ "type": "str"
+ },
+ {
+ "name": "heads",
+ "type": "uint32"
+ },
+ {
+ "name": "ioeventfd",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "scsi",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "cyls",
+ "type": "uint32"
+ },
+ {
+ "name": "x-disable-pcie",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "logical_block_size",
+ "description": "A power of two between 512 and 32768",
+ "type": "uint16"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iothread",
+ "type": "link<iothread>"
+ },
+ {
+ "name": "disable-modern",
+ "type": "bool"
+ },
+ {
+ "name": "drive",
+ "description": "Node name or ID of a block device to use as a backend",
+ "type": "str"
+ },
+ {
+ "name": "disable-legacy",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-lnkctl-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "werror",
+ "description": "Error handling policy, report/ignore/enospc/stop/auto",
+ "type": "BlockdevOnError"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "discard_granularity",
+ "type": "uint32"
+ },
+ {
+ "name": "rerror",
+ "description": "Error handling policy, report/ignore/enospc/stop/auto",
+ "type": "BlockdevOnError"
+ },
+ {
+ "name": "page-per-vq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-deverr-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-pm-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "share-rw",
+ "type": "bool"
+ },
+ {
+ "name": "physical_block_size",
+ "description": "A power of two between 512 and 32768",
+ "type": "uint16"
+ },
+ {
+ "name": "config-wce",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "class",
+ "type": "uint32"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "name": "migrate-extra",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "modern-pio-notify",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "vectors",
+ "type": "uint32"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-blk-device>"
+ },
+ {
+ "name": "x-ignore-backend-features",
+ "type": "bool"
+ },
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "write-cache",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "num-queues",
+ "type": "uint16"
+ },
+ {
+ "name": "opt_io_size",
+ "type": "uint32"
+ },
+ {
+ "name": "ats",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-pci-bus-master-bug-migration",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ }
+ ],
+ "id": "libvirt-10"
+}
+
+{
+ "return": [
+ {
+ "name": "ctrl_mac_addr",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "status",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-pm-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest_csum",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ctrl_rx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ctrl_vq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "disable-modern",
+ "type": "bool"
+ },
+ {
+ "name": "mrg_rxbuf",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "host_tso6",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-txtimer",
+ "type": "uint32"
+ },
+ {
+ "name": "host_tso4",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "ctrl_rx_extra",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "gso",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "page-per-vq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-disable-pcie",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-ignore-backend-features",
+ "type": "bool"
+ },
+ {
+ "name": "vlan",
+ "description": "Integer VLAN id to connect to",
+ "type": "int32"
+ },
+ {
+ "name": "x-txburst",
+ "type": "int32"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-lnkctl-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "host_mtu",
+ "type": "uint16"
+ },
+ {
+ "name": "ctrl_vlan",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-net-device>"
+ },
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "vectors",
+ "type": "uint32"
+ },
+ {
+ "name": "guest_announce",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "host_ecn",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "name": "ats",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "host_ufo",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest_tso4",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest_tso6",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ctrl_guest_offloads",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "csum",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "modern-pio-notify",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ioeventfd",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "mq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest_ecn",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest_ufo",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-pci-bus-master-bug-migration",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "mac",
+ "description": "Ethernet 6-byte MAC Address, example: 52:54:00:12:34:56",
+ "type": "str"
+ },
+ {
+ "name": "tx_queue_size",
+ "type": "uint16"
+ },
+ {
+ "name": "disable-legacy",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "tx",
+ "type": "str"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-mtu-bypass-backend",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-deverr-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "netdev",
+ "description": "ID of a netdev to use as a backend",
+ "type": "str"
+ },
+ {
+ "name": "migrate-extra",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "rx_queue_size",
+ "type": "uint16"
+ }
+ ],
+ "id": "libvirt-11"
+}
+
+{
+ "return": [
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ioeventfd",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "x-disable-pcie",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "cmd_per_lun",
+ "type": "uint32"
+ },
+ {
+ "name": "disable-modern",
+ "type": "bool"
+ },
+ {
+ "name": "num_queues",
+ "type": "uint32"
+ },
+ {
+ "name": "disable-legacy",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-lnkctl-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "hotplug",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "page-per-vq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-deverr-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-pm-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "max_sectors",
+ "type": "uint32"
+ },
+ {
+ "name": "param_change",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iothread",
+ "type": "link<iothread>"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "name": "migrate-extra",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "modern-pio-notify",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "vectors",
+ "type": "uint32"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-scsi-device>"
+ },
+ {
+ "name": "x-ignore-backend-features",
+ "type": "bool"
+ },
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ats",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-pci-bus-master-bug-migration",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ }
+ ],
+ "id": "libvirt-12"
+}
+
+{
+ "return": [
+ {
+ "name": "min_io_size",
+ "type": "uint16"
+ },
+ {
+ "name": "request-merging",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "secs",
+ "type": "uint32"
+ },
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "heads",
+ "type": "uint32"
+ },
+ {
+ "name": "serial",
+ "type": "str"
+ },
+ {
+ "name": "ioeventfd",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "devno",
+ "description": "Identifier of an I/O device in the channel subsystem, example: fe.1.23ab",
+ "type": "str"
+ },
+ {
+ "name": "cyls",
+ "type": "uint32"
+ },
+ {
+ "name": "logical_block_size",
+ "description": "A power of two between 512 and 32768",
+ "type": "uint16"
+ },
+ {
+ "name": "scsi",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "drive",
+ "description": "Node name or ID of a block device to use as a backend",
+ "type": "str"
+ },
+ {
+ "name": "max_revision",
+ "type": "uint32"
+ },
+ {
+ "name": "werror",
+ "description": "Error handling policy, report/ignore/enospc/stop/auto",
+ "type": "BlockdevOnError"
+ },
+ {
+ "name": "discard_granularity",
+ "type": "uint32"
+ },
+ {
+ "name": "rerror",
+ "description": "Error handling policy, report/ignore/enospc/stop/auto",
+ "type": "BlockdevOnError"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "share-rw",
+ "type": "bool"
+ },
+ {
+ "name": "iothread",
+ "type": "link<iothread>"
+ },
+ {
+ "name": "physical_block_size",
+ "description": "A power of two between 512 and 32768",
+ "type": "uint16"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-blk-device>"
+ },
+ {
+ "name": "config-wce",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "num-queues",
+ "type": "uint16"
+ },
+ {
+ "name": "write-cache",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "opt_io_size",
+ "type": "uint32"
+ }
+ ],
+ "id": "libvirt-13"
+}
+
+{
+ "return": [
+ {
+ "name": "x-txtimer",
+ "type": "uint32"
+ },
+ {
+ "name": "guest_ufo",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "mq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "host_ecn",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "status",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "tx_queue_size",
+ "type": "uint16"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ioeventfd",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "devno",
+ "description": "Identifier of an I/O device in the channel subsystem, example: fe.1.23ab",
+ "type": "str"
+ },
+ {
+ "name": "tx",
+ "type": "str"
+ },
+ {
+ "name": "ctrl_rx_extra",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest_ecn",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "mac",
+ "description": "Ethernet 6-byte MAC Address, example: 52:54:00:12:34:56",
+ "type": "str"
+ },
+ {
+ "name": "rx_queue_size",
+ "type": "uint16"
+ },
+ {
+ "name": "guest_tso6",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest_tso4",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest_csum",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "max_revision",
+ "type": "uint32"
+ },
+ {
+ "name": "guest_announce",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "gso",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ctrl_vq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ctrl_rx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-txburst",
+ "type": "int32"
+ },
+ {
+ "name": "ctrl_vlan",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "csum",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "mrg_rxbuf",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ctrl_guest_offloads",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-mtu-bypass-backend",
+ "type": "bool"
+ },
+ {
+ "name": "ctrl_mac_addr",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "host_tso6",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "vlan",
+ "description": "Integer VLAN id to connect to",
+ "type": "int32"
+ },
+ {
+ "name": "host_tso4",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "host_ufo",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-net-device>"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "netdev",
+ "description": "ID of a netdev to use as a backend",
+ "type": "str"
+ },
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "host_mtu",
+ "type": "uint16"
+ }
+ ],
+ "id": "libvirt-14"
+}
+
+{
+ "return": [
+ {
+ "name": "max_sectors",
+ "type": "uint32"
+ },
+ {
+ "name": "ioeventfd",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "cmd_per_lun",
+ "type": "uint32"
+ },
+ {
+ "name": "devno",
+ "description": "Identifier of an I/O device in the channel subsystem, example: fe.1.23ab",
+ "type": "str"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iothread",
+ "type": "link<iothread>"
+ },
+ {
+ "name": "hotplug",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-scsi-device>"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "num_queues",
+ "type": "uint32"
+ },
+ {
+ "name": "param_change",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "max_revision",
+ "type": "uint32"
+ }
+ ],
+ "id": "libvirt-15"
+}
+
+{
+ "id": "libvirt-16",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'virtio-blk-s390' not found"
+ }
+}
+
+{
+ "id": "libvirt-17",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'virtio-net-s390' not found"
+ }
+}
+
+{
+ "id": "libvirt-18",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'pci-assign' not found"
+ }
+}
+
+{
+ "id": "libvirt-19",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'kvm-pci-assign' not found"
+ }
+}
+
+{
+ "return": [
+ {
+ "name": "x-pci-sub-device-id",
+ "type": "uint32"
+ },
+ {
+ "name": "x-no-kvm-msi",
+ "type": "bool"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-igd-opregion",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-vga",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pci-vendor-id",
+ "type": "uint32"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "x-req",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-igd-gms",
+ "type": "uint32"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ },
+ {
+ "name": "x-no-kvm-intx",
+ "type": "bool"
+ },
+ {
+ "name": "x-pci-device-id",
+ "type": "uint32"
+ },
+ {
+ "name": "host",
+ "description": "Address (bus/device/function) of the host device, example: 04:10.0",
+ "type": "str"
+ },
+ {
+ "name": "x-no-kvm-msix",
+ "type": "bool"
+ },
+ {
+ "name": "x-intx-mmap-timeout-ms",
+ "type": "uint32"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "name": "x-pci-sub-vendor-id",
+ "type": "uint32"
+ },
+ {
+ "name": "sysfsdev",
+ "type": "str"
+ },
+ {
+ "name": "x-no-mmap",
+ "type": "bool"
+ }
+ ],
+ "id": "libvirt-20"
+}
+
+{
+ "return": [
+ {
+ "name": "serial",
+ "type": "str"
+ },
+ {
+ "name": "port_index",
+ "type": "uint16"
+ },
+ {
+ "name": "dpofua",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "logical_block_size",
+ "description": "A power of two between 512 and 32768",
+ "type": "uint16"
+ },
+ {
+ "name": "discard_granularity",
+ "type": "uint32"
+ },
+ {
+ "name": "lun",
+ "type": "uint32"
+ },
+ {
+ "name": "max_unmap_size",
+ "type": "uint64"
+ },
+ {
+ "name": "drive",
+ "description": "Node name or ID of a block device to use as a backend",
+ "type": "str"
+ },
+ {
+ "name": "port_wwn",
+ "type": "uint64"
+ },
+ {
+ "name": "write-cache",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "share-rw",
+ "type": "bool"
+ },
+ {
+ "name": "opt_io_size",
+ "type": "uint32"
+ },
+ {
+ "name": "min_io_size",
+ "type": "uint16"
+ },
+ {
+ "name": "product",
+ "type": "str"
+ },
+ {
+ "name": "scsi-id",
+ "type": "uint32"
+ },
+ {
+ "name": "channel",
+ "type": "uint32"
+ },
+ {
+ "name": "vendor",
+ "type": "str"
+ },
+ {
+ "name": "wwn",
+ "type": "uint64"
+ },
+ {
+ "name": "werror",
+ "description": "Error handling policy, report/ignore/enospc/stop/auto",
+ "type": "BlockdevOnError"
+ },
+ {
+ "name": "removable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "rerror",
+ "description": "Error handling policy, report/ignore/enospc/stop/auto",
+ "type": "BlockdevOnError"
+ },
+ {
+ "name": "ver",
+ "type": "str"
+ },
+ {
+ "name": "physical_block_size",
+ "description": "A power of two between 512 and 32768",
+ "type": "uint16"
+ },
+ {
+ "name": "max_io_size",
+ "type": "uint64"
+ }
+ ],
+ "id": "libvirt-21"
+}
+
+{
+ "id": "libvirt-22",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'ide-drive' not found"
+ }
+}
+
+{
+ "id": "libvirt-23",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'PIIX4_PM' not found"
+ }
+}
+
+{
+ "id": "libvirt-24",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'usb-redir' not found"
+ }
+}
+
+{
+ "id": "libvirt-25",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'usb-host' not found"
+ }
+}
+
+{
+ "return": [
+ {
+ "name": "bootindex",
+ "type": "int32"
+ },
+ {
+ "name": "drive",
+ "description": "Node name or ID of a block device to use as a backend",
+ "type": "str"
+ },
+ {
+ "name": "lun",
+ "type": "uint32"
+ },
+ {
+ "name": "channel",
+ "type": "uint32"
+ },
+ {
+ "name": "scsi-id",
+ "type": "uint32"
+ }
+ ],
+ "id": "libvirt-26"
+}
+
+{
+ "id": "libvirt-27",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'i440FX-pcihost' not found"
+ }
+}
+
+{
+ "id": "libvirt-28",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'q35-pcihost' not found"
+ }
+}
+
+{
+ "id": "libvirt-29",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'usb-storage' not found"
+ }
+}
+
+{
+ "id": "libvirt-30",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'kvm-pit' not found"
+ }
+}
+
+{
+ "id": "libvirt-31",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'VGA' not found"
+ }
+}
+
+{
+ "id": "libvirt-32",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'vmware-svga' not found"
+ }
+}
+
+{
+ "id": "libvirt-33",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'qxl' not found"
+ }
+}
+
+{
+ "return": [
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "yres",
+ "type": "uint32"
+ },
+ {
+ "name": "ioeventfd",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "xres",
+ "type": "uint32"
+ },
+ {
+ "name": "x-disable-pcie",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "disable-modern",
+ "type": "bool"
+ },
+ {
+ "name": "disable-legacy",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-lnkctl-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "page-per-vq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-deverr-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-pm-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "max_outputs",
+ "type": "uint32"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "name": "migrate-extra",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "modern-pio-notify",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "vectors",
+ "type": "uint32"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-gpu-device>"
+ },
+ {
+ "name": "max_hostmem",
+ "type": "size"
+ },
+ {
+ "name": "x-ignore-backend-features",
+ "type": "bool"
+ },
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ats",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-pci-bus-master-bug-migration",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ }
+ ],
+ "id": "libvirt-34"
+}
+
+{
+ "return": [
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "yres",
+ "type": "uint32"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "max_outputs",
+ "type": "uint32"
+ },
+ {
+ "name": "xres",
+ "type": "uint32"
+ },
+ {
+ "name": "max_hostmem",
+ "type": "size"
+ }
+ ],
+ "id": "libvirt-35"
+}
+
+{
+ "id": "libvirt-36",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'ICH9-LPC' not found"
+ }
+}
+
+{
+ "return": [
+ {
+ "name": "guest-stats-polling-interval",
+ "type": "int"
+ },
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "rombar",
+ "type": "uint32"
+ },
+ {
+ "name": "multifunction",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-disable-pcie",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "disable-modern",
+ "type": "bool"
+ },
+ {
+ "name": "disable-legacy",
+ "description": "on/off/auto",
+ "type": "OnOffAuto"
+ },
+ {
+ "name": "command_serr_enable",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-lnkctl-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest-stats",
+ "type": "guest statistics"
+ },
+ {
+ "name": "deflate-on-oom",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "page-per-vq",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-deverr-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-pm-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-lnksta-dllla",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "class",
+ "type": "uint32"
+ },
+ {
+ "name": "addr",
+ "description": "Slot and optional function number, example: 06.0 or 06",
+ "type": "int32"
+ },
+ {
+ "name": "migrate-extra",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "modern-pio-notify",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "x-pcie-extcap-init",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-balloon-device>"
+ },
+ {
+ "name": "x-ignore-backend-features",
+ "type": "bool"
+ },
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ats",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-pci-bus-master-bug-migration",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "romfile",
+ "type": "str"
+ }
+ ],
+ "id": "libvirt-37"
+}
+
+{
+ "return": [
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "ioeventfd",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "devno",
+ "description": "Identifier of an I/O device in the channel subsystem, example: fe.1.23ab",
+ "type": "str"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest-stats",
+ "type": "guest statistics"
+ },
+ {
+ "name": "guest-stats-polling-interval",
+ "type": "int"
+ },
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "virtio-backend",
+ "type": "child<virtio-balloon-device>"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "deflate-on-oom",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "max_revision",
+ "type": "uint32"
+ }
+ ],
+ "id": "libvirt-38"
+}
+
+{
+ "return": [
+ {
+ "name": "notify_on_empty",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "any_layout",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "indirect_desc",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "guest-stats",
+ "type": "guest statistics"
+ },
+ {
+ "name": "guest-stats-polling-interval",
+ "type": "int"
+ },
+ {
+ "name": "event_idx",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "iommu_platform",
+ "description": "on/off",
+ "type": "bool"
+ },
+ {
+ "name": "deflate-on-oom",
+ "description": "on/off",
+ "type": "bool"
+ }
+ ],
+ "id": "libvirt-39"
+}
+
+{
+ "id": "libvirt-40",
+ "error": {
+ "class": "DeviceNotFound",
+ "desc": "Device 'nec-usb-xhci' not found"
+ }
+}
+
+{
+ "return": [
+ {
+ "hotpluggable-cpus": false,
+ "name": "s390-ccw-virtio-2.7",
+ "cpu-max": 248
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "s390-ccw-virtio-2.6",
+ "cpu-max": 248
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "none",
+ "cpu-max": 1
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "s390-ccw-virtio-2.10",
+ "is-default": true,
+ "cpu-max": 248,
+ "alias": "s390-ccw-virtio"
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "s390-ccw-virtio-2.5",
+ "cpu-max": 248
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "s390-ccw-virtio-2.4",
+ "cpu-max": 248
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "s390-ccw-virtio-2.9",
+ "cpu-max": 248
+ },
+ {
+ "hotpluggable-cpus": false,
+ "name": "s390-ccw-virtio-2.8",
+ "cpu-max": 248
+ }
+ ],
+ "id": "libvirt-41"
+}
+
+{
+ "return": [
+ {
+ "name": "z10EC-base",
+ "typename": "z10EC-base-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z9EC-base",
+ "typename": "z9EC-base-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z196.2-base",
+ "typename": "z196.2-base-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z900-base",
+ "typename": "z900-base-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z990",
+ "typename": "z990-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z900.2-base",
+ "typename": "z900.2-base-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "host",
+ "typename": "host-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": false
+ },
+ {
+ "name": "z900.3",
+ "typename": "z900.3-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z114",
+ "typename": "z114-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z890-base",
+ "typename": "z890-base-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z13.2-base",
+ "typename": "z13.2-base-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "zEC12.2",
+ "typename": "zEC12.2-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z10BC",
+ "typename": "z10BC-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z900.2",
+ "typename": "z900.2-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z10BC.2",
+ "typename": "z10BC.2-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z196",
+ "typename": "z196-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z9EC",
+ "typename": "z9EC-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z990-base",
+ "typename": "z990-base-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z10EC.3",
+ "typename": "z10EC.3-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z900",
+ "typename": "z900-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z9EC.3-base",
+ "typename": "z9EC.3-base-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.5-base",
+ "typename": "z990.5-base-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z10EC.2",
+ "typename": "z10EC.2-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z9BC.2",
+ "typename": "z9BC.2-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z10EC",
+ "typename": "z10EC-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.3-base",
+ "typename": "z990.3-base-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z14",
+ "typename": "z14-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z13s",
+ "typename": "z13s-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z10EC.3-base",
+ "typename": "z10EC.3-base-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "zEC12.2-base",
+ "typename": "zEC12.2-base-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z890.3-base",
+ "typename": "z890.3-base-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z9EC.3",
+ "typename": "z9EC.3-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.5",
+ "typename": "z990.5-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z13",
+ "typename": "z13-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z13s-base",
+ "typename": "z13s-base-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z14-base",
+ "typename": "z14-base-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z9EC.2",
+ "typename": "z9EC.2-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.4",
+ "typename": "z990.4-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "zEC12-base",
+ "typename": "zEC12-base-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z9EC.2-base",
+ "typename": "z9EC.2-base-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "zBC12",
+ "typename": "zBC12-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z196.2",
+ "typename": "z196.2-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.3",
+ "typename": "z990.3-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.2-base",
+ "typename": "z990.2-base-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z900.3-base",
+ "typename": "z900.3-base-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z890.3",
+ "typename": "z890.3-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z10EC.2-base",
+ "typename": "z10EC.2-base-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.2",
+ "typename": "z990.2-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z890.2",
+ "typename": "z890.2-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "zBC12-base",
+ "typename": "zBC12-base-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z800-base",
+ "typename": "z800-base-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "zEC12",
+ "typename": "zEC12-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z9BC.2-base",
+ "typename": "z9BC.2-base-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z9BC",
+ "typename": "z9BC-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z10BC.2-base",
+ "typename": "z10BC.2-base-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.4-base",
+ "typename": "z990.4-base-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "qemu",
+ "typename": "qemu-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z10BC-base",
+ "typename": "z10BC-base-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z9BC-base",
+ "typename": "z9BC-base-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z800",
+ "typename": "z800-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z890.2-base",
+ "typename": "z890.2-base-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z13.2",
+ "typename": "z13.2-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z114-base",
+ "typename": "z114-base-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z196-base",
+ "typename": "z196-base-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z13-base",
+ "typename": "z13-base-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z890",
+ "typename": "z890-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ }
+ ],
+ "id": "libvirt-42"
+}
+
+{
+ "return": [
+ ],
+ "id": "libvirt-43"
+}
+
+{
+ "return": [
+ ],
+ "id": "libvirt-44"
+}
+
+{
+ "return": [
+ {
+ "parameters": [
+ {
+ "name": "non-adaptive",
+ "type": "boolean"
+ },
+ {
+ "name": "lossy",
+ "type": "boolean"
+ },
+ {
+ "name": "acl",
+ "type": "boolean"
+ },
+ {
+ "name": "x509verify",
+ "type": "string"
+ },
+ {
+ "name": "tls",
+ "type": "boolean"
+ },
+ {
+ "name": "sasl",
+ "type": "boolean"
+ },
+ {
+ "name": "key-delay-ms",
+ "type": "number"
+ },
+ {
+ "name": "lock-key-sync",
+ "type": "boolean"
+ },
+ {
+ "name": "reverse",
+ "type": "boolean"
+ },
+ {
+ "name": "password",
+ "type": "boolean"
+ },
+ {
+ "name": "ipv6",
+ "type": "boolean"
+ },
+ {
+ "name": "ipv4",
+ "type": "boolean"
+ },
+ {
+ "name": "to",
+ "type": "number"
+ },
+ {
+ "name": "connections",
+ "type": "number"
+ },
+ {
+ "name": "head",
+ "type": "number"
+ },
+ {
+ "name": "display",
+ "type": "string"
+ },
+ {
+ "name": "share",
+ "type": "string"
+ },
+ {
+ "name": "x509",
+ "type": "string"
+ },
+ {
+ "name": "tls-creds",
+ "type": "string"
+ },
+ {
+ "name": "websocket",
+ "type": "string"
+ },
+ {
+ "name": "vnc",
+ "type": "string"
+ }
+ ],
+ "option": "vnc"
+ },
+ {
+ "parameters": [
+ {
+ "name": "dmode",
+ "type": "number"
+ },
+ {
+ "name": "fmode",
+ "type": "number"
+ },
+ {
+ "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": "throttling.iops-size",
+ "help": "when limiting by iops max size of an I/O in bytes",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-write-max-length",
+ "help": "length of the bps-write-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-read-max-length",
+ "help": "length of the bps-read-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-total-max-length",
+ "help": "length of the bps-total-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-write-max-length",
+ "help": "length of the iops-write-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-read-max-length",
+ "help": "length of the iops-read-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-total-max-length",
+ "help": "length of the iops-total-max burst period, in seconds",
+ "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": "dmode",
+ "type": "number"
+ },
+ {
+ "name": "fmode",
+ "type": "number"
+ },
+ {
+ "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": "string",
+ "help": "Sets content of the blob to be inserted from a string",
+ "type": "string"
+ },
+ {
+ "name": "file",
+ "help": "Sets the name of the file from which\nthe fw_cfg blob will be loaded",
+ "type": "string"
+ },
+ {
+ "name": "name",
+ "help": "Sets the fw_cfg name of the blob to be inserted",
+ "type": "string"
+ }
+ ],
+ "option": "fw_cfg"
+ },
+ {
+ "parameters": [
+ {
+ "name": "arg",
+ "type": "string"
+ },
+ {
+ "name": "target",
+ "type": "string"
+ },
+ {
+ "name": "enable",
+ "type": "boolean"
+ }
+ ],
+ "option": "semihosting-config"
+ },
+ {
+ "parameters": [
+ {
+ "name": "rrsnapshot",
+ "type": "string"
+ },
+ {
+ "name": "rrfile",
+ "type": "string"
+ },
+ {
+ "name": "rr",
+ "type": "string"
+ },
+ {
+ "name": "sleep",
+ "type": "boolean"
+ },
+ {
+ "name": "align",
+ "type": "boolean"
+ },
+ {
+ "name": "shift",
+ "type": "string"
+ }
+ ],
+ "option": "icount"
+ },
+ {
+ "parameters": [
+ ],
+ "option": "numa"
+ },
+ {
+ "parameters": [
+ {
+ "name": "debug-threads",
+ "help": "When enabled, name the individual threads; defaults off.\nNOTE: The thread names are for debugging and not a\nstable API.",
+ "type": "boolean"
+ },
+ {
+ "name": "process",
+ "help": "Sets the name of the QEMU process, as shown in top etc",
+ "type": "string"
+ },
+ {
+ "name": "guest",
+ "help": "Sets the name of the guest.\nThis name will be displayed in the SDL window caption.\nThe name will also be used for the VNC server",
+ "type": "string"
+ }
+ ],
+ "option": "name"
+ },
+ {
+ "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": "boolean"
+ },
+ {
+ "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": "maxmem",
+ "type": "size"
+ },
+ {
+ "name": "slots",
+ "type": "number"
+ },
+ {
+ "name": "size",
+ "type": "size"
+ }
+ ],
+ "option": "memory"
+ },
+ {
+ "parameters": [
+ {
+ "name": "thread",
+ "help": "Enable/disable multi-threaded TCG",
+ "type": "string"
+ },
+ {
+ "name": "accel",
+ "help": "Select the type of accelerator",
+ "type": "string"
+ }
+ ],
+ "option": "accel"
+ },
+ {
+ "parameters": [
+ {
+ "name": "loadparm",
+ "help": "Up to 8 chars in set of [A-Za-z0-9. ](lower case chars converted to upper case) to pass to machine loader, boot manager, and guest kernel",
+ "type": "string"
+ },
+ {
+ "name": "dea-key-wrap",
+ "help": "enable/disable DEA key wrapping using the CPACF wrapping key",
+ "type": "boolean"
+ },
+ {
+ "name": "aes-key-wrap",
+ "help": "enable/disable AES key wrapping using the CPACF wrapping key",
+ "type": "boolean"
+ },
+ {
+ "name": "suppress-vmdesc",
+ "help": "Set on to disable self-describing migration",
+ "type": "boolean"
+ },
+ {
+ "name": "iommu",
+ "help": "Set on/off to enable/disable Intel IOMMU (VT-d)",
+ "type": "boolean"
+ },
+ {
+ "name": "firmware",
+ "help": "firmware image",
+ "type": "string"
+ },
+ {
+ "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"
+ },
+ {
+ "name": "enable",
+ "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": "logappend",
+ "type": "boolean"
+ },
+ {
+ "name": "logfile",
+ "type": "string"
+ },
+ {
+ "name": "append",
+ "type": "boolean"
+ },
+ {
+ "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": "tls-creds",
+ "type": "string"
+ },
+ {
+ "name": "tn3270",
+ "type": "boolean"
+ },
+ {
+ "name": "telnet",
+ "type": "boolean"
+ },
+ {
+ "name": "reconnect",
+ "type": "number"
+ },
+ {
+ "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": "werror",
+ "help": "write error action",
+ "type": "string"
+ },
+ {
+ "name": "rerror",
+ "help": "read error action",
+ "type": "string"
+ },
+ {
+ "name": "read-only",
+ "help": "open drive file as read-only",
+ "type": "boolean"
+ },
+ {
+ "name": "file",
+ "help": "file name",
+ "type": "string"
+ },
+ {
+ "name": "serial",
+ "help": "disk serial number",
+ "type": "string"
+ },
+ {
+ "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": "stats-account-failed",
+ "help": "whether to account for failed I/O operations in the statistics",
+ "type": "boolean"
+ },
+ {
+ "name": "stats-account-invalid",
+ "help": "whether to account for invalid I/O operations in the statistics",
+ "type": "boolean"
+ },
+ {
+ "name": "detect-zeroes",
+ "help": "try to optimize zero writes (off, on, unmap)",
+ "type": "string"
+ },
+ {
+ "name": "throttling.group",
+ "help": "name of the block throttling group",
+ "type": "string"
+ },
+ {
+ "name": "throttling.iops-size",
+ "help": "when limiting by iops max size of an I/O in bytes",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-write-max-length",
+ "help": "length of the bps-write-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-read-max-length",
+ "help": "length of the bps-read-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.bps-total-max-length",
+ "help": "length of the bps-total-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-write-max-length",
+ "help": "length of the iops-write-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-read-max-length",
+ "help": "length of the iops-read-max burst period, in seconds",
+ "type": "number"
+ },
+ {
+ "name": "throttling.iops-total-max-length",
+ "help": "length of the iops-total-max burst period, in seconds",
+ "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": "format",
+ "help": "disk format (raw, qcow2, ...)",
+ "type": "string"
+ },
+ {
+ "name": "cache.writeback",
+ "help": "Enable writeback mode",
+ "type": "boolean"
+ },
+ {
+ "name": "aio",
+ "help": "host AIO implementation (threads, native)",
+ "type": "string"
+ },
+ {
+ "name": "snapshot",
+ "help": "enable/disable snapshot mode",
+ "type": "boolean"
+ },
+ {
+ "name": "force-share",
+ "help": "always accept other writers (default: off)",
+ "type": "boolean"
+ },
+ {
+ "name": "discard",
+ "help": "discard operation (ignore/off, unmap/on)",
+ "type": "string"
+ },
+ {
+ "name": "read-only",
+ "help": "Node is opened in read-only mode",
+ "type": "boolean"
+ },
+ {
+ "name": "cache.no-flush",
+ "help": "Ignore flush requests",
+ "type": "boolean"
+ },
+ {
+ "name": "cache.direct",
+ "help": "Bypass software writeback cache on the host",
+ "type": "boolean"
+ },
+ {
+ "name": "driver",
+ "help": "Block driver to use for the node",
+ "type": "string"
+ },
+ {
+ "name": "node-name",
+ "help": "Node name of the block device node",
+ "type": "string"
+ }
+ ],
+ "option": "drive"
+ }
+ ],
+ "id": "libvirt-45"
+}
+
+{
+ "return": [
+ {
+ "state": false,
+ "capability": "xbzrle"
+ },
+ {
+ "state": false,
+ "capability": "rdma-pin-all"
+ },
+ {
+ "state": false,
+ "capability": "auto-converge"
+ },
+ {
+ "state": false,
+ "capability": "zero-blocks"
+ },
+ {
+ "state": false,
+ "capability": "compress"
+ },
+ {
+ "state": false,
+ "capability": "events"
+ },
+ {
+ "state": false,
+ "capability": "postcopy-ram"
+ },
+ {
+ "state": false,
+ "capability": "x-colo"
+ },
+ {
+ "state": false,
+ "capability": "release-ram"
+ },
+ {
+ "state": false,
+ "capability": "block"
+ },
+ {
+ "state": false,
+ "capability": "return-path"
+ }
+ ],
+ "id": "libvirt-46"
+}
+
+{
+ "return": [
+ {
+ "name": "ACPI_DEVICE_OST",
+ "meta-type": "event",
+ "arg-type": "0"
+ },
+ {
+ "name": "BALLOON_CHANGE",
+ "meta-type": "event",
+ "arg-type": "1"
+ },
+ {
+ "name": "BLOCK_IMAGE_CORRUPTED",
+ "meta-type": "event",
+ "arg-type": "2"
+ },
+ {
+ "name": "BLOCK_IO_ERROR",
+ "meta-type": "event",
+ "arg-type": "3"
+ },
+ {
+ "name": "BLOCK_JOB_CANCELLED",
+ "meta-type": "event",
+ "arg-type": "4"
+ },
+ {
+ "name": "BLOCK_JOB_COMPLETED",
+ "meta-type": "event",
+ "arg-type": "5"
+ },
+ {
+ "name": "BLOCK_JOB_ERROR",
+ "meta-type": "event",
+ "arg-type": "6"
+ },
+ {
+ "name": "BLOCK_JOB_READY",
+ "meta-type": "event",
+ "arg-type": "7"
+ },
+ {
+ "name": "BLOCK_WRITE_THRESHOLD",
+ "meta-type": "event",
+ "arg-type": "8"
+ },
+ {
+ "name": "DEVICE_DELETED",
+ "meta-type": "event",
+ "arg-type": "9"
+ },
+ {
+ "name": "DEVICE_TRAY_MOVED",
+ "meta-type": "event",
+ "arg-type": "10"
+ },
+ {
+ "name": "DUMP_COMPLETED",
+ "meta-type": "event",
+ "arg-type": "11"
+ },
+ {
+ "name": "GUEST_PANICKED",
+ "meta-type": "event",
+ "arg-type": "12"
+ },
+ {
+ "name": "MEM_UNPLUG_ERROR",
+ "meta-type": "event",
+ "arg-type": "13"
+ },
+ {
+ "name": "MIGRATION",
+ "meta-type": "event",
+ "arg-type": "14"
+ },
+ {
+ "name": "MIGRATION_PASS",
+ "meta-type": "event",
+ "arg-type": "15"
+ },
+ {
+ "name": "NIC_RX_FILTER_CHANGED",
+ "meta-type": "event",
+ "arg-type": "16"
+ },
+ {
+ "name": "POWERDOWN",
+ "meta-type": "event",
+ "arg-type": "17"
+ },
+ {
+ "name": "QUORUM_FAILURE",
+ "meta-type": "event",
+ "arg-type": "18"
+ },
+ {
+ "name": "QUORUM_REPORT_BAD",
+ "meta-type": "event",
+ "arg-type": "19"
+ },
+ {
+ "name": "RESET",
+ "meta-type": "event",
+ "arg-type": "20"
+ },
+ {
+ "name": "RESUME",
+ "meta-type": "event",
+ "arg-type": "17"
+ },
+ {
+ "name": "RTC_CHANGE",
+ "meta-type": "event",
+ "arg-type": "21"
+ },
+ {
+ "name": "SHUTDOWN",
+ "meta-type": "event",
+ "arg-type": "22"
+ },
+ {
+ "name": "SPICE_CONNECTED",
+ "meta-type": "event",
+ "arg-type": "23"
+ },
+ {
+ "name": "SPICE_DISCONNECTED",
+ "meta-type": "event",
+ "arg-type": "24"
+ },
+ {
+ "name": "SPICE_INITIALIZED",
+ "meta-type": "event",
+ "arg-type": "25"
+ },
+ {
+ "name": "SPICE_MIGRATE_COMPLETED",
+ "meta-type": "event",
+ "arg-type": "17"
+ },
+ {
+ "name": "STOP",
+ "meta-type": "event",
+ "arg-type": "17"
+ },
+ {
+ "name": "SUSPEND",
+ "meta-type": "event",
+ "arg-type": "17"
+ },
+ {
+ "name": "SUSPEND_DISK",
+ "meta-type": "event",
+ "arg-type": "17"
+ },
+ {
+ "name": "VNC_CONNECTED",
+ "meta-type": "event",
+ "arg-type": "26"
+ },
+ {
+ "name": "VNC_DISCONNECTED",
+ "meta-type": "event",
+ "arg-type": "27"
+ },
+ {
+ "name": "VNC_INITIALIZED",
+ "meta-type": "event",
+ "arg-type": "28"
+ },
+ {
+ "name": "VSERPORT_CHANGE",
+ "meta-type": "event",
+ "arg-type": "29"
+ },
+ {
+ "name": "WAKEUP",
+ "meta-type": "event",
+ "arg-type": "17"
+ },
+ {
+ "name": "WATCHDOG",
+ "meta-type": "event",
+ "arg-type": "30"
+ },
+ {
+ "name": "add-fd",
+ "ret-type": "32",
+ "meta-type": "command",
+ "arg-type": "31"
+ },
+ {
+ "name": "add_client",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "33"
+ },
+ {
+ "name": "balloon",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "34"
+ },
+ {
+ "name": "block-commit",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "35"
+ },
+ {
+ "name": "block-dirty-bitmap-add",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "36"
+ },
+ {
+ "name": "block-dirty-bitmap-clear",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "37"
+ },
+ {
+ "name": "block-dirty-bitmap-remove",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "37"
+ },
+ {
+ "name": "block-job-cancel",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "38"
+ },
+ {
+ "name": "block-job-complete",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "39"
+ },
+ {
+ "name": "block-job-pause",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "40"
+ },
+ {
+ "name": "block-job-resume",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "41"
+ },
+ {
+ "name": "block-job-set-speed",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "42"
+ },
+ {
+ "name": "block-set-write-threshold",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "43"
+ },
+ {
+ "name": "block-stream",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "44"
+ },
+ {
+ "name": "block_passwd",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "45"
+ },
+ {
+ "name": "block_resize",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "46"
+ },
+ {
+ "name": "block_set_io_throttle",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "47"
+ },
+ {
+ "name": "blockdev-add",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "48"
+ },
+ {
+ "name": "blockdev-backup",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "49"
+ },
+ {
+ "name": "blockdev-change-medium",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "50"
+ },
+ {
+ "name": "blockdev-close-tray",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "51"
+ },
+ {
+ "name": "blockdev-del",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "52"
+ },
+ {
+ "name": "blockdev-mirror",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "53"
+ },
+ {
+ "name": "blockdev-open-tray",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "54"
+ },
+ {
+ "name": "blockdev-snapshot",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "55"
+ },
+ {
+ "name": "blockdev-snapshot-delete-internal-sync",
+ "ret-type": "57",
+ "meta-type": "command",
+ "arg-type": "56"
+ },
+ {
+ "name": "blockdev-snapshot-internal-sync",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "58"
+ },
+ {
+ "name": "blockdev-snapshot-sync",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "59"
+ },
+ {
+ "name": "change",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "60"
+ },
+ {
+ "name": "change-backing-file",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "61"
+ },
+ {
+ "name": "change-vnc-password",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "62"
+ },
+ {
+ "name": "chardev-add",
+ "ret-type": "64",
+ "meta-type": "command",
+ "arg-type": "63"
+ },
+ {
+ "name": "chardev-change",
+ "ret-type": "64",
+ "meta-type": "command",
+ "arg-type": "65"
+ },
+ {
+ "name": "chardev-remove",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "66"
+ },
+ {
+ "name": "chardev-send-break",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "67"
+ },
+ {
+ "name": "client_migrate_info",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "68"
+ },
+ {
+ "name": "closefd",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "69"
+ },
+ {
+ "name": "cont",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "cpu",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "70"
+ },
+ {
+ "name": "cpu-add",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "71"
+ },
+ {
+ "name": "device-list-properties",
+ "ret-type": "[73]",
+ "meta-type": "command",
+ "arg-type": "72"
+ },
+ {
+ "name": "device_add",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "74"
+ },
+ {
+ "name": "device_del",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "75"
+ },
+ {
+ "name": "drive-backup",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "76"
+ },
+ {
+ "name": "drive-mirror",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "77"
+ },
+ {
+ "name": "dump-guest-memory",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "78"
+ },
+ {
+ "name": "dump-skeys",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "79"
+ },
+ {
+ "name": "eject",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "80"
+ },
+ {
+ "name": "expire_password",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "81"
+ },
+ {
+ "name": "getfd",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "82"
+ },
+ {
+ "name": "human-monitor-command",
+ "ret-type": "str",
+ "meta-type": "command",
+ "arg-type": "83"
+ },
+ {
+ "name": "inject-nmi",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "input-send-event",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "84"
+ },
+ {
+ "name": "memsave",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "85"
+ },
+ {
+ "name": "migrate",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "86"
+ },
+ {
+ "name": "migrate-incoming",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "87"
+ },
+ {
+ "name": "migrate-set-cache-size",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "88"
+ },
+ {
+ "name": "migrate-set-capabilities",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "89"
+ },
+ {
+ "name": "migrate-set-parameters",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "90"
+ },
+ {
+ "name": "migrate-start-postcopy",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "migrate_cancel",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "migrate_set_downtime",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "91"
+ },
+ {
+ "name": "migrate_set_speed",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "92"
+ },
+ {
+ "name": "nbd-server-add",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "93"
+ },
+ {
+ "name": "nbd-server-start",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "94"
+ },
+ {
+ "name": "nbd-server-stop",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "netdev_add",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "95"
+ },
+ {
+ "name": "netdev_del",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "96"
+ },
+ {
+ "name": "object-add",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "97"
+ },
+ {
+ "name": "object-del",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "98"
+ },
+ {
+ "name": "pmemsave",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "99"
+ },
+ {
+ "name": "qmp_capabilities",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "qom-get",
+ "ret-type": "any",
+ "meta-type": "command",
+ "arg-type": "100"
+ },
+ {
+ "name": "qom-list",
+ "ret-type": "[102]",
+ "meta-type": "command",
+ "arg-type": "101"
+ },
+ {
+ "name": "qom-list-types",
+ "ret-type": "[104]",
+ "meta-type": "command",
+ "arg-type": "103"
+ },
+ {
+ "name": "qom-set",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "105"
+ },
+ {
+ "name": "query-acpi-ospm-status",
+ "ret-type": "[106]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-balloon",
+ "ret-type": "107",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-block",
+ "ret-type": "[108]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-block-jobs",
+ "ret-type": "[109]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-blockstats",
+ "ret-type": "[111]",
+ "meta-type": "command",
+ "arg-type": "110"
+ },
+ {
+ "name": "query-chardev",
+ "ret-type": "[112]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-chardev-backends",
+ "ret-type": "[113]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-command-line-options",
+ "ret-type": "[115]",
+ "meta-type": "command",
+ "arg-type": "114"
+ },
+ {
+ "name": "query-commands",
+ "ret-type": "[116]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-cpu-definitions",
+ "ret-type": "[117]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-cpu-model-baseline",
+ "ret-type": "119",
+ "meta-type": "command",
+ "arg-type": "118"
+ },
+ {
+ "name": "query-cpu-model-comparison",
+ "ret-type": "121",
+ "meta-type": "command",
+ "arg-type": "120"
+ },
+ {
+ "name": "query-cpu-model-expansion",
+ "ret-type": "123",
+ "meta-type": "command",
+ "arg-type": "122"
+ },
+ {
+ "name": "query-cpus",
+ "ret-type": "[124]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-dump",
+ "ret-type": "125",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-dump-guest-memory-capability",
+ "ret-type": "126",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-events",
+ "ret-type": "[127]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-fdsets",
+ "ret-type": "[128]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-gic-capabilities",
+ "ret-type": "[129]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-hotpluggable-cpus",
+ "ret-type": "[130]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-iothreads",
+ "ret-type": "[131]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-kvm",
+ "ret-type": "132",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-machines",
+ "ret-type": "[133]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-memdev",
+ "ret-type": "[134]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-memory-devices",
+ "ret-type": "[135]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-mice",
+ "ret-type": "[136]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-migrate",
+ "ret-type": "137",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-migrate-cache-size",
+ "ret-type": "int",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-migrate-capabilities",
+ "ret-type": "[138]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-migrate-parameters",
+ "ret-type": "139",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-name",
+ "ret-type": "140",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-named-block-nodes",
+ "ret-type": "[141]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-pci",
+ "ret-type": "[142]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-qmp-schema",
+ "ret-type": "[143]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-rocker",
+ "ret-type": "145",
+ "meta-type": "command",
+ "arg-type": "144"
+ },
+ {
+ "name": "query-rocker-of-dpa-flows",
+ "ret-type": "[147]",
+ "meta-type": "command",
+ "arg-type": "146"
+ },
+ {
+ "name": "query-rocker-of-dpa-groups",
+ "ret-type": "[149]",
+ "meta-type": "command",
+ "arg-type": "148"
+ },
+ {
+ "name": "query-rocker-ports",
+ "ret-type": "[151]",
+ "meta-type": "command",
+ "arg-type": "150"
+ },
+ {
+ "name": "query-rx-filter",
+ "ret-type": "[153]",
+ "meta-type": "command",
+ "arg-type": "152"
+ },
+ {
+ "name": "query-spice",
+ "ret-type": "154",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-status",
+ "ret-type": "155",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-target",
+ "ret-type": "156",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-tpm",
+ "ret-type": "[157]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-tpm-models",
+ "ret-type": "[158]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-tpm-types",
+ "ret-type": "[159]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-uuid",
+ "ret-type": "160",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-version",
+ "ret-type": "161",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-vm-generation-id",
+ "ret-type": "162",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-vnc",
+ "ret-type": "163",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-vnc-servers",
+ "ret-type": "[164]",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "query-xen-replication-status",
+ "ret-type": "165",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "quit",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "remove-fd",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "166"
+ },
+ {
+ "name": "ringbuf-read",
+ "ret-type": "str",
+ "meta-type": "command",
+ "arg-type": "167"
+ },
+ {
+ "name": "ringbuf-write",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "168"
+ },
+ {
+ "name": "rtc-reset-reinjection",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "screendump",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "169"
+ },
+ {
+ "name": "send-key",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "170"
+ },
+ {
+ "name": "set_link",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "171"
+ },
+ {
+ "name": "set_password",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "172"
+ },
+ {
+ "name": "stop",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "system_powerdown",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "system_reset",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "system_wakeup",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "trace-event-get-state",
+ "ret-type": "[174]",
+ "meta-type": "command",
+ "arg-type": "173"
+ },
+ {
+ "name": "trace-event-set-state",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "175"
+ },
+ {
+ "name": "transaction",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "176"
+ },
+ {
+ "name": "x-blockdev-change",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "177"
+ },
+ {
+ "name": "x-blockdev-insert-medium",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "178"
+ },
+ {
+ "name": "x-blockdev-remove-medium",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "179"
+ },
+ {
+ "name": "x-colo-lost-heartbeat",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "x-debug-block-dirty-bitmap-sha256",
+ "ret-type": "180",
+ "meta-type": "command",
+ "arg-type": "37"
+ },
+ {
+ "name": "xen-colo-do-checkpoint",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "17"
+ },
+ {
+ "name": "xen-load-devices-state",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "181"
+ },
+ {
+ "name": "xen-save-devices-state",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "182"
+ },
+ {
+ "name": "xen-set-global-dirty-log",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "183"
+ },
+ {
+ "name": "xen-set-replication",
+ "ret-type": "17",
+ "meta-type": "command",
+ "arg-type": "184"
+ },
+ {
+ "name": "0",
+ "members": [
+ {
+ "name": "info",
+ "type": "106"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "1",
+ "members": [
+ {
+ "name": "actual",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "2",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "msg",
+ "type": "str"
+ },
+ {
+ "name": "offset",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "fatal",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "3",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "type": "str"
+ },
+ {
+ "name": "operation",
+ "type": "185"
+ },
+ {
+ "name": "action",
+ "type": "186"
+ },
+ {
+ "name": "nospace",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "reason",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "4",
+ "members": [
+ {
+ "name": "type",
+ "type": "187"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "len",
+ "type": "int"
+ },
+ {
+ "name": "offset",
+ "type": "int"
+ },
+ {
+ "name": "speed",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "5",
+ "members": [
+ {
+ "name": "type",
+ "type": "187"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "len",
+ "type": "int"
+ },
+ {
+ "name": "offset",
+ "type": "int"
+ },
+ {
+ "name": "speed",
+ "type": "int"
+ },
+ {
+ "name": "error",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "6",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "operation",
+ "type": "185"
+ },
+ {
+ "name": "action",
+ "type": "186"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "7",
+ "members": [
+ {
+ "name": "type",
+ "type": "187"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "len",
+ "type": "int"
+ },
+ {
+ "name": "offset",
+ "type": "int"
+ },
+ {
+ "name": "speed",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "8",
+ "members": [
+ {
+ "name": "node-name",
+ "type": "str"
+ },
+ {
+ "name": "amount-exceeded",
+ "type": "int"
+ },
+ {
+ "name": "write-threshold",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "9",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "path",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "10",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "tray-open",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "11",
+ "members": [
+ {
+ "name": "result",
+ "type": "125"
+ },
+ {
+ "name": "error",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "12",
+ "members": [
+ {
+ "name": "action",
+ "type": "188"
+ },
+ {
+ "name": "info",
+ "default": null,
+ "type": "189"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "13",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "msg",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "14",
+ "members": [
+ {
+ "name": "status",
+ "type": "190"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "15",
+ "members": [
+ {
+ "name": "pass",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "16",
+ "members": [
+ {
+ "name": "name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "path",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "17",
+ "members": [
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "18",
+ "members": [
+ {
+ "name": "reference",
+ "type": "str"
+ },
+ {
+ "name": "sector-num",
+ "type": "int"
+ },
+ {
+ "name": "sectors-count",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "19",
+ "members": [
+ {
+ "name": "type",
+ "type": "191"
+ },
+ {
+ "name": "error",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "type": "str"
+ },
+ {
+ "name": "sector-num",
+ "type": "int"
+ },
+ {
+ "name": "sectors-count",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "20",
+ "members": [
+ {
+ "name": "guest",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "21",
+ "members": [
+ {
+ "name": "offset",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "22",
+ "members": [
+ {
+ "name": "guest",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "23",
+ "members": [
+ {
+ "name": "server",
+ "type": "192"
+ },
+ {
+ "name": "client",
+ "type": "192"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "24",
+ "members": [
+ {
+ "name": "server",
+ "type": "192"
+ },
+ {
+ "name": "client",
+ "type": "192"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "25",
+ "members": [
+ {
+ "name": "server",
+ "type": "193"
+ },
+ {
+ "name": "client",
+ "type": "194"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "26",
+ "members": [
+ {
+ "name": "server",
+ "type": "195"
+ },
+ {
+ "name": "client",
+ "type": "196"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "27",
+ "members": [
+ {
+ "name": "server",
+ "type": "195"
+ },
+ {
+ "name": "client",
+ "type": "197"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "28",
+ "members": [
+ {
+ "name": "server",
+ "type": "195"
+ },
+ {
+ "name": "client",
+ "type": "197"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "29",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "open",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "30",
+ "members": [
+ {
+ "name": "action",
+ "type": "198"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "31",
+ "members": [
+ {
+ "name": "fdset-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "opaque",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "32",
+ "members": [
+ {
+ "name": "fdset-id",
+ "type": "int"
+ },
+ {
+ "name": "fd",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "33",
+ "members": [
+ {
+ "name": "protocol",
+ "type": "str"
+ },
+ {
+ "name": "fdname",
+ "type": "str"
+ },
+ {
+ "name": "skipauth",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "tls",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "34",
+ "members": [
+ {
+ "name": "value",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "35",
+ "members": [
+ {
+ "name": "job-id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "base",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "top",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "backing-file",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "speed",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "filter-node-name",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "36",
+ "members": [
+ {
+ "name": "node",
+ "type": "str"
+ },
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "granularity",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "persistent",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "autoload",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "37",
+ "members": [
+ {
+ "name": "node",
+ "type": "str"
+ },
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "38",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "force",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "39",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "40",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "41",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "42",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "speed",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "43",
+ "members": [
+ {
+ "name": "node-name",
+ "type": "str"
+ },
+ {
+ "name": "write-threshold",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "44",
+ "members": [
+ {
+ "name": "job-id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "base",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "base-node",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "backing-file",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "speed",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "on-error",
+ "default": null,
+ "type": "199"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "45",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "password",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "46",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "47",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "bps",
+ "type": "int"
+ },
+ {
+ "name": "bps_rd",
+ "type": "int"
+ },
+ {
+ "name": "bps_wr",
+ "type": "int"
+ },
+ {
+ "name": "iops",
+ "type": "int"
+ },
+ {
+ "name": "iops_rd",
+ "type": "int"
+ },
+ {
+ "name": "iops_wr",
+ "type": "int"
+ },
+ {
+ "name": "bps_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_rd_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_wr_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_rd_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_wr_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_rd_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_wr_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_rd_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_wr_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "group",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "48",
+ "tag": "driver",
+ "variants": [
+ {
+ "case": "blkdebug",
+ "type": "204"
+ },
+ {
+ "case": "blkverify",
+ "type": "205"
+ },
+ {
+ "case": "bochs",
+ "type": "206"
+ },
+ {
+ "case": "cloop",
+ "type": "206"
+ },
+ {
+ "case": "dmg",
+ "type": "206"
+ },
+ {
+ "case": "file",
+ "type": "207"
+ },
+ {
+ "case": "ftp",
+ "type": "208"
+ },
+ {
+ "case": "ftps",
+ "type": "209"
+ },
+ {
+ "case": "gluster",
+ "type": "210"
+ },
+ {
+ "case": "host_cdrom",
+ "type": "207"
+ },
+ {
+ "case": "host_device",
+ "type": "207"
+ },
+ {
+ "case": "http",
+ "type": "211"
+ },
+ {
+ "case": "https",
+ "type": "212"
+ },
+ {
+ "case": "iscsi",
+ "type": "213"
+ },
+ {
+ "case": "luks",
+ "type": "214"
+ },
+ {
+ "case": "nbd",
+ "type": "215"
+ },
+ {
+ "case": "nfs",
+ "type": "216"
+ },
+ {
+ "case": "null-aio",
+ "type": "217"
+ },
+ {
+ "case": "null-co",
+ "type": "217"
+ },
+ {
+ "case": "parallels",
+ "type": "206"
+ },
+ {
+ "case": "qcow2",
+ "type": "218"
+ },
+ {
+ "case": "qcow",
+ "type": "219"
+ },
+ {
+ "case": "qed",
+ "type": "220"
+ },
+ {
+ "case": "quorum",
+ "type": "221"
+ },
+ {
+ "case": "raw",
+ "type": "222"
+ },
+ {
+ "case": "rbd",
+ "type": "223"
+ },
+ {
+ "case": "replication",
+ "type": "224"
+ },
+ {
+ "case": "sheepdog",
+ "type": "225"
+ },
+ {
+ "case": "ssh",
+ "type": "226"
+ },
+ {
+ "case": "vdi",
+ "type": "206"
+ },
+ {
+ "case": "vhdx",
+ "type": "206"
+ },
+ {
+ "case": "vmdk",
+ "type": "220"
+ },
+ {
+ "case": "vpc",
+ "type": "206"
+ },
+ {
+ "case": "vvfat",
+ "type": "227"
+ },
+ {
+ "case": "vxhs",
+ "type": "228"
+ }
+ ],
+ "members": [
+ {
+ "name": "driver",
+ "type": "200"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "discard",
+ "default": null,
+ "type": "201"
+ },
+ {
+ "name": "cache",
+ "default": null,
+ "type": "202"
+ },
+ {
+ "name": "read-only",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "force-share",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "detect-zeroes",
+ "default": null,
+ "type": "203"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "49",
+ "members": [
+ {
+ "name": "job-id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "target",
+ "type": "str"
+ },
+ {
+ "name": "sync",
+ "type": "229"
+ },
+ {
+ "name": "speed",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "compress",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "on-source-error",
+ "default": null,
+ "type": "199"
+ },
+ {
+ "name": "on-target-error",
+ "default": null,
+ "type": "199"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "50",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "filename",
+ "type": "str"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "read-only-mode",
+ "default": null,
+ "type": "230"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "51",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "52",
+ "members": [
+ {
+ "name": "node-name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "53",
+ "members": [
+ {
+ "name": "job-id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "target",
+ "type": "str"
+ },
+ {
+ "name": "replaces",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "sync",
+ "type": "229"
+ },
+ {
+ "name": "speed",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "granularity",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "buf-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "on-source-error",
+ "default": null,
+ "type": "199"
+ },
+ {
+ "name": "on-target-error",
+ "default": null,
+ "type": "199"
+ },
+ {
+ "name": "filter-node-name",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "54",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "force",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "55",
+ "members": [
+ {
+ "name": "node",
+ "type": "str"
+ },
+ {
+ "name": "overlay",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "56",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "name",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "57",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "vm-state-size",
+ "type": "int"
+ },
+ {
+ "name": "date-sec",
+ "type": "int"
+ },
+ {
+ "name": "date-nsec",
+ "type": "int"
+ },
+ {
+ "name": "vm-clock-sec",
+ "type": "int"
+ },
+ {
+ "name": "vm-clock-nsec",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "58",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "59",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "snapshot-file",
+ "type": "str"
+ },
+ {
+ "name": "snapshot-node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "mode",
+ "default": null,
+ "type": "231"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "60",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "target",
+ "type": "str"
+ },
+ {
+ "name": "arg",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "61",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "image-node-name",
+ "type": "str"
+ },
+ {
+ "name": "backing-file",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "62",
+ "members": [
+ {
+ "name": "password",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "63",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "backend",
+ "type": "232"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "64",
+ "members": [
+ {
+ "name": "pty",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "65",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "backend",
+ "type": "232"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "66",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "67",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "68",
+ "members": [
+ {
+ "name": "protocol",
+ "type": "str"
+ },
+ {
+ "name": "hostname",
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "tls-port",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cert-subject",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "69",
+ "members": [
+ {
+ "name": "fdname",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "70",
+ "members": [
+ {
+ "name": "index",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "71",
+ "members": [
+ {
+ "name": "id",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "72",
+ "members": [
+ {
+ "name": "typename",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[73]",
+ "element-type": "73",
+ "meta-type": "array"
+ },
+ {
+ "name": "73",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "type": "str"
+ },
+ {
+ "name": "description",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "74",
+ "members": [
+ {
+ "name": "driver",
+ "type": "str"
+ },
+ {
+ "name": "bus",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "75",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "76",
+ "members": [
+ {
+ "name": "job-id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "target",
+ "type": "str"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "sync",
+ "type": "229"
+ },
+ {
+ "name": "mode",
+ "default": null,
+ "type": "231"
+ },
+ {
+ "name": "speed",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bitmap",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "compress",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "on-source-error",
+ "default": null,
+ "type": "199"
+ },
+ {
+ "name": "on-target-error",
+ "default": null,
+ "type": "199"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "77",
+ "members": [
+ {
+ "name": "job-id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "target",
+ "type": "str"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "replaces",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "sync",
+ "type": "229"
+ },
+ {
+ "name": "mode",
+ "default": null,
+ "type": "231"
+ },
+ {
+ "name": "speed",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "granularity",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "buf-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "on-source-error",
+ "default": null,
+ "type": "199"
+ },
+ {
+ "name": "on-target-error",
+ "default": null,
+ "type": "199"
+ },
+ {
+ "name": "unmap",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "78",
+ "members": [
+ {
+ "name": "paging",
+ "type": "bool"
+ },
+ {
+ "name": "protocol",
+ "type": "str"
+ },
+ {
+ "name": "detach",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "begin",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "233"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "79",
+ "members": [
+ {
+ "name": "filename",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "80",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "force",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "81",
+ "members": [
+ {
+ "name": "protocol",
+ "type": "str"
+ },
+ {
+ "name": "time",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "82",
+ "members": [
+ {
+ "name": "fdname",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "83",
+ "members": [
+ {
+ "name": "command-line",
+ "type": "str"
+ },
+ {
+ "name": "cpu-index",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "str",
+ "json-type": "string",
+ "meta-type": "builtin"
+ },
+ {
+ "name": "84",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "head",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "events",
+ "type": "[234]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "85",
+ "members": [
+ {
+ "name": "val",
+ "type": "int"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "filename",
+ "type": "str"
+ },
+ {
+ "name": "cpu-index",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "86",
+ "members": [
+ {
+ "name": "uri",
+ "type": "str"
+ },
+ {
+ "name": "blk",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "inc",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "detach",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "87",
+ "members": [
+ {
+ "name": "uri",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "88",
+ "members": [
+ {
+ "name": "value",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "89",
+ "members": [
+ {
+ "name": "capabilities",
+ "type": "[138]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "90",
+ "members": [
+ {
+ "name": "compress-level",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "compress-threads",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "decompress-threads",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cpu-throttle-initial",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cpu-throttle-increment",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "tls-creds",
+ "default": null,
+ "type": "235"
+ },
+ {
+ "name": "tls-hostname",
+ "default": null,
+ "type": "235"
+ },
+ {
+ "name": "max-bandwidth",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "downtime-limit",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "x-checkpoint-delay",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "block-incremental",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "91",
+ "members": [
+ {
+ "name": "value",
+ "type": "number"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "92",
+ "members": [
+ {
+ "name": "value",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "93",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "writable",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "94",
+ "members": [
+ {
+ "name": "addr",
+ "type": "236"
+ },
+ {
+ "name": "tls-creds",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "95",
+ "members": [
+ {
+ "name": "type",
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "96",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "97",
+ "members": [
+ {
+ "name": "qom-type",
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "props",
+ "default": null,
+ "type": "any"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "98",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "99",
+ "members": [
+ {
+ "name": "val",
+ "type": "int"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "filename",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "100",
+ "members": [
+ {
+ "name": "path",
+ "type": "str"
+ },
+ {
+ "name": "property",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "any",
+ "json-type": "value",
+ "meta-type": "builtin"
+ },
+ {
+ "name": "101",
+ "members": [
+ {
+ "name": "path",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[102]",
+ "element-type": "102",
+ "meta-type": "array"
+ },
+ {
+ "name": "102",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "103",
+ "members": [
+ {
+ "name": "implements",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "abstract",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[104]",
+ "element-type": "104",
+ "meta-type": "array"
+ },
+ {
+ "name": "104",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "abstract",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "parent",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "105",
+ "members": [
+ {
+ "name": "path",
+ "type": "str"
+ },
+ {
+ "name": "property",
+ "type": "str"
+ },
+ {
+ "name": "value",
+ "type": "any"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[106]",
+ "element-type": "106",
+ "meta-type": "array"
+ },
+ {
+ "name": "106",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "slot",
+ "type": "str"
+ },
+ {
+ "name": "slot-type",
+ "type": "237"
+ },
+ {
+ "name": "source",
+ "type": "int"
+ },
+ {
+ "name": "status",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "107",
+ "members": [
+ {
+ "name": "actual",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[108]",
+ "element-type": "108",
+ "meta-type": "array"
+ },
+ {
+ "name": "108",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "qdev",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "type": "str"
+ },
+ {
+ "name": "removable",
+ "type": "bool"
+ },
+ {
+ "name": "locked",
+ "type": "bool"
+ },
+ {
+ "name": "inserted",
+ "default": null,
+ "type": "141"
+ },
+ {
+ "name": "tray_open",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "io-status",
+ "default": null,
+ "type": "238"
+ },
+ {
+ "name": "dirty-bitmaps",
+ "default": null,
+ "type": "[239]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[109]",
+ "element-type": "109",
+ "meta-type": "array"
+ },
+ {
+ "name": "109",
+ "members": [
+ {
+ "name": "type",
+ "type": "str"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "len",
+ "type": "int"
+ },
+ {
+ "name": "offset",
+ "type": "int"
+ },
+ {
+ "name": "busy",
+ "type": "bool"
+ },
+ {
+ "name": "paused",
+ "type": "bool"
+ },
+ {
+ "name": "speed",
+ "type": "int"
+ },
+ {
+ "name": "io-status",
+ "type": "238"
+ },
+ {
+ "name": "ready",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "110",
+ "members": [
+ {
+ "name": "query-nodes",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[111]",
+ "element-type": "111",
+ "meta-type": "array"
+ },
+ {
+ "name": "111",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "stats",
+ "type": "240"
+ },
+ {
+ "name": "parent",
+ "default": null,
+ "type": "111"
+ },
+ {
+ "name": "backing",
+ "default": null,
+ "type": "111"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[112]",
+ "element-type": "112",
+ "meta-type": "array"
+ },
+ {
+ "name": "112",
+ "members": [
+ {
+ "name": "label",
+ "type": "str"
+ },
+ {
+ "name": "filename",
+ "type": "str"
+ },
+ {
+ "name": "frontend-open",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[113]",
+ "element-type": "113",
+ "meta-type": "array"
+ },
+ {
+ "name": "113",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "114",
+ "members": [
+ {
+ "name": "option",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[115]",
+ "element-type": "115",
+ "meta-type": "array"
+ },
+ {
+ "name": "115",
+ "members": [
+ {
+ "name": "option",
+ "type": "str"
+ },
+ {
+ "name": "parameters",
+ "type": "[241]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[116]",
+ "element-type": "116",
+ "meta-type": "array"
+ },
+ {
+ "name": "116",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[117]",
+ "element-type": "117",
+ "meta-type": "array"
+ },
+ {
+ "name": "117",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "migration-safe",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "static",
+ "type": "bool"
+ },
+ {
+ "name": "unavailable-features",
+ "default": null,
+ "type": "[str]"
+ },
+ {
+ "name": "typename",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "118",
+ "members": [
+ {
+ "name": "modela",
+ "type": "242"
+ },
+ {
+ "name": "modelb",
+ "type": "242"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "119",
+ "members": [
+ {
+ "name": "model",
+ "type": "242"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "120",
+ "members": [
+ {
+ "name": "modela",
+ "type": "242"
+ },
+ {
+ "name": "modelb",
+ "type": "242"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "121",
+ "members": [
+ {
+ "name": "result",
+ "type": "243"
+ },
+ {
+ "name": "responsible-properties",
+ "type": "[str]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "122",
+ "members": [
+ {
+ "name": "type",
+ "type": "244"
+ },
+ {
+ "name": "model",
+ "type": "242"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "123",
+ "members": [
+ {
+ "name": "model",
+ "type": "242"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[124]",
+ "element-type": "124",
+ "meta-type": "array"
+ },
+ {
+ "name": "124",
+ "tag": "arch",
+ "variants": [
+ {
+ "case": "x86",
+ "type": "247"
+ },
+ {
+ "case": "sparc",
+ "type": "248"
+ },
+ {
+ "case": "ppc",
+ "type": "249"
+ },
+ {
+ "case": "mips",
+ "type": "250"
+ },
+ {
+ "case": "tricore",
+ "type": "251"
+ },
+ {
+ "case": "other",
+ "type": "252"
+ }
+ ],
+ "members": [
+ {
+ "name": "CPU",
+ "type": "int"
+ },
+ {
+ "name": "current",
+ "type": "bool"
+ },
+ {
+ "name": "halted",
+ "type": "bool"
+ },
+ {
+ "name": "qom_path",
+ "type": "str"
+ },
+ {
+ "name": "thread_id",
+ "type": "int"
+ },
+ {
+ "name": "props",
+ "default": null,
+ "type": "245"
+ },
+ {
+ "name": "arch",
+ "type": "246"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "125",
+ "members": [
+ {
+ "name": "status",
+ "type": "253"
+ },
+ {
+ "name": "completed",
+ "type": "int"
+ },
+ {
+ "name": "total",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "126",
+ "members": [
+ {
+ "name": "formats",
+ "type": "[233]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[127]",
+ "element-type": "127",
+ "meta-type": "array"
+ },
+ {
+ "name": "127",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[128]",
+ "element-type": "128",
+ "meta-type": "array"
+ },
+ {
+ "name": "128",
+ "members": [
+ {
+ "name": "fdset-id",
+ "type": "int"
+ },
+ {
+ "name": "fds",
+ "type": "[254]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[129]",
+ "element-type": "129",
+ "meta-type": "array"
+ },
+ {
+ "name": "129",
+ "members": [
+ {
+ "name": "version",
+ "type": "int"
+ },
+ {
+ "name": "emulated",
+ "type": "bool"
+ },
+ {
+ "name": "kernel",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[130]",
+ "element-type": "130",
+ "meta-type": "array"
+ },
+ {
+ "name": "130",
+ "members": [
+ {
+ "name": "type",
+ "type": "str"
+ },
+ {
+ "name": "vcpus-count",
+ "type": "int"
+ },
+ {
+ "name": "props",
+ "type": "245"
+ },
+ {
+ "name": "qom-path",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[131]",
+ "element-type": "131",
+ "meta-type": "array"
+ },
+ {
+ "name": "131",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "thread-id",
+ "type": "int"
+ },
+ {
+ "name": "poll-max-ns",
+ "type": "int"
+ },
+ {
+ "name": "poll-grow",
+ "type": "int"
+ },
+ {
+ "name": "poll-shrink",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "132",
+ "members": [
+ {
+ "name": "enabled",
+ "type": "bool"
+ },
+ {
+ "name": "present",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[133]",
+ "element-type": "133",
+ "meta-type": "array"
+ },
+ {
+ "name": "133",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "alias",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "is-default",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "cpu-max",
+ "type": "int"
+ },
+ {
+ "name": "hotpluggable-cpus",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[134]",
+ "element-type": "134",
+ "meta-type": "array"
+ },
+ {
+ "name": "134",
+ "members": [
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "merge",
+ "type": "bool"
+ },
+ {
+ "name": "dump",
+ "type": "bool"
+ },
+ {
+ "name": "prealloc",
+ "type": "bool"
+ },
+ {
+ "name": "host-nodes",
+ "type": "[int]"
+ },
+ {
+ "name": "policy",
+ "type": "255"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[135]",
+ "element-type": "135",
+ "meta-type": "array"
+ },
+ {
+ "name": "135",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "dimm",
+ "type": "257"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "256"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[136]",
+ "element-type": "136",
+ "meta-type": "array"
+ },
+ {
+ "name": "136",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "index",
+ "type": "int"
+ },
+ {
+ "name": "current",
+ "type": "bool"
+ },
+ {
+ "name": "absolute",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "137",
+ "members": [
+ {
+ "name": "status",
+ "default": null,
+ "type": "190"
+ },
+ {
+ "name": "ram",
+ "default": null,
+ "type": "258"
+ },
+ {
+ "name": "disk",
+ "default": null,
+ "type": "258"
+ },
+ {
+ "name": "xbzrle-cache",
+ "default": null,
+ "type": "259"
+ },
+ {
+ "name": "total-time",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "expected-downtime",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "downtime",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "setup-time",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cpu-throttle-percentage",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "error-desc",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "int",
+ "json-type": "int",
+ "meta-type": "builtin"
+ },
+ {
+ "name": "[138]",
+ "element-type": "138",
+ "meta-type": "array"
+ },
+ {
+ "name": "138",
+ "members": [
+ {
+ "name": "capability",
+ "type": "260"
+ },
+ {
+ "name": "state",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "139",
+ "members": [
+ {
+ "name": "compress-level",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "compress-threads",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "decompress-threads",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cpu-throttle-initial",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cpu-throttle-increment",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "tls-creds",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "tls-hostname",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "max-bandwidth",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "downtime-limit",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "x-checkpoint-delay",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "block-incremental",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "140",
+ "members": [
+ {
+ "name": "name",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[141]",
+ "element-type": "141",
+ "meta-type": "array"
+ },
+ {
+ "name": "141",
+ "members": [
+ {
+ "name": "file",
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "ro",
+ "type": "bool"
+ },
+ {
+ "name": "drv",
+ "type": "str"
+ },
+ {
+ "name": "backing_file",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "backing_file_depth",
+ "type": "int"
+ },
+ {
+ "name": "encrypted",
+ "type": "bool"
+ },
+ {
+ "name": "encryption_key_missing",
+ "type": "bool"
+ },
+ {
+ "name": "detect_zeroes",
+ "type": "203"
+ },
+ {
+ "name": "bps",
+ "type": "int"
+ },
+ {
+ "name": "bps_rd",
+ "type": "int"
+ },
+ {
+ "name": "bps_wr",
+ "type": "int"
+ },
+ {
+ "name": "iops",
+ "type": "int"
+ },
+ {
+ "name": "iops_rd",
+ "type": "int"
+ },
+ {
+ "name": "iops_wr",
+ "type": "int"
+ },
+ {
+ "name": "image",
+ "type": "261"
+ },
+ {
+ "name": "bps_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_rd_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_wr_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_rd_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_wr_max",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_rd_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "bps_wr_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_rd_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_wr_max_length",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "iops_size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "group",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "cache",
+ "type": "262"
+ },
+ {
+ "name": "write_threshold",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[142]",
+ "element-type": "142",
+ "meta-type": "array"
+ },
+ {
+ "name": "142",
+ "members": [
+ {
+ "name": "bus",
+ "type": "int"
+ },
+ {
+ "name": "devices",
+ "type": "[263]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[143]",
+ "element-type": "143",
+ "meta-type": "array"
+ },
+ {
+ "name": "143",
+ "tag": "meta-type",
+ "variants": [
+ {
+ "case": "builtin",
+ "type": "265"
+ },
+ {
+ "case": "enum",
+ "type": "266"
+ },
+ {
+ "case": "array",
+ "type": "267"
+ },
+ {
+ "case": "object",
+ "type": "268"
+ },
+ {
+ "case": "alternate",
+ "type": "269"
+ },
+ {
+ "case": "command",
+ "type": "270"
+ },
+ {
+ "case": "event",
+ "type": "271"
+ }
+ ],
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "meta-type",
+ "type": "264"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "144",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "145",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "type": "int"
+ },
+ {
+ "name": "ports",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "146",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "tbl-id",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[147]",
+ "element-type": "147",
+ "meta-type": "array"
+ },
+ {
+ "name": "147",
+ "members": [
+ {
+ "name": "cookie",
+ "type": "int"
+ },
+ {
+ "name": "hits",
+ "type": "int"
+ },
+ {
+ "name": "key",
+ "type": "272"
+ },
+ {
+ "name": "mask",
+ "type": "273"
+ },
+ {
+ "name": "action",
+ "type": "274"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "148",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[149]",
+ "element-type": "149",
+ "meta-type": "array"
+ },
+ {
+ "name": "149",
+ "members": [
+ {
+ "name": "id",
+ "type": "int"
+ },
+ {
+ "name": "type",
+ "type": "int"
+ },
+ {
+ "name": "vlan-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "pport",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "index",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "out-pport",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "group-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "set-vlan-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "pop-vlan",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "group-ids",
+ "default": null,
+ "type": "[int]"
+ },
+ {
+ "name": "set-eth-src",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "set-eth-dst",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "ttl-check",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "150",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[151]",
+ "element-type": "151",
+ "meta-type": "array"
+ },
+ {
+ "name": "151",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "enabled",
+ "type": "bool"
+ },
+ {
+ "name": "link-up",
+ "type": "bool"
+ },
+ {
+ "name": "speed",
+ "type": "int"
+ },
+ {
+ "name": "duplex",
+ "type": "275"
+ },
+ {
+ "name": "autoneg",
+ "type": "276"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "152",
+ "members": [
+ {
+ "name": "name",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[153]",
+ "element-type": "153",
+ "meta-type": "array"
+ },
+ {
+ "name": "153",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "promiscuous",
+ "type": "bool"
+ },
+ {
+ "name": "multicast",
+ "type": "277"
+ },
+ {
+ "name": "unicast",
+ "type": "277"
+ },
+ {
+ "name": "vlan",
+ "type": "277"
+ },
+ {
+ "name": "broadcast-allowed",
+ "type": "bool"
+ },
+ {
+ "name": "multicast-overflow",
+ "type": "bool"
+ },
+ {
+ "name": "unicast-overflow",
+ "type": "bool"
+ },
+ {
+ "name": "main-mac",
+ "type": "str"
+ },
+ {
+ "name": "vlan-table",
+ "type": "[int]"
+ },
+ {
+ "name": "unicast-table",
+ "type": "[str]"
+ },
+ {
+ "name": "multicast-table",
+ "type": "[str]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "154",
+ "members": [
+ {
+ "name": "enabled",
+ "type": "bool"
+ },
+ {
+ "name": "migrated",
+ "type": "bool"
+ },
+ {
+ "name": "host",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "tls-port",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "auth",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "compiled-version",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "mouse-mode",
+ "type": "278"
+ },
+ {
+ "name": "channels",
+ "default": null,
+ "type": "[194]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "155",
+ "members": [
+ {
+ "name": "running",
+ "type": "bool"
+ },
+ {
+ "name": "singlestep",
+ "type": "bool"
+ },
+ {
+ "name": "status",
+ "type": "279"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "156",
+ "members": [
+ {
+ "name": "arch",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[157]",
+ "element-type": "157",
+ "meta-type": "array"
+ },
+ {
+ "name": "157",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "model",
+ "type": "158"
+ },
+ {
+ "name": "options",
+ "type": "280"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[158]",
+ "element-type": "158",
+ "meta-type": "array"
+ },
+ {
+ "name": "158",
+ "meta-type": "enum",
+ "values": [
+ "tpm-tis"
+ ]
+ },
+ {
+ "name": "[159]",
+ "element-type": "159",
+ "meta-type": "array"
+ },
+ {
+ "name": "159",
+ "meta-type": "enum",
+ "values": [
+ "passthrough"
+ ]
+ },
+ {
+ "name": "160",
+ "members": [
+ {
+ "name": "UUID",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "161",
+ "members": [
+ {
+ "name": "qemu",
+ "type": "281"
+ },
+ {
+ "name": "package",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "162",
+ "members": [
+ {
+ "name": "guid",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "163",
+ "members": [
+ {
+ "name": "enabled",
+ "type": "bool"
+ },
+ {
+ "name": "host",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "family",
+ "default": null,
+ "type": "282"
+ },
+ {
+ "name": "service",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "auth",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "clients",
+ "default": null,
+ "type": "[197]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[164]",
+ "element-type": "164",
+ "meta-type": "array"
+ },
+ {
+ "name": "164",
+ "members": [
+ {
+ "name": "id",
+ "type": "str"
+ },
+ {
+ "name": "server",
+ "type": "[283]"
+ },
+ {
+ "name": "clients",
+ "type": "[197]"
+ },
+ {
+ "name": "auth",
+ "type": "284"
+ },
+ {
+ "name": "vencrypt",
+ "default": null,
+ "type": "285"
+ },
+ {
+ "name": "display",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "165",
+ "members": [
+ {
+ "name": "error",
+ "type": "bool"
+ },
+ {
+ "name": "desc",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "166",
+ "members": [
+ {
+ "name": "fdset-id",
+ "type": "int"
+ },
+ {
+ "name": "fd",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "167",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "286"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "168",
+ "members": [
+ {
+ "name": "device",
+ "type": "str"
+ },
+ {
+ "name": "data",
+ "type": "str"
+ },
+ {
+ "name": "format",
+ "default": null,
+ "type": "286"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "169",
+ "members": [
+ {
+ "name": "filename",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "170",
+ "members": [
+ {
+ "name": "keys",
+ "type": "[287]"
+ },
+ {
+ "name": "hold-time",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "171",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "up",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "172",
+ "members": [
+ {
+ "name": "protocol",
+ "type": "str"
+ },
+ {
+ "name": "password",
+ "type": "str"
+ },
+ {
+ "name": "connected",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "173",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "vcpu",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[174]",
+ "element-type": "174",
+ "meta-type": "array"
+ },
+ {
+ "name": "174",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "state",
+ "type": "288"
+ },
+ {
+ "name": "vcpu",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "175",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "enable",
+ "type": "bool"
+ },
+ {
+ "name": "ignore-unavailable",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "vcpu",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "176",
+ "members": [
+ {
+ "name": "actions",
+ "type": "[289]"
+ },
+ {
+ "name": "properties",
+ "default": null,
+ "type": "290"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "177",
+ "members": [
+ {
+ "name": "parent",
+ "type": "str"
+ },
+ {
+ "name": "child",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "node",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "178",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "node-name",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "179",
+ "members": [
+ {
+ "name": "device",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "180",
+ "members": [
+ {
+ "name": "sha256",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "181",
+ "members": [
+ {
+ "name": "filename",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "182",
+ "members": [
+ {
+ "name": "filename",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "183",
+ "members": [
+ {
+ "name": "enable",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "184",
+ "members": [
+ {
+ "name": "enable",
+ "type": "bool"
+ },
+ {
+ "name": "primary",
+ "type": "bool"
+ },
+ {
+ "name": "failover",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "bool",
+ "json-type": "boolean",
+ "meta-type": "builtin"
+ },
+ {
+ "name": "185",
+ "meta-type": "enum",
+ "values": [
+ "read",
+ "write"
+ ]
+ },
+ {
+ "name": "186",
+ "meta-type": "enum",
+ "values": [
+ "ignore",
+ "report",
+ "stop"
+ ]
+ },
+ {
+ "name": "187",
+ "meta-type": "enum",
+ "values": [
+ "commit",
+ "stream",
+ "mirror",
+ "backup"
+ ]
+ },
+ {
+ "name": "188",
+ "meta-type": "enum",
+ "values": [
+ "pause",
+ "poweroff"
+ ]
+ },
+ {
+ "name": "189",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "hyper-v",
+ "type": "292"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "291"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "190",
+ "meta-type": "enum",
+ "values": [
+ "none",
+ "setup",
+ "cancelling",
+ "cancelled",
+ "active",
+ "postcopy-active",
+ "completed",
+ "failed",
+ "colo"
+ ]
+ },
+ {
+ "name": "191",
+ "meta-type": "enum",
+ "values": [
+ "read",
+ "write",
+ "flush"
+ ]
+ },
+ {
+ "name": "192",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "type": "str"
+ },
+ {
+ "name": "family",
+ "type": "282"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "193",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "type": "str"
+ },
+ {
+ "name": "family",
+ "type": "282"
+ },
+ {
+ "name": "auth",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "194",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "type": "str"
+ },
+ {
+ "name": "family",
+ "type": "282"
+ },
+ {
+ "name": "connection-id",
+ "type": "int"
+ },
+ {
+ "name": "channel-type",
+ "type": "int"
+ },
+ {
+ "name": "channel-id",
+ "type": "int"
+ },
+ {
+ "name": "tls",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "195",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "service",
+ "type": "str"
+ },
+ {
+ "name": "family",
+ "type": "282"
+ },
+ {
+ "name": "websocket",
+ "type": "bool"
+ },
+ {
+ "name": "auth",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "196",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "service",
+ "type": "str"
+ },
+ {
+ "name": "family",
+ "type": "282"
+ },
+ {
+ "name": "websocket",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "197",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "service",
+ "type": "str"
+ },
+ {
+ "name": "family",
+ "type": "282"
+ },
+ {
+ "name": "websocket",
+ "type": "bool"
+ },
+ {
+ "name": "x509_dname",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "sasl_username",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "198",
+ "meta-type": "enum",
+ "values": [
+ "reset",
+ "shutdown",
+ "poweroff",
+ "pause",
+ "debug",
+ "none",
+ "inject-nmi"
+ ]
+ },
+ {
+ "name": "199",
+ "meta-type": "enum",
+ "values": [
+ "report",
+ "ignore",
+ "enospc",
+ "stop",
+ "auto"
+ ]
+ },
+ {
+ "name": "200",
+ "meta-type": "enum",
+ "values": [
+ "blkdebug",
+ "blkverify",
+ "bochs",
+ "cloop",
+ "dmg",
+ "file",
+ "ftp",
+ "ftps",
+ "gluster",
+ "host_cdrom",
+ "host_device",
+ "http",
+ "https",
+ "iscsi",
+ "luks",
+ "nbd",
+ "nfs",
+ "null-aio",
+ "null-co",
+ "parallels",
+ "qcow",
+ "qcow2",
+ "qed",
+ "quorum",
+ "raw",
+ "rbd",
+ "replication",
+ "sheepdog",
+ "ssh",
+ "vdi",
+ "vhdx",
+ "vmdk",
+ "vpc",
+ "vvfat",
+ "vxhs"
+ ]
+ },
+ {
+ "name": "201",
+ "meta-type": "enum",
+ "values": [
+ "ignore",
+ "unmap"
+ ]
+ },
+ {
+ "name": "202",
+ "members": [
+ {
+ "name": "direct",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "no-flush",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "203",
+ "meta-type": "enum",
+ "values": [
+ "off",
+ "on",
+ "unmap"
+ ]
+ },
+ {
+ "name": "204",
+ "members": [
+ {
+ "name": "image",
+ "type": "293"
+ },
+ {
+ "name": "config",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "align",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "max-transfer",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "opt-write-zero",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "max-write-zero",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "opt-discard",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "max-discard",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "inject-error",
+ "default": null,
+ "type": "[294]"
+ },
+ {
+ "name": "set-state",
+ "default": null,
+ "type": "[295]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "205",
+ "members": [
+ {
+ "name": "test",
+ "type": "293"
+ },
+ {
+ "name": "raw",
+ "type": "293"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "206",
+ "members": [
+ {
+ "name": "file",
+ "type": "293"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "207",
+ "members": [
+ {
+ "name": "filename",
+ "type": "str"
+ },
+ {
+ "name": "locking",
+ "default": null,
+ "type": "296"
+ },
+ {
+ "name": "aio",
+ "default": null,
+ "type": "297"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "208",
+ "members": [
+ {
+ "name": "url",
+ "type": "str"
+ },
+ {
+ "name": "readahead",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "timeout",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "username",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "password-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "proxy-username",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "proxy-password-secret",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "209",
+ "members": [
+ {
+ "name": "url",
+ "type": "str"
+ },
+ {
+ "name": "readahead",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "timeout",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "username",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "password-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "proxy-username",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "proxy-password-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "sslverify",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "210",
+ "members": [
+ {
+ "name": "volume",
+ "type": "str"
+ },
+ {
+ "name": "path",
+ "type": "str"
+ },
+ {
+ "name": "server",
+ "type": "[298]"
+ },
+ {
+ "name": "debug",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "211",
+ "members": [
+ {
+ "name": "url",
+ "type": "str"
+ },
+ {
+ "name": "readahead",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "timeout",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "username",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "password-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "proxy-username",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "proxy-password-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "cookie",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "cookie-secret",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "212",
+ "members": [
+ {
+ "name": "url",
+ "type": "str"
+ },
+ {
+ "name": "readahead",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "timeout",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "username",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "password-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "proxy-username",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "proxy-password-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "cookie",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "sslverify",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "cookie-secret",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "213",
+ "members": [
+ {
+ "name": "transport",
+ "type": "299"
+ },
+ {
+ "name": "portal",
+ "type": "str"
+ },
+ {
+ "name": "target",
+ "type": "str"
+ },
+ {
+ "name": "lun",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "user",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "password-secret",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "initiator-name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "header-digest",
+ "default": null,
+ "type": "300"
+ },
+ {
+ "name": "timeout",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "214",
+ "members": [
+ {
+ "name": "file",
+ "type": "293"
+ },
+ {
+ "name": "key-secret",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "215",
+ "members": [
+ {
+ "name": "server",
+ "type": "298"
+ },
+ {
+ "name": "export",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "tls-creds",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "216",
+ "members": [
+ {
+ "name": "server",
+ "type": "301"
+ },
+ {
+ "name": "path",
+ "type": "str"
+ },
+ {
+ "name": "user",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "group",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "tcp-syn-count",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "readahead-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "page-cache-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "debug",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "217",
+ "members": [
+ {
+ "name": "size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "latency-ns",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "218",
+ "members": [
+ {
+ "name": "file",
+ "type": "293"
+ },
+ {
+ "name": "backing",
+ "default": null,
+ "type": "302"
+ },
+ {
+ "name": "lazy-refcounts",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "pass-discard-request",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "pass-discard-snapshot",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "pass-discard-other",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "overlap-check",
+ "default": null,
+ "type": "303"
+ },
+ {
+ "name": "cache-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "l2-cache-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "refcount-cache-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cache-clean-interval",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "encrypt",
+ "default": null,
+ "type": "304"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "219",
+ "members": [
+ {
+ "name": "file",
+ "type": "293"
+ },
+ {
+ "name": "backing",
+ "default": null,
+ "type": "302"
+ },
+ {
+ "name": "encrypt",
+ "default": null,
+ "type": "305"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "220",
+ "members": [
+ {
+ "name": "file",
+ "type": "293"
+ },
+ {
+ "name": "backing",
+ "default": null,
+ "type": "302"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "221",
+ "members": [
+ {
+ "name": "blkverify",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "children",
+ "type": "[293]"
+ },
+ {
+ "name": "vote-threshold",
+ "type": "int"
+ },
+ {
+ "name": "rewrite-corrupted",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "read-pattern",
+ "default": null,
+ "type": "306"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "222",
+ "members": [
+ {
+ "name": "file",
+ "type": "293"
+ },
+ {
+ "name": "offset",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "size",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "223",
+ "members": [
+ {
+ "name": "pool",
+ "type": "str"
+ },
+ {
+ "name": "image",
+ "type": "str"
+ },
+ {
+ "name": "conf",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "snapshot",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "user",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "server",
+ "default": null,
+ "type": "[307]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "224",
+ "members": [
+ {
+ "name": "file",
+ "type": "293"
+ },
+ {
+ "name": "mode",
+ "type": "308"
+ },
+ {
+ "name": "top-id",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "225",
+ "members": [
+ {
+ "name": "server",
+ "type": "298"
+ },
+ {
+ "name": "vdi",
+ "type": "str"
+ },
+ {
+ "name": "snap-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "tag",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "226",
+ "members": [
+ {
+ "name": "server",
+ "type": "309"
+ },
+ {
+ "name": "path",
+ "type": "str"
+ },
+ {
+ "name": "user",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "227",
+ "members": [
+ {
+ "name": "dir",
+ "type": "str"
+ },
+ {
+ "name": "fat-type",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "floppy",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "label",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "rw",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "228",
+ "members": [
+ {
+ "name": "vdisk-id",
+ "type": "str"
+ },
+ {
+ "name": "server",
+ "type": "307"
+ },
+ {
+ "name": "tls-creds",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "229",
+ "meta-type": "enum",
+ "values": [
+ "top",
+ "full",
+ "none",
+ "incremental"
+ ]
+ },
+ {
+ "name": "230",
+ "meta-type": "enum",
+ "values": [
+ "retain",
+ "read-only",
+ "read-write"
+ ]
+ },
+ {
+ "name": "231",
+ "meta-type": "enum",
+ "values": [
+ "existing",
+ "absolute-paths"
+ ]
+ },
+ {
+ "name": "232",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "file",
+ "type": "311"
+ },
+ {
+ "case": "serial",
+ "type": "312"
+ },
+ {
+ "case": "parallel",
+ "type": "312"
+ },
+ {
+ "case": "pipe",
+ "type": "312"
+ },
+ {
+ "case": "socket",
+ "type": "313"
+ },
+ {
+ "case": "udp",
+ "type": "314"
+ },
+ {
+ "case": "pty",
+ "type": "315"
+ },
+ {
+ "case": "null",
+ "type": "315"
+ },
+ {
+ "case": "mux",
+ "type": "316"
+ },
+ {
+ "case": "msmouse",
+ "type": "315"
+ },
+ {
+ "case": "wctablet",
+ "type": "315"
+ },
+ {
+ "case": "braille",
+ "type": "315"
+ },
+ {
+ "case": "testdev",
+ "type": "315"
+ },
+ {
+ "case": "stdio",
+ "type": "317"
+ },
+ {
+ "case": "console",
+ "type": "315"
+ },
+ {
+ "case": "spicevmc",
+ "type": "318"
+ },
+ {
+ "case": "spiceport",
+ "type": "319"
+ },
+ {
+ "case": "vc",
+ "type": "320"
+ },
+ {
+ "case": "ringbuf",
+ "type": "321"
+ },
+ {
+ "case": "memory",
+ "type": "321"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "310"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "233",
+ "meta-type": "enum",
+ "values": [
+ "elf",
+ "kdump-zlib",
+ "kdump-lzo",
+ "kdump-snappy"
+ ]
+ },
+ {
+ "name": "[234]",
+ "element-type": "234",
+ "meta-type": "array"
+ },
+ {
+ "name": "234",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "key",
+ "type": "323"
+ },
+ {
+ "case": "btn",
+ "type": "324"
+ },
+ {
+ "case": "rel",
+ "type": "325"
+ },
+ {
+ "case": "abs",
+ "type": "325"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "322"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "235",
+ "members": [
+ {
+ "type": "str"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "meta-type": "alternate"
+ },
+ {
+ "name": "number",
+ "json-type": "number",
+ "meta-type": "builtin"
+ },
+ {
+ "name": "236",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "inet",
+ "type": "327"
+ },
+ {
+ "case": "unix",
+ "type": "328"
+ },
+ {
+ "case": "vsock",
+ "type": "329"
+ },
+ {
+ "case": "fd",
+ "type": "330"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "326"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "237",
+ "meta-type": "enum",
+ "values": [
+ "DIMM",
+ "CPU"
+ ]
+ },
+ {
+ "name": "238",
+ "meta-type": "enum",
+ "values": [
+ "ok",
+ "failed",
+ "nospace"
+ ]
+ },
+ {
+ "name": "[239]",
+ "element-type": "239",
+ "meta-type": "array"
+ },
+ {
+ "name": "239",
+ "members": [
+ {
+ "name": "name",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "count",
+ "type": "int"
+ },
+ {
+ "name": "granularity",
+ "type": "int"
+ },
+ {
+ "name": "status",
+ "type": "331"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "240",
+ "members": [
+ {
+ "name": "rd_bytes",
+ "type": "int"
+ },
+ {
+ "name": "wr_bytes",
+ "type": "int"
+ },
+ {
+ "name": "rd_operations",
+ "type": "int"
+ },
+ {
+ "name": "wr_operations",
+ "type": "int"
+ },
+ {
+ "name": "flush_operations",
+ "type": "int"
+ },
+ {
+ "name": "flush_total_time_ns",
+ "type": "int"
+ },
+ {
+ "name": "wr_total_time_ns",
+ "type": "int"
+ },
+ {
+ "name": "rd_total_time_ns",
+ "type": "int"
+ },
+ {
+ "name": "wr_highest_offset",
+ "type": "int"
+ },
+ {
+ "name": "rd_merged",
+ "type": "int"
+ },
+ {
+ "name": "wr_merged",
+ "type": "int"
+ },
+ {
+ "name": "idle_time_ns",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "failed_rd_operations",
+ "type": "int"
+ },
+ {
+ "name": "failed_wr_operations",
+ "type": "int"
+ },
+ {
+ "name": "failed_flush_operations",
+ "type": "int"
+ },
+ {
+ "name": "invalid_rd_operations",
+ "type": "int"
+ },
+ {
+ "name": "invalid_wr_operations",
+ "type": "int"
+ },
+ {
+ "name": "invalid_flush_operations",
+ "type": "int"
+ },
+ {
+ "name": "account_invalid",
+ "type": "bool"
+ },
+ {
+ "name": "account_failed",
+ "type": "bool"
+ },
+ {
+ "name": "timed_stats",
+ "type": "[332]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[241]",
+ "element-type": "241",
+ "meta-type": "array"
+ },
+ {
+ "name": "241",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "type": "333"
+ },
+ {
+ "name": "help",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "default",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[str]",
+ "element-type": "str",
+ "meta-type": "array"
+ },
+ {
+ "name": "242",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "props",
+ "default": null,
+ "type": "any"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "243",
+ "meta-type": "enum",
+ "values": [
+ "incompatible",
+ "identical",
+ "superset",
+ "subset"
+ ]
+ },
+ {
+ "name": "244",
+ "meta-type": "enum",
+ "values": [
+ "static",
+ "full"
+ ]
+ },
+ {
+ "name": "245",
+ "members": [
+ {
+ "name": "node-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "socket-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "core-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "thread-id",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "246",
+ "meta-type": "enum",
+ "values": [
+ "x86",
+ "sparc",
+ "ppc",
+ "mips",
+ "tricore",
+ "other"
+ ]
+ },
+ {
+ "name": "247",
+ "members": [
+ {
+ "name": "pc",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "248",
+ "members": [
+ {
+ "name": "pc",
+ "type": "int"
+ },
+ {
+ "name": "npc",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "249",
+ "members": [
+ {
+ "name": "nip",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "250",
+ "members": [
+ {
+ "name": "PC",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "251",
+ "members": [
+ {
+ "name": "PC",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "252",
+ "members": [
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "253",
+ "meta-type": "enum",
+ "values": [
+ "none",
+ "active",
+ "completed",
+ "failed"
+ ]
+ },
+ {
+ "name": "[233]",
+ "element-type": "233",
+ "meta-type": "array"
+ },
+ {
+ "name": "[254]",
+ "element-type": "254",
+ "meta-type": "array"
+ },
+ {
+ "name": "254",
+ "members": [
+ {
+ "name": "fd",
+ "type": "int"
+ },
+ {
+ "name": "opaque",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[int]",
+ "element-type": "int",
+ "meta-type": "array"
+ },
+ {
+ "name": "255",
+ "meta-type": "enum",
+ "values": [
+ "default",
+ "preferred",
+ "bind",
+ "interleave"
+ ]
+ },
+ {
+ "name": "256",
+ "meta-type": "enum",
+ "values": [
+ "dimm"
+ ]
+ },
+ {
+ "name": "257",
+ "members": [
+ {
+ "name": "data",
+ "type": "334"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "258",
+ "members": [
+ {
+ "name": "transferred",
+ "type": "int"
+ },
+ {
+ "name": "remaining",
+ "type": "int"
+ },
+ {
+ "name": "total",
+ "type": "int"
+ },
+ {
+ "name": "duplicate",
+ "type": "int"
+ },
+ {
+ "name": "skipped",
+ "type": "int"
+ },
+ {
+ "name": "normal",
+ "type": "int"
+ },
+ {
+ "name": "normal-bytes",
+ "type": "int"
+ },
+ {
+ "name": "dirty-pages-rate",
+ "type": "int"
+ },
+ {
+ "name": "mbps",
+ "type": "number"
+ },
+ {
+ "name": "dirty-sync-count",
+ "type": "int"
+ },
+ {
+ "name": "postcopy-requests",
+ "type": "int"
+ },
+ {
+ "name": "page-size",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "259",
+ "members": [
+ {
+ "name": "cache-size",
+ "type": "int"
+ },
+ {
+ "name": "bytes",
+ "type": "int"
+ },
+ {
+ "name": "pages",
+ "type": "int"
+ },
+ {
+ "name": "cache-miss",
+ "type": "int"
+ },
+ {
+ "name": "cache-miss-rate",
+ "type": "number"
+ },
+ {
+ "name": "overflow",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "260",
+ "meta-type": "enum",
+ "values": [
+ "xbzrle",
+ "rdma-pin-all",
+ "auto-converge",
+ "zero-blocks",
+ "compress",
+ "events",
+ "postcopy-ram",
+ "x-colo",
+ "release-ram",
+ "block",
+ "return-path"
+ ]
+ },
+ {
+ "name": "261",
+ "members": [
+ {
+ "name": "filename",
+ "type": "str"
+ },
+ {
+ "name": "format",
+ "type": "str"
+ },
+ {
+ "name": "dirty-flag",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "actual-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "virtual-size",
+ "type": "int"
+ },
+ {
+ "name": "cluster-size",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "encrypted",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "compressed",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "backing-filename",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "full-backing-filename",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "backing-filename-format",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "snapshots",
+ "default": null,
+ "type": "[57]"
+ },
+ {
+ "name": "backing-image",
+ "default": null,
+ "type": "261"
+ },
+ {
+ "name": "format-specific",
+ "default": null,
+ "type": "335"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "262",
+ "members": [
+ {
+ "name": "writeback",
+ "type": "bool"
+ },
+ {
+ "name": "direct",
+ "type": "bool"
+ },
+ {
+ "name": "no-flush",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[263]",
+ "element-type": "263",
+ "meta-type": "array"
+ },
+ {
+ "name": "263",
+ "members": [
+ {
+ "name": "bus",
+ "type": "int"
+ },
+ {
+ "name": "slot",
+ "type": "int"
+ },
+ {
+ "name": "function",
+ "type": "int"
+ },
+ {
+ "name": "class_info",
+ "type": "336"
+ },
+ {
+ "name": "id",
+ "type": "337"
+ },
+ {
+ "name": "irq",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "qdev_id",
+ "type": "str"
+ },
+ {
+ "name": "pci_bridge",
+ "default": null,
+ "type": "338"
+ },
+ {
+ "name": "regions",
+ "type": "[339]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "264",
+ "meta-type": "enum",
+ "values": [
+ "builtin",
+ "enum",
+ "array",
+ "object",
+ "alternate",
+ "command",
+ "event"
+ ]
+ },
+ {
+ "name": "265",
+ "members": [
+ {
+ "name": "json-type",
+ "type": "340"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "266",
+ "members": [
+ {
+ "name": "values",
+ "type": "[str]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "267",
+ "members": [
+ {
+ "name": "element-type",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "268",
+ "members": [
+ {
+ "name": "members",
+ "type": "[341]"
+ },
+ {
+ "name": "tag",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "variants",
+ "default": null,
+ "type": "[342]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "269",
+ "members": [
+ {
+ "name": "members",
+ "type": "[343]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "270",
+ "members": [
+ {
+ "name": "arg-type",
+ "type": "str"
+ },
+ {
+ "name": "ret-type",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "271",
+ "members": [
+ {
+ "name": "arg-type",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "272",
+ "members": [
+ {
+ "name": "priority",
+ "type": "int"
+ },
+ {
+ "name": "tbl-id",
+ "type": "int"
+ },
+ {
+ "name": "in-pport",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "tunnel-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "vlan-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "eth-type",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "eth-src",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "eth-dst",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "ip-proto",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "ip-tos",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "ip-dst",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "273",
+ "members": [
+ {
+ "name": "in-pport",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "tunnel-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "vlan-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "eth-src",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "eth-dst",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "ip-proto",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "ip-tos",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "274",
+ "members": [
+ {
+ "name": "goto-tbl",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "group-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "tunnel-lport",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "vlan-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "new-vlan-id",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "out-pport",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "275",
+ "meta-type": "enum",
+ "values": [
+ "half",
+ "full"
+ ]
+ },
+ {
+ "name": "276",
+ "meta-type": "enum",
+ "values": [
+ "off",
+ "on"
+ ]
+ },
+ {
+ "name": "277",
+ "meta-type": "enum",
+ "values": [
+ "normal",
+ "none",
+ "all"
+ ]
+ },
+ {
+ "name": "278",
+ "meta-type": "enum",
+ "values": [
+ "client",
+ "server",
+ "unknown"
+ ]
+ },
+ {
+ "name": "[194]",
+ "element-type": "194",
+ "meta-type": "array"
+ },
+ {
+ "name": "279",
+ "meta-type": "enum",
+ "values": [
+ "debug",
+ "inmigrate",
+ "internal-error",
+ "io-error",
+ "paused",
+ "postmigrate",
+ "prelaunch",
+ "finish-migrate",
+ "restore-vm",
+ "running",
+ "save-vm",
+ "shutdown",
+ "suspended",
+ "watchdog",
+ "guest-panicked",
+ "colo"
+ ]
+ },
+ {
+ "name": "280",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "passthrough",
+ "type": "345"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "344"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "281",
+ "members": [
+ {
+ "name": "major",
+ "type": "int"
+ },
+ {
+ "name": "minor",
+ "type": "int"
+ },
+ {
+ "name": "micro",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "282",
+ "meta-type": "enum",
+ "values": [
+ "ipv4",
+ "ipv6",
+ "unix",
+ "vsock",
+ "unknown"
+ ]
+ },
+ {
+ "name": "[197]",
+ "element-type": "197",
+ "meta-type": "array"
+ },
+ {
+ "name": "[283]",
+ "element-type": "283",
+ "meta-type": "array"
+ },
+ {
+ "name": "283",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "service",
+ "type": "str"
+ },
+ {
+ "name": "family",
+ "type": "282"
+ },
+ {
+ "name": "websocket",
+ "type": "bool"
+ },
+ {
+ "name": "auth",
+ "type": "284"
+ },
+ {
+ "name": "vencrypt",
+ "default": null,
+ "type": "285"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "284",
+ "meta-type": "enum",
+ "values": [
+ "none",
+ "vnc",
+ "ra2",
+ "ra2ne",
+ "tight",
+ "ultra",
+ "tls",
+ "vencrypt",
+ "sasl"
+ ]
+ },
+ {
+ "name": "285",
+ "meta-type": "enum",
+ "values": [
+ "plain",
+ "tls-none",
+ "x509-none",
+ "tls-vnc",
+ "x509-vnc",
+ "tls-plain",
+ "x509-plain",
+ "tls-sasl",
+ "x509-sasl"
+ ]
+ },
+ {
+ "name": "286",
+ "meta-type": "enum",
+ "values": [
+ "utf8",
+ "base64"
+ ]
+ },
+ {
+ "name": "[287]",
+ "element-type": "287",
+ "meta-type": "array"
+ },
+ {
+ "name": "287",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "number",
+ "type": "347"
+ },
+ {
+ "case": "qcode",
+ "type": "348"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "346"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "288",
+ "meta-type": "enum",
+ "values": [
+ "unavailable",
+ "disabled",
+ "enabled"
+ ]
+ },
+ {
+ "name": "[289]",
+ "element-type": "289",
+ "meta-type": "array"
+ },
+ {
+ "name": "289",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "abort",
+ "type": "350"
+ },
+ {
+ "case": "block-dirty-bitmap-add",
+ "type": "351"
+ },
+ {
+ "case": "block-dirty-bitmap-clear",
+ "type": "352"
+ },
+ {
+ "case": "blockdev-backup",
+ "type": "353"
+ },
+ {
+ "case": "blockdev-snapshot",
+ "type": "354"
+ },
+ {
+ "case": "blockdev-snapshot-internal-sync",
+ "type": "355"
+ },
+ {
+ "case": "blockdev-snapshot-sync",
+ "type": "356"
+ },
+ {
+ "case": "drive-backup",
+ "type": "357"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "349"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "290",
+ "members": [
+ {
+ "name": "completion-mode",
+ "default": null,
+ "type": "358"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "291",
+ "meta-type": "enum",
+ "values": [
+ "hyper-v"
+ ]
+ },
+ {
+ "name": "292",
+ "members": [
+ {
+ "name": "arg1",
+ "type": "int"
+ },
+ {
+ "name": "arg2",
+ "type": "int"
+ },
+ {
+ "name": "arg3",
+ "type": "int"
+ },
+ {
+ "name": "arg4",
+ "type": "int"
+ },
+ {
+ "name": "arg5",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "293",
+ "members": [
+ {
+ "type": "48"
+ },
+ {
+ "type": "str"
+ }
+ ],
+ "meta-type": "alternate"
+ },
+ {
+ "name": "[294]",
+ "element-type": "294",
+ "meta-type": "array"
+ },
+ {
+ "name": "294",
+ "members": [
+ {
+ "name": "event",
+ "type": "359"
+ },
+ {
+ "name": "state",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "errno",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "sector",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "once",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "immediately",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[295]",
+ "element-type": "295",
+ "meta-type": "array"
+ },
+ {
+ "name": "295",
+ "members": [
+ {
+ "name": "event",
+ "type": "359"
+ },
+ {
+ "name": "state",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "new_state",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "296",
+ "meta-type": "enum",
+ "values": [
+ "auto",
+ "on",
+ "off"
+ ]
+ },
+ {
+ "name": "297",
+ "meta-type": "enum",
+ "values": [
+ "threads",
+ "native"
+ ]
+ },
+ {
+ "name": "[298]",
+ "element-type": "298",
+ "meta-type": "array"
+ },
+ {
+ "name": "298",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "inet",
+ "type": "309"
+ },
+ {
+ "case": "unix",
+ "type": "361"
+ },
+ {
+ "case": "vsock",
+ "type": "362"
+ },
+ {
+ "case": "fd",
+ "type": "363"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "360"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "299",
+ "meta-type": "enum",
+ "values": [
+ "tcp",
+ "iser"
+ ]
+ },
+ {
+ "name": "300",
+ "meta-type": "enum",
+ "values": [
+ "crc32c",
+ "none",
+ "crc32c-none",
+ "none-crc32c"
+ ]
+ },
+ {
+ "name": "301",
+ "members": [
+ {
+ "name": "type",
+ "type": "364"
+ },
+ {
+ "name": "host",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "302",
+ "members": [
+ {
+ "type": "48"
+ },
+ {
+ "type": "str"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "meta-type": "alternate"
+ },
+ {
+ "name": "303",
+ "members": [
+ {
+ "type": "365"
+ },
+ {
+ "type": "366"
+ }
+ ],
+ "meta-type": "alternate"
+ },
+ {
+ "name": "304",
+ "tag": "format",
+ "variants": [
+ {
+ "case": "aes",
+ "type": "368"
+ },
+ {
+ "case": "luks",
+ "type": "369"
+ }
+ ],
+ "members": [
+ {
+ "name": "format",
+ "type": "367"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "305",
+ "tag": "format",
+ "variants": [
+ {
+ "case": "aes",
+ "type": "368"
+ }
+ ],
+ "members": [
+ {
+ "name": "format",
+ "type": "370"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[293]",
+ "element-type": "293",
+ "meta-type": "array"
+ },
+ {
+ "name": "306",
+ "meta-type": "enum",
+ "values": [
+ "quorum",
+ "fifo"
+ ]
+ },
+ {
+ "name": "[307]",
+ "element-type": "307",
+ "meta-type": "array"
+ },
+ {
+ "name": "307",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "308",
+ "meta-type": "enum",
+ "values": [
+ "primary",
+ "secondary"
+ ]
+ },
+ {
+ "name": "309",
+ "members": [
+ {
+ "name": "host",
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "type": "str"
+ },
+ {
+ "name": "numeric",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "to",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "ipv4",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "ipv6",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "310",
+ "meta-type": "enum",
+ "values": [
+ "file",
+ "serial",
+ "parallel",
+ "pipe",
+ "socket",
+ "udp",
+ "pty",
+ "null",
+ "mux",
+ "msmouse",
+ "wctablet",
+ "braille",
+ "testdev",
+ "stdio",
+ "console",
+ "spicevmc",
+ "spiceport",
+ "vc",
+ "ringbuf",
+ "memory"
+ ]
+ },
+ {
+ "name": "311",
+ "members": [
+ {
+ "name": "data",
+ "type": "371"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "312",
+ "members": [
+ {
+ "name": "data",
+ "type": "372"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "313",
+ "members": [
+ {
+ "name": "data",
+ "type": "373"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "314",
+ "members": [
+ {
+ "name": "data",
+ "type": "374"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "315",
+ "members": [
+ {
+ "name": "data",
+ "type": "375"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "316",
+ "members": [
+ {
+ "name": "data",
+ "type": "376"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "317",
+ "members": [
+ {
+ "name": "data",
+ "type": "377"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "318",
+ "members": [
+ {
+ "name": "data",
+ "type": "378"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "319",
+ "members": [
+ {
+ "name": "data",
+ "type": "379"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "320",
+ "members": [
+ {
+ "name": "data",
+ "type": "380"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "321",
+ "members": [
+ {
+ "name": "data",
+ "type": "381"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "322",
+ "meta-type": "enum",
+ "values": [
+ "key",
+ "btn",
+ "rel",
+ "abs"
+ ]
+ },
+ {
+ "name": "323",
+ "members": [
+ {
+ "name": "data",
+ "type": "382"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "324",
+ "members": [
+ {
+ "name": "data",
+ "type": "383"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "325",
+ "members": [
+ {
+ "name": "data",
+ "type": "384"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "null",
+ "json-type": "null",
+ "meta-type": "builtin"
+ },
+ {
+ "name": "326",
+ "meta-type": "enum",
+ "values": [
+ "inet",
+ "unix",
+ "vsock",
+ "fd"
+ ]
+ },
+ {
+ "name": "327",
+ "members": [
+ {
+ "name": "data",
+ "type": "309"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "328",
+ "members": [
+ {
+ "name": "data",
+ "type": "361"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "329",
+ "members": [
+ {
+ "name": "data",
+ "type": "362"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "330",
+ "members": [
+ {
+ "name": "data",
+ "type": "363"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "331",
+ "meta-type": "enum",
+ "values": [
+ "active",
+ "disabled",
+ "frozen"
+ ]
+ },
+ {
+ "name": "[332]",
+ "element-type": "332",
+ "meta-type": "array"
+ },
+ {
+ "name": "332",
+ "members": [
+ {
+ "name": "interval_length",
+ "type": "int"
+ },
+ {
+ "name": "min_rd_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "max_rd_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "avg_rd_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "min_wr_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "max_wr_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "avg_wr_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "min_flush_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "max_flush_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "avg_flush_latency_ns",
+ "type": "int"
+ },
+ {
+ "name": "avg_rd_queue_depth",
+ "type": "number"
+ },
+ {
+ "name": "avg_wr_queue_depth",
+ "type": "number"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "333",
+ "meta-type": "enum",
+ "values": [
+ "string",
+ "boolean",
+ "number",
+ "size"
+ ]
+ },
+ {
+ "name": "334",
+ "members": [
+ {
+ "name": "id",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "addr",
+ "type": "int"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "slot",
+ "type": "int"
+ },
+ {
+ "name": "node",
+ "type": "int"
+ },
+ {
+ "name": "memdev",
+ "type": "str"
+ },
+ {
+ "name": "hotplugged",
+ "type": "bool"
+ },
+ {
+ "name": "hotpluggable",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[57]",
+ "element-type": "57",
+ "meta-type": "array"
+ },
+ {
+ "name": "335",
+ "tag": "type",
+ "variants": [
+ {
+ "case": "qcow2",
+ "type": "386"
+ },
+ {
+ "case": "vmdk",
+ "type": "387"
+ },
+ {
+ "case": "luks",
+ "type": "388"
+ }
+ ],
+ "members": [
+ {
+ "name": "type",
+ "type": "385"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "336",
+ "members": [
+ {
+ "name": "desc",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "class",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "337",
+ "members": [
+ {
+ "name": "device",
+ "type": "int"
+ },
+ {
+ "name": "vendor",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "338",
+ "members": [
+ {
+ "name": "bus",
+ "type": "389"
+ },
+ {
+ "name": "devices",
+ "default": null,
+ "type": "[263]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[339]",
+ "element-type": "339",
+ "meta-type": "array"
+ },
+ {
+ "name": "339",
+ "members": [
+ {
+ "name": "bar",
+ "type": "int"
+ },
+ {
+ "name": "type",
+ "type": "str"
+ },
+ {
+ "name": "address",
+ "type": "int"
+ },
+ {
+ "name": "size",
+ "type": "int"
+ },
+ {
+ "name": "prefetch",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "mem_type_64",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "340",
+ "meta-type": "enum",
+ "values": [
+ "string",
+ "number",
+ "int",
+ "boolean",
+ "null",
+ "object",
+ "array",
+ "value"
+ ]
+ },
+ {
+ "name": "[341]",
+ "element-type": "341",
+ "meta-type": "array"
+ },
+ {
+ "name": "341",
+ "members": [
+ {
+ "name": "name",
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "type": "str"
+ },
+ {
+ "name": "default",
+ "default": null,
+ "type": "any"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[342]",
+ "element-type": "342",
+ "meta-type": "array"
+ },
+ {
+ "name": "342",
+ "members": [
+ {
+ "name": "case",
+ "type": "str"
+ },
+ {
+ "name": "type",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[343]",
+ "element-type": "343",
+ "meta-type": "array"
+ },
+ {
+ "name": "343",
+ "members": [
+ {
+ "name": "type",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "344",
+ "meta-type": "enum",
+ "values": [
+ "passthrough"
+ ]
+ },
+ {
+ "name": "345",
+ "members": [
+ {
+ "name": "data",
+ "type": "390"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "346",
+ "meta-type": "enum",
+ "values": [
+ "number",
+ "qcode"
+ ]
+ },
+ {
+ "name": "347",
+ "members": [
+ {
+ "name": "data",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "348",
+ "members": [
+ {
+ "name": "data",
+ "type": "391"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "349",
+ "meta-type": "enum",
+ "values": [
+ "abort",
+ "block-dirty-bitmap-add",
+ "block-dirty-bitmap-clear",
+ "blockdev-backup",
+ "blockdev-snapshot",
+ "blockdev-snapshot-internal-sync",
+ "blockdev-snapshot-sync",
+ "drive-backup"
+ ]
+ },
+ {
+ "name": "350",
+ "members": [
+ {
+ "name": "data",
+ "type": "392"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "351",
+ "members": [
+ {
+ "name": "data",
+ "type": "36"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "352",
+ "members": [
+ {
+ "name": "data",
+ "type": "37"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "353",
+ "members": [
+ {
+ "name": "data",
+ "type": "49"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "354",
+ "members": [
+ {
+ "name": "data",
+ "type": "55"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "355",
+ "members": [
+ {
+ "name": "data",
+ "type": "58"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "356",
+ "members": [
+ {
+ "name": "data",
+ "type": "59"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "357",
+ "members": [
+ {
+ "name": "data",
+ "type": "76"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "358",
+ "meta-type": "enum",
+ "values": [
+ "individual",
+ "grouped"
+ ]
+ },
+ {
+ "name": "359",
+ "meta-type": "enum",
+ "values": [
+ "l1_update",
+ "l1_grow_alloc_table",
+ "l1_grow_write_table",
+ "l1_grow_activate_table",
+ "l2_load",
+ "l2_update",
+ "l2_update_compressed",
+ "l2_alloc_cow_read",
+ "l2_alloc_write",
+ "read_aio",
+ "read_backing_aio",
+ "read_compressed",
+ "write_aio",
+ "write_compressed",
+ "vmstate_load",
+ "vmstate_save",
+ "cow_read",
+ "cow_write",
+ "reftable_load",
+ "reftable_grow",
+ "reftable_update",
+ "refblock_load",
+ "refblock_update",
+ "refblock_update_part",
+ "refblock_alloc",
+ "refblock_alloc_hookup",
+ "refblock_alloc_write",
+ "refblock_alloc_write_blocks",
+ "refblock_alloc_write_table",
+ "refblock_alloc_switch_table",
+ "cluster_alloc",
+ "cluster_alloc_bytes",
+ "cluster_free",
+ "flush_to_os",
+ "flush_to_disk",
+ "pwritev_rmw_head",
+ "pwritev_rmw_after_head",
+ "pwritev_rmw_tail",
+ "pwritev_rmw_after_tail",
+ "pwritev",
+ "pwritev_zero",
+ "pwritev_done",
+ "empty_image_prepare"
+ ]
+ },
+ {
+ "name": "360",
+ "meta-type": "enum",
+ "values": [
+ "inet",
+ "unix",
+ "vsock",
+ "fd"
+ ]
+ },
+ {
+ "name": "361",
+ "members": [
+ {
+ "name": "path",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "362",
+ "members": [
+ {
+ "name": "cid",
+ "type": "str"
+ },
+ {
+ "name": "port",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "363",
+ "members": [
+ {
+ "name": "str",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "364",
+ "meta-type": "enum",
+ "values": [
+ "inet"
+ ]
+ },
+ {
+ "name": "365",
+ "members": [
+ {
+ "name": "template",
+ "default": null,
+ "type": "366"
+ },
+ {
+ "name": "main-header",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "active-l1",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "active-l2",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "refcount-table",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "refcount-block",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "snapshot-table",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "inactive-l1",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "inactive-l2",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "366",
+ "meta-type": "enum",
+ "values": [
+ "none",
+ "constant",
+ "cached",
+ "all"
+ ]
+ },
+ {
+ "name": "367",
+ "meta-type": "enum",
+ "values": [
+ "aes",
+ "luks"
+ ]
+ },
+ {
+ "name": "368",
+ "members": [
+ {
+ "name": "key-secret",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "369",
+ "members": [
+ {
+ "name": "key-secret",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "370",
+ "meta-type": "enum",
+ "values": [
+ "aes"
+ ]
+ },
+ {
+ "name": "371",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "in",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "out",
+ "type": "str"
+ },
+ {
+ "name": "append",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "372",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "device",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "373",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "addr",
+ "type": "236"
+ },
+ {
+ "name": "tls-creds",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "server",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "wait",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "nodelay",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "telnet",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "tn3270",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "reconnect",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "374",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "remote",
+ "type": "236"
+ },
+ {
+ "name": "local",
+ "default": null,
+ "type": "236"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "375",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "376",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "chardev",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "377",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "signal",
+ "default": null,
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "378",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "type",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "379",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "fqdn",
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "380",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "width",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "height",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "cols",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "rows",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "381",
+ "members": [
+ {
+ "name": "logfile",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "logappend",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "size",
+ "default": null,
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "382",
+ "members": [
+ {
+ "name": "key",
+ "type": "287"
+ },
+ {
+ "name": "down",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "383",
+ "members": [
+ {
+ "name": "button",
+ "type": "393"
+ },
+ {
+ "name": "down",
+ "type": "bool"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "384",
+ "members": [
+ {
+ "name": "axis",
+ "type": "394"
+ },
+ {
+ "name": "value",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "385",
+ "meta-type": "enum",
+ "values": [
+ "qcow2",
+ "vmdk",
+ "luks"
+ ]
+ },
+ {
+ "name": "386",
+ "members": [
+ {
+ "name": "data",
+ "type": "395"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "387",
+ "members": [
+ {
+ "name": "data",
+ "type": "396"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "388",
+ "members": [
+ {
+ "name": "data",
+ "type": "397"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "389",
+ "members": [
+ {
+ "name": "number",
+ "type": "int"
+ },
+ {
+ "name": "secondary",
+ "type": "int"
+ },
+ {
+ "name": "subordinate",
+ "type": "int"
+ },
+ {
+ "name": "io_range",
+ "type": "398"
+ },
+ {
+ "name": "memory_range",
+ "type": "398"
+ },
+ {
+ "name": "prefetchable_range",
+ "type": "398"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "390",
+ "members": [
+ {
+ "name": "path",
+ "default": null,
+ "type": "str"
+ },
+ {
+ "name": "cancel-path",
+ "default": null,
+ "type": "str"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "391",
+ "meta-type": "enum",
+ "values": [
+ "unmapped",
+ "shift",
+ "shift_r",
+ "alt",
+ "alt_r",
+ "ctrl",
+ "ctrl_r",
+ "menu",
+ "esc",
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9",
+ "0",
+ "minus",
+ "equal",
+ "backspace",
+ "tab",
+ "q",
+ "w",
+ "e",
+ "r",
+ "t",
+ "y",
+ "u",
+ "i",
+ "o",
+ "p",
+ "bracket_left",
+ "bracket_right",
+ "ret",
+ "a",
+ "s",
+ "d",
+ "f",
+ "g",
+ "h",
+ "j",
+ "k",
+ "l",
+ "semicolon",
+ "apostrophe",
+ "grave_accent",
+ "backslash",
+ "z",
+ "x",
+ "c",
+ "v",
+ "b",
+ "n",
+ "m",
+ "comma",
+ "dot",
+ "slash",
+ "asterisk",
+ "spc",
+ "caps_lock",
+ "f1",
+ "f2",
+ "f3",
+ "f4",
+ "f5",
+ "f6",
+ "f7",
+ "f8",
+ "f9",
+ "f10",
+ "num_lock",
+ "scroll_lock",
+ "kp_divide",
+ "kp_multiply",
+ "kp_subtract",
+ "kp_add",
+ "kp_enter",
+ "kp_decimal",
+ "sysrq",
+ "kp_0",
+ "kp_1",
+ "kp_2",
+ "kp_3",
+ "kp_4",
+ "kp_5",
+ "kp_6",
+ "kp_7",
+ "kp_8",
+ "kp_9",
+ "less",
+ "f11",
+ "f12",
+ "print",
+ "home",
+ "pgup",
+ "pgdn",
+ "end",
+ "left",
+ "up",
+ "down",
+ "right",
+ "insert",
+ "delete",
+ "stop",
+ "again",
+ "props",
+ "undo",
+ "front",
+ "copy",
+ "open",
+ "paste",
+ "find",
+ "cut",
+ "lf",
+ "help",
+ "meta_l",
+ "meta_r",
+ "compose",
+ "pause",
+ "ro",
+ "hiragana",
+ "henkan",
+ "yen",
+ "kp_comma",
+ "kp_equals",
+ "power",
+ "sleep",
+ "wake",
+ "audionext",
+ "audioprev",
+ "audiostop",
+ "audioplay",
+ "audiomute",
+ "volumeup",
+ "volumedown",
+ "mediaselect",
+ "mail",
+ "calculator",
+ "computer",
+ "ac_home",
+ "ac_back",
+ "ac_forward",
+ "ac_refresh",
+ "ac_bookmarks"
+ ]
+ },
+ {
+ "name": "392",
+ "members": [
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "393",
+ "meta-type": "enum",
+ "values": [
+ "left",
+ "middle",
+ "right",
+ "wheel-up",
+ "wheel-down",
+ "side",
+ "extra"
+ ]
+ },
+ {
+ "name": "394",
+ "meta-type": "enum",
+ "values": [
+ "x",
+ "y"
+ ]
+ },
+ {
+ "name": "395",
+ "members": [
+ {
+ "name": "compat",
+ "type": "str"
+ },
+ {
+ "name": "lazy-refcounts",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "corrupt",
+ "default": null,
+ "type": "bool"
+ },
+ {
+ "name": "refcount-bits",
+ "type": "int"
+ },
+ {
+ "name": "encrypt",
+ "default": null,
+ "type": "399"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "396",
+ "members": [
+ {
+ "name": "create-type",
+ "type": "str"
+ },
+ {
+ "name": "cid",
+ "type": "int"
+ },
+ {
+ "name": "parent-cid",
+ "type": "int"
+ },
+ {
+ "name": "extents",
+ "type": "[261]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "397",
+ "members": [
+ {
+ "name": "cipher-alg",
+ "type": "400"
+ },
+ {
+ "name": "cipher-mode",
+ "type": "401"
+ },
+ {
+ "name": "ivgen-alg",
+ "type": "402"
+ },
+ {
+ "name": "ivgen-hash-alg",
+ "default": null,
+ "type": "403"
+ },
+ {
+ "name": "hash-alg",
+ "type": "403"
+ },
+ {
+ "name": "payload-offset",
+ "type": "int"
+ },
+ {
+ "name": "master-key-iters",
+ "type": "int"
+ },
+ {
+ "name": "uuid",
+ "type": "str"
+ },
+ {
+ "name": "slots",
+ "type": "[404]"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "398",
+ "members": [
+ {
+ "name": "base",
+ "type": "int"
+ },
+ {
+ "name": "limit",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "399",
+ "tag": "format",
+ "variants": [
+ {
+ "case": "aes",
+ "type": "405"
+ },
+ {
+ "case": "luks",
+ "type": "397"
+ }
+ ],
+ "members": [
+ {
+ "name": "format",
+ "type": "367"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "[261]",
+ "element-type": "261",
+ "meta-type": "array"
+ },
+ {
+ "name": "400",
+ "meta-type": "enum",
+ "values": [
+ "aes-128",
+ "aes-192",
+ "aes-256",
+ "des-rfb",
+ "3des",
+ "cast5-128",
+ "serpent-128",
+ "serpent-192",
+ "serpent-256",
+ "twofish-128",
+ "twofish-192",
+ "twofish-256"
+ ]
+ },
+ {
+ "name": "401",
+ "meta-type": "enum",
+ "values": [
+ "ecb",
+ "cbc",
+ "xts",
+ "ctr"
+ ]
+ },
+ {
+ "name": "402",
+ "meta-type": "enum",
+ "values": [
+ "plain",
+ "plain64",
+ "essiv"
+ ]
+ },
+ {
+ "name": "403",
+ "meta-type": "enum",
+ "values": [
+ "md5",
+ "sha1",
+ "sha224",
+ "sha256",
+ "sha384",
+ "sha512",
+ "ripemd160"
+ ]
+ },
+ {
+ "name": "[404]",
+ "element-type": "404",
+ "meta-type": "array"
+ },
+ {
+ "name": "404",
+ "members": [
+ {
+ "name": "active",
+ "type": "bool"
+ },
+ {
+ "name": "iters",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "stripes",
+ "default": null,
+ "type": "int"
+ },
+ {
+ "name": "key-offset",
+ "type": "int"
+ }
+ ],
+ "meta-type": "object"
+ },
+ {
+ "name": "405",
+ "members": [
+ ],
+ "meta-type": "object"
+ }
+ ],
+ "id": "libvirt-47"
+}
+
+{
+ "return": {
+ "model": {
+ "name": "z14-base",
+ "props": {
+ "aen": true,
+ "cmmnt": true,
+ "aefsi": true,
+ "mepoch": true,
+ "msa8": true,
+ "msa7": true,
+ "msa6": true,
+ "msa5": true,
+ "msa4": true,
+ "msa3": true,
+ "msa2": true,
+ "msa1": true,
+ "sthyi": true,
+ "edat": true,
+ "ri": true,
+ "edat2": true,
+ "vx": true,
+ "ipter": true,
+ "vxeh": true,
+ "vxpd": true,
+ "esop": true,
+ "iep": true,
+ "cte": true,
+ "ais": true,
+ "gs": true,
+ "zpci": true,
+ "sea_esop2": true,
+ "te": true,
+ "cmm": true
+ }
+ }
+ },
+ "id": "libvirt-48"
+}
+
+{
+ "id": "libvirt-49",
+ "error": {
+ "class": "GenericError",
+ "desc": "Property '.migratable' not found"
+ }
+}
+
+{
+ "return": {
+ },
+ "id": "libvirt-1"
+}
+
+{
+ "return": [
+ {
+ "name": "z10EC-base",
+ "typename": "z10EC-base-s390-cpu",
+ "unavailable-features": [
+ "dateh2",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "csske",
+ "srs",
+ "asnlxr",
+ "msa",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z9EC-base",
+ "typename": "z9EC-base-s390-cpu",
+ "unavailable-features": [
+ "dateh2",
+ "hfpue",
+ "hfpm",
+ "srs",
+ "asnlxr",
+ "msa",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z196.2-base",
+ "typename": "z196.2-base-s390-cpu",
+ "unavailable-features": [
+ "dateh2",
+ "iacc2",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "sprogp",
+ "fpe",
+ "emon",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "csske",
+ "srs",
+ "asnlxr",
+ "msa",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z900-base",
+ "typename": "z900-base-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z990",
+ "typename": "z990-s390-cpu",
+ "unavailable-features": [
+ "hfpm",
+ "msa",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z900.2-base",
+ "typename": "z900.2-base-s390-cpu",
+ "unavailable-features": [
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "host",
+ "typename": "host-s390-cpu",
+ "static": false,
+ "migration-safe": false
+ },
+ {
+ "name": "z900.3",
+ "typename": "z900.3-s390-cpu",
+ "unavailable-features": [
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z114",
+ "typename": "z114-s390-cpu",
+ "unavailable-features": [
+ "cmm",
+ "dateh2",
+ "aefsi",
+ "sthyi",
+ "iacc2",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "sprogp",
+ "fpe",
+ "emon",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "ipter",
+ "csske",
+ "srs",
+ "edat",
+ "asnlxr",
+ "msa4",
+ "msa3",
+ "msa2",
+ "msa1",
+ "msa",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z890-base",
+ "typename": "z890-base-s390-cpu",
+ "unavailable-features": [
+ "hfpm",
+ "msa",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z13.2-base",
+ "typename": "z13.2-base-s390-cpu",
+ "unavailable-features": [
+ "dateh2",
+ "dfppc",
+ "iacc2",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "sprogp",
+ "fpe",
+ "emon",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "csske",
+ "srs",
+ "asnlxr",
+ "msa",
+ "gen13ptff",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "zEC12.2",
+ "typename": "zEC12.2-s390-cpu",
+ "unavailable-features": [
+ "cmm",
+ "dateh2",
+ "esop",
+ "sea_esop2",
+ "edat2",
+ "aefsi",
+ "sthyi",
+ "te",
+ "aen",
+ "zpci",
+ "ri",
+ "iacc2",
+ "cte",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "sprogp",
+ "fpe",
+ "emon",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "ipter",
+ "csske",
+ "srs",
+ "edat",
+ "asnlxr",
+ "msa4",
+ "msa3",
+ "msa2",
+ "msa1",
+ "msa",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z10BC",
+ "typename": "z10BC-s390-cpu",
+ "unavailable-features": [
+ "cmm",
+ "dateh2",
+ "sthyi",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "csske",
+ "srs",
+ "edat",
+ "asnlxr",
+ "msa2",
+ "msa1",
+ "msa",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z900.2",
+ "typename": "z900.2-s390-cpu",
+ "unavailable-features": [
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z10BC.2",
+ "typename": "z10BC.2-s390-cpu",
+ "unavailable-features": [
+ "cmm",
+ "dateh2",
+ "sthyi",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "csske",
+ "srs",
+ "edat",
+ "asnlxr",
+ "msa2",
+ "msa1",
+ "msa",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z196",
+ "typename": "z196-s390-cpu",
+ "unavailable-features": [
+ "cmm",
+ "dateh2",
+ "aefsi",
+ "sthyi",
+ "iacc2",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "sprogp",
+ "fpe",
+ "emon",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "ipter",
+ "csske",
+ "srs",
+ "edat",
+ "asnlxr",
+ "msa4",
+ "msa3",
+ "msa2",
+ "msa1",
+ "msa",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z9EC",
+ "typename": "z9EC-s390-cpu",
+ "unavailable-features": [
+ "cmm",
+ "dateh2",
+ "sthyi",
+ "hfpue",
+ "hfpm",
+ "srs",
+ "asnlxr",
+ "msa1",
+ "msa",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z990-base",
+ "typename": "z990-base-s390-cpu",
+ "unavailable-features": [
+ "hfpm",
+ "msa",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z10EC.3",
+ "typename": "z10EC.3-s390-cpu",
+ "unavailable-features": [
+ "cmm",
+ "dateh2",
+ "sthyi",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "csske",
+ "srs",
+ "edat",
+ "asnlxr",
+ "msa2",
+ "msa1",
+ "msa",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z900",
+ "typename": "z900-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z9EC.3-base",
+ "typename": "z9EC.3-base-s390-cpu",
+ "unavailable-features": [
+ "dateh2",
+ "hfpue",
+ "hfpm",
+ "srs",
+ "asnlxr",
+ "msa",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.5-base",
+ "typename": "z990.5-base-s390-cpu",
+ "unavailable-features": [
+ "hfpm",
+ "msa",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z10EC.2",
+ "typename": "z10EC.2-s390-cpu",
+ "unavailable-features": [
+ "cmm",
+ "dateh2",
+ "sthyi",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "csske",
+ "srs",
+ "edat",
+ "asnlxr",
+ "msa2",
+ "msa1",
+ "msa",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z9BC.2",
+ "typename": "z9BC.2-s390-cpu",
+ "unavailable-features": [
+ "cmm",
+ "dateh2",
+ "sthyi",
+ "hfpue",
+ "hfpm",
+ "srs",
+ "asnlxr",
+ "msa1",
+ "msa",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z10EC",
+ "typename": "z10EC-s390-cpu",
+ "unavailable-features": [
+ "cmm",
+ "dateh2",
+ "sthyi",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "csske",
+ "srs",
+ "edat",
+ "asnlxr",
+ "msa2",
+ "msa1",
+ "msa",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.3-base",
+ "typename": "z990.3-base-s390-cpu",
+ "unavailable-features": [
+ "hfpm",
+ "msa",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z14",
+ "typename": "z14-s390-cpu",
+ "unavailable-features": [
+ "cmm",
+ "dateh2",
+ "esop",
+ "vxeh",
+ "vxpd",
+ "gs",
+ "sea_esop2",
+ "iep",
+ "vx",
+ "dfppc",
+ "edat2",
+ "aefsi",
+ "sthyi",
+ "te",
+ "ais",
+ "aen",
+ "zpci",
+ "ri",
+ "tsi",
+ "sema",
+ "minste2",
+ "eec",
+ "iacc2",
+ "cte",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "sprogp",
+ "opc",
+ "fpe",
+ "emon",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "ipter",
+ "csske",
+ "srs",
+ "edat",
+ "asnlxr",
+ "msa8",
+ "msa7",
+ "msa6",
+ "msa5",
+ "msa4",
+ "msa3",
+ "msa2",
+ "msa1",
+ "msa",
+ "gen13ptff",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z13s",
+ "typename": "z13s-s390-cpu",
+ "unavailable-features": [
+ "cmm",
+ "dateh2",
+ "esop",
+ "sea_esop2",
+ "vx",
+ "dfppc",
+ "edat2",
+ "aefsi",
+ "sthyi",
+ "te",
+ "aen",
+ "zpci",
+ "ri",
+ "iacc2",
+ "cte",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "sprogp",
+ "fpe",
+ "emon",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "ipter",
+ "csske",
+ "srs",
+ "edat",
+ "asnlxr",
+ "msa5",
+ "msa4",
+ "msa3",
+ "msa2",
+ "msa1",
+ "msa",
+ "gen13ptff",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z10EC.3-base",
+ "typename": "z10EC.3-base-s390-cpu",
+ "unavailable-features": [
+ "dateh2",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "csske",
+ "srs",
+ "asnlxr",
+ "msa",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "zEC12.2-base",
+ "typename": "zEC12.2-base-s390-cpu",
+ "unavailable-features": [
+ "dateh2",
+ "iacc2",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "sprogp",
+ "fpe",
+ "emon",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "csske",
+ "srs",
+ "asnlxr",
+ "msa",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z890.3-base",
+ "typename": "z890.3-base-s390-cpu",
+ "unavailable-features": [
+ "hfpm",
+ "msa",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z9EC.3",
+ "typename": "z9EC.3-s390-cpu",
+ "unavailable-features": [
+ "cmm",
+ "dateh2",
+ "sthyi",
+ "hfpue",
+ "hfpm",
+ "srs",
+ "asnlxr",
+ "msa1",
+ "msa",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.5",
+ "typename": "z990.5-s390-cpu",
+ "unavailable-features": [
+ "hfpm",
+ "msa",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z13",
+ "typename": "z13-s390-cpu",
+ "unavailable-features": [
+ "cmm",
+ "dateh2",
+ "esop",
+ "sea_esop2",
+ "vx",
+ "dfppc",
+ "edat2",
+ "aefsi",
+ "sthyi",
+ "te",
+ "aen",
+ "zpci",
+ "ri",
+ "iacc2",
+ "cte",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "sprogp",
+ "fpe",
+ "emon",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "ipter",
+ "csske",
+ "srs",
+ "edat",
+ "asnlxr",
+ "msa5",
+ "msa4",
+ "msa3",
+ "msa2",
+ "msa1",
+ "msa",
+ "gen13ptff",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z13s-base",
+ "typename": "z13s-base-s390-cpu",
+ "unavailable-features": [
+ "dateh2",
+ "dfppc",
+ "iacc2",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "sprogp",
+ "fpe",
+ "emon",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "csske",
+ "srs",
+ "asnlxr",
+ "msa",
+ "gen13ptff",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z14-base",
+ "typename": "z14-base-s390-cpu",
+ "unavailable-features": [
+ "dateh2",
+ "dfppc",
+ "tsi",
+ "sema",
+ "minste2",
+ "eec",
+ "iacc2",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "sprogp",
+ "opc",
+ "fpe",
+ "emon",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "csske",
+ "srs",
+ "asnlxr",
+ "msa",
+ "gen13ptff",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z9EC.2",
+ "typename": "z9EC.2-s390-cpu",
+ "unavailable-features": [
+ "cmm",
+ "dateh2",
+ "sthyi",
+ "hfpue",
+ "hfpm",
+ "srs",
+ "asnlxr",
+ "msa1",
+ "msa",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.4",
+ "typename": "z990.4-s390-cpu",
+ "unavailable-features": [
+ "hfpm",
+ "msa",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "zEC12-base",
+ "typename": "zEC12-base-s390-cpu",
+ "unavailable-features": [
+ "dateh2",
+ "iacc2",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "sprogp",
+ "fpe",
+ "emon",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "csske",
+ "srs",
+ "asnlxr",
+ "msa",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z9EC.2-base",
+ "typename": "z9EC.2-base-s390-cpu",
+ "unavailable-features": [
+ "dateh2",
+ "hfpue",
+ "hfpm",
+ "srs",
+ "asnlxr",
+ "msa",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "zBC12",
+ "typename": "zBC12-s390-cpu",
+ "unavailable-features": [
+ "cmm",
+ "dateh2",
+ "esop",
+ "sea_esop2",
+ "edat2",
+ "aefsi",
+ "sthyi",
+ "te",
+ "aen",
+ "zpci",
+ "ri",
+ "iacc2",
+ "cte",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "sprogp",
+ "fpe",
+ "emon",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "ipter",
+ "csske",
+ "srs",
+ "edat",
+ "asnlxr",
+ "msa4",
+ "msa3",
+ "msa2",
+ "msa1",
+ "msa",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z196.2",
+ "typename": "z196.2-s390-cpu",
+ "unavailable-features": [
+ "cmm",
+ "dateh2",
+ "aefsi",
+ "sthyi",
+ "iacc2",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "sprogp",
+ "fpe",
+ "emon",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "ipter",
+ "csske",
+ "srs",
+ "edat",
+ "asnlxr",
+ "msa4",
+ "msa3",
+ "msa2",
+ "msa1",
+ "msa",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.3",
+ "typename": "z990.3-s390-cpu",
+ "unavailable-features": [
+ "hfpm",
+ "msa",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.2-base",
+ "typename": "z990.2-base-s390-cpu",
+ "unavailable-features": [
+ "hfpm",
+ "msa",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z900.3-base",
+ "typename": "z900.3-base-s390-cpu",
+ "unavailable-features": [
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z890.3",
+ "typename": "z890.3-s390-cpu",
+ "unavailable-features": [
+ "hfpm",
+ "msa",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z10EC.2-base",
+ "typename": "z10EC.2-base-s390-cpu",
+ "unavailable-features": [
+ "dateh2",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "csske",
+ "srs",
+ "asnlxr",
+ "msa",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.2",
+ "typename": "z990.2-s390-cpu",
+ "unavailable-features": [
+ "hfpm",
+ "msa",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z890.2",
+ "typename": "z890.2-s390-cpu",
+ "unavailable-features": [
+ "hfpm",
+ "msa",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "zBC12-base",
+ "typename": "zBC12-base-s390-cpu",
+ "unavailable-features": [
+ "dateh2",
+ "iacc2",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "sprogp",
+ "fpe",
+ "emon",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "csske",
+ "srs",
+ "asnlxr",
+ "msa",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z800-base",
+ "typename": "z800-base-s390-cpu",
+ "unavailable-features": [
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "zEC12",
+ "typename": "zEC12-s390-cpu",
+ "unavailable-features": [
+ "cmm",
+ "dateh2",
+ "esop",
+ "sea_esop2",
+ "edat2",
+ "aefsi",
+ "sthyi",
+ "te",
+ "aen",
+ "zpci",
+ "ri",
+ "iacc2",
+ "cte",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "sprogp",
+ "fpe",
+ "emon",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "ipter",
+ "csske",
+ "srs",
+ "edat",
+ "asnlxr",
+ "msa4",
+ "msa3",
+ "msa2",
+ "msa1",
+ "msa",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z9BC.2-base",
+ "typename": "z9BC.2-base-s390-cpu",
+ "unavailable-features": [
+ "dateh2",
+ "hfpue",
+ "hfpm",
+ "srs",
+ "asnlxr",
+ "msa",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z9BC",
+ "typename": "z9BC-s390-cpu",
+ "unavailable-features": [
+ "cmm",
+ "dateh2",
+ "sthyi",
+ "hfpue",
+ "hfpm",
+ "srs",
+ "asnlxr",
+ "msa1",
+ "msa",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z10BC.2-base",
+ "typename": "z10BC.2-base-s390-cpu",
+ "unavailable-features": [
+ "dateh2",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "csske",
+ "srs",
+ "asnlxr",
+ "msa",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z990.4-base",
+ "typename": "z990.4-base-s390-cpu",
+ "unavailable-features": [
+ "hfpm",
+ "msa",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "qemu",
+ "typename": "qemu-s390-cpu",
+ "unavailable-features": [
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z10BC-base",
+ "typename": "z10BC-base-s390-cpu",
+ "unavailable-features": [
+ "dateh2",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "csske",
+ "srs",
+ "asnlxr",
+ "msa",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z9BC-base",
+ "typename": "z9BC-base-s390-cpu",
+ "unavailable-features": [
+ "dateh2",
+ "hfpue",
+ "hfpm",
+ "srs",
+ "asnlxr",
+ "msa",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z800",
+ "typename": "z800-s390-cpu",
+ "unavailable-features": [
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z890.2-base",
+ "typename": "z890.2-base-s390-cpu",
+ "unavailable-features": [
+ "hfpm",
+ "msa",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z13.2",
+ "typename": "z13.2-s390-cpu",
+ "unavailable-features": [
+ "cmm",
+ "dateh2",
+ "esop",
+ "sea_esop2",
+ "vx",
+ "dfppc",
+ "edat2",
+ "aefsi",
+ "sthyi",
+ "te",
+ "aen",
+ "zpci",
+ "ri",
+ "iacc2",
+ "cte",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "sprogp",
+ "fpe",
+ "emon",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "ipter",
+ "csske",
+ "srs",
+ "edat",
+ "asnlxr",
+ "msa5",
+ "msa4",
+ "msa3",
+ "msa2",
+ "msa1",
+ "msa",
+ "gen13ptff",
+ "tods",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ },
+ {
+ "name": "z114-base",
+ "typename": "z114-base-s390-cpu",
+ "unavailable-features": [
+ "dateh2",
+ "iacc2",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "sprogp",
+ "fpe",
+ "emon",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "csske",
+ "srs",
+ "asnlxr",
+ "msa",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z196-base",
+ "typename": "z196-base-s390-cpu",
+ "unavailable-features": [
+ "dateh2",
+ "iacc2",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "sprogp",
+ "fpe",
+ "emon",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "csske",
+ "srs",
+ "asnlxr",
+ "msa",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z13-base",
+ "typename": "z13-base-s390-cpu",
+ "unavailable-features": [
+ "dateh2",
+ "dfppc",
+ "iacc2",
+ "dfpzc",
+ "cmpsceh",
+ "pfpo",
+ "dfphp",
+ "dfp",
+ "sprogp",
+ "fpe",
+ "emon",
+ "ectg",
+ "parseh",
+ "hfpue",
+ "hfpm",
+ "nonqks",
+ "csske",
+ "srs",
+ "asnlxr",
+ "msa",
+ "gen13ptff",
+ "tods",
+ "type"
+ ],
+ "static": true,
+ "migration-safe": true
+ },
+ {
+ "name": "z890",
+ "typename": "z890-s390-cpu",
+ "unavailable-features": [
+ "hfpm",
+ "msa",
+ "type"
+ ],
+ "static": false,
+ "migration-safe": true
+ }
+ ],
+ "id": "libvirt-2"
+}
+
+{
+ "id": "libvirt-3",
+ "error": {
+ "class": "GenericError",
+ "desc": "The CPU definition 'max' is unknown."
+ }
+}
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml
new file mode 100644
index 0000000..5bea627
--- /dev/null
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml
@@ -0,0 +1,316 @@
+<qemuCaps>
+ <qemuctime>0</qemuctime>
+ <selfctime>0</selfctime>
+ <selfvers>0</selfvers>
+ <usedQMP/>
+ <flag name='kvm'/>
+ <flag name='mem-path'/>
+ <flag name='drive-serial'/>
+ <flag name='monitor-json'/>
+ <flag name='sdl'/>
+ <flag name='netdev'/>
+ <flag name='rtc'/>
+ <flag name='vhost-net'/>
+ <flag name='nodefconfig'/>
+ <flag name='boot-menu'/>
+ <flag name='fsdev'/>
+ <flag name='name-process'/>
+ <flag name='smbios-type'/>
+ <flag name='vga-none'/>
+ <flag name='boot-index'/>
+ <flag name='drive-aio'/>
+ <flag name='chardev-spicevmc'/>
+ <flag name='virtio-tx-alg'/>
+ <flag name='pci-multifunction'/>
+ <flag name='virtio-blk-pci.ioeventfd'/>
+ <flag name='virtio-blk-pci.event_idx'/>
+ <flag name='virtio-net-pci.event_idx'/>
+ <flag name='cache-directsync'/>
+ <flag name='no-shutdown'/>
+ <flag name='cache-unsafe'/>
+ <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='no-user-config'/>
+ <flag name='dump-guest-memory'/>
+ <flag name='balloon-event'/>
+ <flag name='bridge'/>
+ <flag name='virtio-scsi-pci'/>
+ <flag name='blockio'/>
+ <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='device-video-primary'/>
+ <flag name='s390-sclp'/>
+ <flag name='add-fd'/>
+ <flag name='nbd-server'/>
+ <flag name='virtio-rng'/>
+ <flag name='rng-random'/>
+ <flag name='rng-egd'/>
+ <flag name='virtio-ccw'/>
+ <flag name='dtb'/>
+ <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='virtio-mmio'/>
+ <flag name='boot-strict'/>
+ <flag name='spiceport'/>
+ <flag name='host-pci-multidomain'/>
+ <flag name='msg-timestamp'/>
+ <flag name='active-commit'/>
+ <flag name='change-backing-file'/>
+ <flag name='memory-backend-ram'/>
+ <flag name='numa'/>
+ <flag name='memory-backend-file'/>
+ <flag name='splash-timeout'/>
+ <flag name='iothread'/>
+ <flag name='migrate-rdma'/>
+ <flag name='drive-iotune-max'/>
+ <flag name='machine-vmport-opt'/>
+ <flag name='aes-key-wrap'/>
+ <flag name='dea-key-wrap'/>
+ <flag name='vhost-user-multiqueue'/>
+ <flag name='migration-event'/>
+ <flag name='virtio-net'/>
+ <flag name='gic-version'/>
+ <flag name='incoming-defer'/>
+ <flag name='virtio-gpu'/>
+ <flag name='virtio-keyboard'/>
+ <flag name='virtio-mouse'/>
+ <flag name='virtio-tablet'/>
+ <flag name='virtio-input-host'/>
+ <flag name='chardev-file-append'/>
+ <flag name='vserport-change-event'/>
+ <flag name='virtio-balloon-pci.deflate-on-oom'/>
+ <flag name='chardev-logfile'/>
+ <flag name='debug-threads'/>
+ <flag name='secret'/>
+ <flag name='device-tray-moved-event'/>
+ <flag name='virtio-scsi-pci.iothread'/>
+ <flag name='name-guest'/>
+ <flag name='drive-detect-zeroes'/>
+ <flag name='tls-creds-x509'/>
+ <flag name='display'/>
+ <flag name='smm'/>
+ <flag name='virtio-pci-disable-legacy'/>
+ <flag name='query-hotpluggable-cpus'/>
+ <flag name='virtio-net.rx_queue_size'/>
+ <flag name='drive-iotune-max-length'/>
+ <flag name='query-qmp-schema'/>
+ <flag name='gluster.debug_level'/>
+ <flag name='vhost-scsi'/>
+ <flag name='drive-iotune-group'/>
+ <flag name='query-cpu-model-expansion'/>
+ <flag name='virtio-net.host_mtu'/>
+ <flag name='query-cpu-definitions'/>
+ <flag name='block-write-threshold'/>
+ <flag name='query-named-block-nodes'/>
+ <flag name='kernel-irqchip'/>
+ <flag name='kernel-irqchip.split'/>
+ <flag name='virtio.iommu_platform'/>
+ <flag name='virtio.ats'/>
+ <flag name='loadparm'/>
+ <flag name='vnc-multi-servers'/>
+ <flag name='virtio-net.tx_queue_size'/>
+ <flag name='chardev-reconnect'/>
+ <flag name='virtio-gpu.max_outputs'/>
+ <version>2010000</version>
+ <kvmVersion>0</kvmVersion>
+ <package></package>
+ <arch>s390x</arch>
+ <hostCPU type='kvm' model='z14-base' migratability='no'>
+ <property name='aen' type='boolean' value='true'/>
+ <property name='cmmnt' type='boolean' value='true'/>
+ <property name='aefsi' type='boolean' value='true'/>
+ <property name='mepoch' type='boolean' value='true'/>
+ <property name='msa8' type='boolean' value='true'/>
+ <property name='msa7' type='boolean' value='true'/>
+ <property name='msa6' type='boolean' value='true'/>
+ <property name='msa5' type='boolean' value='true'/>
+ <property name='msa4' type='boolean' value='true'/>
+ <property name='msa3' type='boolean' value='true'/>
+ <property name='msa2' type='boolean' value='true'/>
+ <property name='msa1' type='boolean' value='true'/>
+ <property name='sthyi' type='boolean' value='true'/>
+ <property name='edat' type='boolean' value='true'/>
+ <property name='ri' type='boolean' value='true'/>
+ <property name='edat2' type='boolean' value='true'/>
+ <property name='vx' type='boolean' value='true'/>
+ <property name='ipter' type='boolean' value='true'/>
+ <property name='vxeh' type='boolean' value='true'/>
+ <property name='vxpd' type='boolean' value='true'/>
+ <property name='esop' type='boolean' value='true'/>
+ <property name='iep' type='boolean' value='true'/>
+ <property name='cte' type='boolean' value='true'/>
+ <property name='ais' type='boolean' value='true'/>
+ <property name='gs' type='boolean' value='true'/>
+ <property name='zpci' type='boolean' value='true'/>
+ <property name='sea_esop2' type='boolean' value='true'/>
+ <property name='te' type='boolean' value='true'/>
+ <property name='cmm' type='boolean' value='true'/>
+ </hostCPU>
+ <cpu type='kvm' name='z10EC-base' usable='yes'/>
+ <cpu type='kvm' name='z9EC-base' usable='yes'/>
+ <cpu type='kvm' name='z196.2-base' usable='yes'/>
+ <cpu type='kvm' name='z900-base' usable='yes'/>
+ <cpu type='kvm' name='z990' usable='yes'/>
+ <cpu type='kvm' name='z900.2-base' usable='yes'/>
+ <cpu type='kvm' name='host' usable='yes'/>
+ <cpu type='kvm' name='z900.3' usable='yes'/>
+ <cpu type='kvm' name='z114' usable='yes'/>
+ <cpu type='kvm' name='z890-base' usable='yes'/>
+ <cpu type='kvm' name='z13.2-base' usable='yes'/>
+ <cpu type='kvm' name='zEC12.2' usable='yes'/>
+ <cpu type='kvm' name='z10BC' usable='yes'/>
+ <cpu type='kvm' name='z900.2' usable='yes'/>
+ <cpu type='kvm' name='z10BC.2' usable='yes'/>
+ <cpu type='kvm' name='z196' usable='yes'/>
+ <cpu type='kvm' name='z9EC' usable='yes'/>
+ <cpu type='kvm' name='z990-base' usable='yes'/>
+ <cpu type='kvm' name='z10EC.3' usable='yes'/>
+ <cpu type='kvm' name='z900' usable='yes'/>
+ <cpu type='kvm' name='z9EC.3-base' usable='yes'/>
+ <cpu type='kvm' name='z990.5-base' usable='yes'/>
+ <cpu type='kvm' name='z10EC.2' usable='yes'/>
+ <cpu type='kvm' name='z9BC.2' usable='yes'/>
+ <cpu type='kvm' name='z10EC' usable='yes'/>
+ <cpu type='kvm' name='z990.3-base' usable='yes'/>
+ <cpu type='kvm' name='z14' usable='yes'/>
+ <cpu type='kvm' name='z13s' usable='yes'/>
+ <cpu type='kvm' name='z10EC.3-base' usable='yes'/>
+ <cpu type='kvm' name='zEC12.2-base' usable='yes'/>
+ <cpu type='kvm' name='z890.3-base' usable='yes'/>
+ <cpu type='kvm' name='z9EC.3' usable='yes'/>
+ <cpu type='kvm' name='z990.5' usable='yes'/>
+ <cpu type='kvm' name='z13' usable='yes'/>
+ <cpu type='kvm' name='z13s-base' usable='yes'/>
+ <cpu type='kvm' name='z14-base' usable='yes'/>
+ <cpu type='kvm' name='z9EC.2' usable='yes'/>
+ <cpu type='kvm' name='z990.4' usable='yes'/>
+ <cpu type='kvm' name='zEC12-base' usable='yes'/>
+ <cpu type='kvm' name='z9EC.2-base' usable='yes'/>
+ <cpu type='kvm' name='zBC12' usable='yes'/>
+ <cpu type='kvm' name='z196.2' usable='yes'/>
+ <cpu type='kvm' name='z990.3' usable='yes'/>
+ <cpu type='kvm' name='z990.2-base' usable='yes'/>
+ <cpu type='kvm' name='z900.3-base' usable='yes'/>
+ <cpu type='kvm' name='z890.3' usable='yes'/>
+ <cpu type='kvm' name='z10EC.2-base' usable='yes'/>
+ <cpu type='kvm' name='z990.2' usable='yes'/>
+ <cpu type='kvm' name='z890.2' usable='yes'/>
+ <cpu type='kvm' name='zBC12-base' usable='yes'/>
+ <cpu type='kvm' name='z800-base' usable='yes'/>
+ <cpu type='kvm' name='zEC12' usable='yes'/>
+ <cpu type='kvm' name='z9BC.2-base' usable='yes'/>
+ <cpu type='kvm' name='z9BC' usable='yes'/>
+ <cpu type='kvm' name='z10BC.2-base' usable='yes'/>
+ <cpu type='kvm' name='z990.4-base' usable='yes'/>
+ <cpu type='kvm' name='qemu' usable='yes'/>
+ <cpu type='kvm' name='z10BC-base' usable='yes'/>
+ <cpu type='kvm' name='z9BC-base' usable='yes'/>
+ <cpu type='kvm' name='z800' usable='yes'/>
+ <cpu type='kvm' name='z890.2-base' usable='yes'/>
+ <cpu type='kvm' name='z13.2' usable='yes'/>
+ <cpu type='kvm' name='z114-base' usable='yes'/>
+ <cpu type='kvm' name='z196-base' usable='yes'/>
+ <cpu type='kvm' name='z13-base' usable='yes'/>
+ <cpu type='kvm' name='z890' usable='yes'/>
+ <cpu type='tcg' name='z10EC-base' usable='no'/>
+ <cpu type='tcg' name='z9EC-base' usable='no'/>
+ <cpu type='tcg' name='z196.2-base' usable='no'/>
+ <cpu type='tcg' name='z900-base' usable='yes'/>
+ <cpu type='tcg' name='z990' usable='no'/>
+ <cpu type='tcg' name='z900.2-base' usable='no'/>
+ <cpu type='tcg' name='host'/>
+ <cpu type='tcg' name='z900.3' usable='no'/>
+ <cpu type='tcg' name='z114' usable='no'/>
+ <cpu type='tcg' name='z890-base' usable='no'/>
+ <cpu type='tcg' name='z13.2-base' usable='no'/>
+ <cpu type='tcg' name='zEC12.2' usable='no'/>
+ <cpu type='tcg' name='z10BC' usable='no'/>
+ <cpu type='tcg' name='z900.2' usable='no'/>
+ <cpu type='tcg' name='z10BC.2' usable='no'/>
+ <cpu type='tcg' name='z196' usable='no'/>
+ <cpu type='tcg' name='z9EC' usable='no'/>
+ <cpu type='tcg' name='z990-base' usable='no'/>
+ <cpu type='tcg' name='z10EC.3' usable='no'/>
+ <cpu type='tcg' name='z900' usable='yes'/>
+ <cpu type='tcg' name='z9EC.3-base' usable='no'/>
+ <cpu type='tcg' name='z990.5-base' usable='no'/>
+ <cpu type='tcg' name='z10EC.2' usable='no'/>
+ <cpu type='tcg' name='z9BC.2' usable='no'/>
+ <cpu type='tcg' name='z10EC' usable='no'/>
+ <cpu type='tcg' name='z990.3-base' usable='no'/>
+ <cpu type='tcg' name='z14' usable='no'/>
+ <cpu type='tcg' name='z13s' usable='no'/>
+ <cpu type='tcg' name='z10EC.3-base' usable='no'/>
+ <cpu type='tcg' name='zEC12.2-base' usable='no'/>
+ <cpu type='tcg' name='z890.3-base' usable='no'/>
+ <cpu type='tcg' name='z9EC.3' usable='no'/>
+ <cpu type='tcg' name='z990.5' usable='no'/>
+ <cpu type='tcg' name='z13' usable='no'/>
+ <cpu type='tcg' name='z13s-base' usable='no'/>
+ <cpu type='tcg' name='z14-base' usable='no'/>
+ <cpu type='tcg' name='z9EC.2' usable='no'/>
+ <cpu type='tcg' name='z990.4' usable='no'/>
+ <cpu type='tcg' name='zEC12-base' usable='no'/>
+ <cpu type='tcg' name='z9EC.2-base' usable='no'/>
+ <cpu type='tcg' name='zBC12' usable='no'/>
+ <cpu type='tcg' name='z196.2' usable='no'/>
+ <cpu type='tcg' name='z990.3' usable='no'/>
+ <cpu type='tcg' name='z990.2-base' usable='no'/>
+ <cpu type='tcg' name='z900.3-base' usable='no'/>
+ <cpu type='tcg' name='z890.3' usable='no'/>
+ <cpu type='tcg' name='z10EC.2-base' usable='no'/>
+ <cpu type='tcg' name='z990.2' usable='no'/>
+ <cpu type='tcg' name='z890.2' usable='no'/>
+ <cpu type='tcg' name='zBC12-base' usable='no'/>
+ <cpu type='tcg' name='z800-base' usable='no'/>
+ <cpu type='tcg' name='zEC12' usable='no'/>
+ <cpu type='tcg' name='z9BC.2-base' usable='no'/>
+ <cpu type='tcg' name='z9BC' usable='no'/>
+ <cpu type='tcg' name='z10BC.2-base' usable='no'/>
+ <cpu type='tcg' name='z990.4-base' usable='no'/>
+ <cpu type='tcg' name='qemu' usable='yes'/>
+ <cpu type='tcg' name='z10BC-base' usable='no'/>
+ <cpu type='tcg' name='z9BC-base' usable='no'/>
+ <cpu type='tcg' name='z800' usable='no'/>
+ <cpu type='tcg' name='z890.2-base' usable='no'/>
+ <cpu type='tcg' name='z13.2' usable='no'/>
+ <cpu type='tcg' name='z114-base' usable='no'/>
+ <cpu type='tcg' name='z196-base' usable='no'/>
+ <cpu type='tcg' name='z13-base' usable='no'/>
+ <cpu type='tcg' name='z890' usable='no'/>
+ <machine name='s390-ccw-virtio-2.10' alias='s390-ccw-virtio' maxCpus='248'/>
+ <machine name='s390-ccw-virtio-2.7' maxCpus='248'/>
+ <machine name='s390-ccw-virtio-2.6' maxCpus='248'/>
+ <machine name='s390-ccw-virtio-2.5' maxCpus='248'/>
+ <machine name='s390-ccw-virtio-2.4' maxCpus='248'/>
+ <machine name='s390-ccw-virtio-2.9' maxCpus='248'/>
+ <machine name='s390-ccw-virtio-2.8' maxCpus='248'/>
+</qemuCaps>
diff --git a/tests/qemucapabilitiestest.c b/tests/qemucapabilitiestest.c
index 4115bca..df3a9de 100644
--- a/tests/qemucapabilitiestest.c
+++ b/tests/qemucapabilitiestest.c
@@ -178,6 +178,7 @@ mymain(void)
DO_TEST("s390x", "caps_2.7.0");
DO_TEST("s390x", "caps_2.8.0");
DO_TEST("s390x", "caps_2.9.0");
+ DO_TEST("s390x", "caps_2.10.0");
/*
* Run "tests/qemucapsprobe /path/to/qemu/binary >foo.replies"
--
2.9.4
2
2
[libvirt] [PATCH v4] Avoid possible NULL pointer dereferences in qemuDomainGetTLSObjects
by Ashish Mittal 21 Sep '17
by Ashish Mittal 21 Sep '17
21 Sep '17
Passing a NULL value for the argument secAlias to the function
qemuDomainGetTLSObjects can cause a segmentation fault in
libvirtd.
Fixed two possibile places where we could dereference a NULL secAlias.
Signed-off-by: Ashish Mittal <ashmit602(a)gmail.com>
---
src/qemu/qemu_hotplug.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index 7dd6e5f..7592049 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -1638,12 +1638,14 @@ qemuDomainGetTLSObjects(virQEMUCapsPtr qemuCaps,
if (qemuBuildSecretInfoProps(secinfo, secProps) < 0)
return -1;
- if (!(*secAlias = qemuDomainGetSecretAESAlias(srcAlias, false)))
+ if (!secAlias ||
+ !(*secAlias = qemuDomainGetSecretAESAlias(srcAlias, false)))
return -1;
}
if (qemuBuildTLSx509BackendProps(tlsCertdir, tlsListen, tlsVerify,
- *secAlias, qemuCaps, tlsProps) < 0)
+ secAlias ? *secAlias : NULL, qemuCaps,
+ tlsProps) < 0)
return -1;
if (!(*tlsAlias = qemuAliasTLSObjFromSrcAlias(srcAlias)))
--
2.5.5
3
2
[libvirt] [PATCH v3] Avoid a possible NULL pointer dereference in qemuDomainGetTLSObjects
by Ashish Mittal 21 Sep '17
by Ashish Mittal 21 Sep '17
21 Sep '17
Passing a NULL value for the argument secAlias to the function
qemuDomainGetTLSObjects would cause a segmentation fault in
libvirtd.
Changed code to not dereference a NULL secAlias.
Signed-off-by: Ashish Mittal <ashmit602(a)gmail.com>
---
src/qemu/qemu_hotplug.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index 7dd6e5f..9ecdf0a 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -1643,7 +1643,8 @@ qemuDomainGetTLSObjects(virQEMUCapsPtr qemuCaps,
}
if (qemuBuildTLSx509BackendProps(tlsCertdir, tlsListen, tlsVerify,
- *secAlias, qemuCaps, tlsProps) < 0)
+ secAlias ? *secAlias : NULL, qemuCaps,
+ tlsProps) < 0)
return -1;
if (!(*tlsAlias = qemuAliasTLSObjFromSrcAlias(srcAlias)))
--
2.5.5
4
9
In aiforaf() (which exists only when building for BSD) the
@ipAddr may be leaked.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
tools/nss/libvirt_nss.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/tools/nss/libvirt_nss.c b/tools/nss/libvirt_nss.c
index 9904026da..da4bf79a4 100644
--- a/tools/nss/libvirt_nss.c
+++ b/tools/nss/libvirt_nss.c
@@ -643,6 +643,7 @@ aiforaf(const char *name, int af, struct addrinfo *pai, struct addrinfo **aip)
hints.ai_family = af;
if (getaddrinfo(ipAddr, NULL, &hints, &res0)) {
+ VIR_FREE(ipAaddr);
addrList++;
continue;
}
@@ -654,6 +655,7 @@ aiforaf(const char *name, int af, struct addrinfo *pai, struct addrinfo **aip)
while ((*aip)->ai_next)
*aip = (*aip)->ai_next;
+ VIR_FREE(ipAaddr);
addrList++;
}
}
--
2.13.5
2
1
21 Sep '17
After commit 8708ca01c0d libvirtd consistently aborts with
"stack smashing detected" when nodedev driver is initialized.
Apparently this is caused by nlmsg_parse trying to write more than
CTRL_ATTR_MAX bytes in tb because it is told tb can accommodate
CTRL_CMD_MAX bytes.
Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>
---
src/util/virnetdev.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c
index 41a659732b..be8f4b7938 100644
--- a/src/util/virnetdev.c
+++ b/src/util/virnetdev.c
@@ -3158,7 +3158,7 @@ virNetDevGetFamilyId(const char *family_name)
struct nl_msg *nl_msg = NULL;
struct nlmsghdr *resp = NULL;
struct genlmsghdr* gmsgh = NULL;
- struct nlattr *tb[CTRL_ATTR_MAX + 1] = {NULL, };
+ struct nlattr *tb[CTRL_CMD_MAX + 1] = {NULL, };
unsigned int recvbuflen;
uint32_t family_id = 0;
--
2.14.1
4
3
The virSocketAddrFormat() allocates the string and it's caller
responsibility to free it afterwards.
==28857== 11 bytes in 1 blocks are definitely lost in loss record 37 of 168
==28857== at 0x4C2BEDF: malloc (vg_replace_malloc.c:299)
==28857== by 0x9A81D79: strdup (in /lib64/libc-2.23.so)
==28857== by 0x5DA3BF0: virStrdup (virstring.c:902)
==28857== by 0x5D96182: virSocketAddrFormatFull (virsocketaddr.c:427)
==28857== by 0x5D95E13: virSocketAddrFormat (virsocketaddr.c:352)
==28857== by 0x5706890: qemuBuildHostNetStr (qemu_command.c:3891)
==28857== by 0x57138D3: qemuBuildInterfaceCommandLine (qemu_command.c:8597)
==28857== by 0x5713D6A: qemuBuildNetCommandLine (qemu_command.c:8699)
==28857== by 0x57176F6: qemuBuildCommandLine (qemu_command.c:10027)
==28857== by 0x5769D61: qemuProcessCreatePretendCmd (qemu_process.c:6004)
==28857== by 0x4056EC: testCompareXMLToArgv (qemuxml2argvtest.c:502)
==28857== by 0x41DF40: virTestRun (testutils.c:180)
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
src/qemu/qemu_command.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 9b3e3fc04..abeb24846 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -3900,6 +3900,7 @@ qemuBuildHostNetStr(virDomainNetDefPtr net,
if (ip->prefix)
virBufferAsprintf(&buf, "/%u", ip->prefix);
virBufferAddChar(&buf, ',');
+ VIR_FREE(addr);
}
break;
--
2.13.5
5
7
[libvirt] [PATCH v2] qemu: Introduce a wrapper over virFileWrapperFdClose
by Michal Privoznik 21 Sep '17
by Michal Privoznik 21 Sep '17
21 Sep '17
https://bugzilla.redhat.com/show_bug.cgi?id=1448268
When migrating to a file (e.g. when doing 'virsh save file'),
couple of things are happening in the thread that is executing
the API:
1) the domain obj is locked
2) iohelper is spawned as a separate process to handle all I/O
3) the thread waits for iohelper to finish
4) the domain obj is unlocked
Now, the problem is that while the thread waits in step 3 for
iohelper to finish this may take ages because iohelper calls
fdatasync(). And unfortunately, we are waiting the whole time
with the domain locked. So if another thread wants to jump in and
say copy the domain name ('virsh list' for instance), they are
stuck.
The solution is to unlock the domain whenever waiting for I/O and
lock it back again when it finished.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
diff to v1:
- check after locking the domain obj back if the domain is still alive,
since it was unlocked it might have changed its state.
src/qemu/qemu_driver.c | 33 +++++++++++++++++++++++++++++----
1 file changed, 29 insertions(+), 4 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index e1a0dd553..6095a5ec5 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -3216,6 +3216,31 @@ qemuOpenFileAs(uid_t fallback_uid, gid_t fallback_gid,
goto cleanup;
}
+
+static int
+qemuFileWrapperFDClose(virDomainObjPtr vm,
+ virFileWrapperFdPtr fd)
+{
+ int ret;
+
+ /* virFileWrapperFd uses iohelper to write data onto disk.
+ * However, iohelper calls fdatasync() which may take ages to
+ * finish. Therefore, we shouldn't be waiting with the domain
+ * object locked. */
+
+ virObjectUnlock(vm);
+ ret = virFileWrapperFdClose(fd);
+ virObjectLock(vm);
+ if (!virDomainObjIsActive(vm)) {
+ if (!virGetLastError())
+ virReportError(VIR_ERR_OPERATION_FAILED, "%s",
+ _("domain is no longer running"));
+ ret = -1;
+ }
+ return ret;
+}
+
+
/* Helper function to execute a migration to file with a correct save header
* the caller needs to make sure that the processors are stopped and do all other
* actions besides saving memory */
@@ -3276,7 +3301,7 @@ qemuDomainSaveMemory(virQEMUDriverPtr driver,
goto cleanup;
}
- if (virFileWrapperFdClose(wrapperFd) < 0)
+ if (qemuFileWrapperFDClose(vm, wrapperFd) < 0)
goto cleanup;
if ((fd = qemuOpenFile(driver, vm, path, O_WRONLY, NULL, NULL)) < 0 ||
@@ -3827,7 +3852,7 @@ doCoreDump(virQEMUDriverPtr driver,
path);
goto cleanup;
}
- if (virFileWrapperFdClose(wrapperFd) < 0)
+ if (qemuFileWrapperFDClose(vm, wrapperFd) < 0)
goto cleanup;
ret = 0;
@@ -6687,7 +6712,7 @@ qemuDomainRestoreFlags(virConnectPtr conn,
ret = qemuDomainSaveImageStartVM(conn, driver, vm, &fd, data, path,
false, QEMU_ASYNC_JOB_START);
- if (virFileWrapperFdClose(wrapperFd) < 0)
+ if (qemuFileWrapperFDClose(vm, wrapperFd) < 0)
VIR_WARN("Failed to close %s", path);
qemuProcessEndJob(driver, vm);
@@ -6962,7 +6987,7 @@ qemuDomainObjRestore(virConnectPtr conn,
ret = qemuDomainSaveImageStartVM(conn, driver, vm, &fd, data, path,
start_paused, asyncJob);
- if (virFileWrapperFdClose(wrapperFd) < 0)
+ if (qemuFileWrapperFDClose(vm, wrapperFd) < 0)
VIR_WARN("Failed to close %s", path);
cleanup:
--
2.13.5
2
2
[libvirt] [PATCH 0/2] qemu: Order PCI controllers on the command line
by Andrea Bolognani 21 Sep '17
by Andrea Bolognani 21 Sep '17
21 Sep '17
All the details are in the commit message for patch 2/2.
Andrea Bolognani (2):
qemu: Clean up qemuBuildControllerDevCommandLine()
qemu: Order PCI controllers on the command line
src/qemu/qemu_command.c | 91 +++++++++++++++-------
.../qemuxml2argv-pci-autoadd-idx.args | 2 +-
.../qemuxml2argv-pseries-many-buses-2.args | 4 +-
3 files changed, 68 insertions(+), 29 deletions(-)
--
2.13.5
3
8
21 Sep '17
This series originally started as a cleanup work, but it turned out two
real bugs got fixed with this cleanup :-)
Since commit v2.2.0-199-g7ce711a30e libvirt stores an updated guest CPU
in domain's live definition and there's no need to update it every time
we want to format the definition. Thus libvirt should never internally
request a guest CPU update when formatting domain XML. But if it is
asked by a user to do so, it should use the same host CPU model which is
used when starting a domain to provide meaningful results.
https://bugzilla.redhat.com/show_bug.cgi?id=1481309
https://bugzilla.redhat.com/show_bug.cgi?id=1485022
Jiri Denemark (6):
qemuxml2xmltest: Add tests for Power CPUs
cpu_conf: Drop updateCPU from virCPUDefFormat
cpu_conf: Simplify formatting of guest CPU attributes
conf: Drop unused VIR_DOMAIN_DEF_FORMAT_UPDATE_CPU
qemu: Use correct host model for updating guest cpu
qemu: Don't update CPU when formatting live def
src/bhyve/bhyve_driver.c | 2 +-
src/conf/capabilities.c | 2 +-
src/conf/cpu_conf.c | 38 +++++++++------------
src/conf/cpu_conf.h | 9 ++---
src/conf/domain_capabilities.c | 2 +-
src/conf/domain_conf.c | 6 +---
src/conf/domain_conf.h | 1 -
src/conf/snapshot_conf.c | 3 +-
src/libxl/libxl_driver.c | 2 +-
src/qemu/qemu_domain.c | 17 +++++++---
src/qemu/qemu_domain.h | 3 +-
src/qemu/qemu_driver.c | 9 ++++-
src/qemu/qemu_migration_cookie.c | 2 +-
src/test/test_driver.c | 2 +-
src/vz/vz_driver.c | 2 +-
tests/cputest.c | 15 ++++-----
.../ppc64-host+guest-compat-incompatible.xml | 2 +-
.../ppc64-host+guest-compat-invalid.xml | 2 +-
.../cputestdata/ppc64-host+guest-compat-valid.xml | 2 +-
.../qemuxml2xmlout-pseries-cpu-compat-power9.xml | 38 +++++++++++++++++++++
.../qemuxml2xmlout-pseries-cpu-compat.xml | 38 +++++++++++++++++++++
.../qemuxml2xmlout-pseries-cpu-exact.xml | 39 ++++++++++++++++++++++
tests/qemuxml2xmltest.c | 4 +++
23 files changed, 178 insertions(+), 62 deletions(-)
create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-cpu-compat-power9.xml
create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-cpu-compat.xml
create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-pseries-cpu-exact.xml
--
2.14.1
2
9
21 Sep '17
Hi,
this is a simple series to reject parallel ports on s390 architectures,
and pseries machines -- both simply do not support them. This fixes
https://bugzilla.redhat.com/show_bug.cgi?id=1487499
Pino Toscano (5):
tests: qemuxml2argv: fix expected type for usb-bus-missing
tests: qemuxml2argv: fail also on unexpected pass
qemu: pass the virDomainDef to qemuDomainChrDefValidate
qemu: reject parallel ports for s390 archs
qemu: reject parallel ports for pseries machines
src/qemu/qemu_domain.c | 16 ++++++++++++----
.../qemuxml2argv-pseries-no-parallel.xml | 18 ++++++++++++++++++
.../qemuxml2argv-s390-no-parallel.xml | 22 ++++++++++++++++++++++
tests/qemuxml2argvtest.c | 20 +++++++++++++++++---
4 files changed, 69 insertions(+), 7 deletions(-)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-pseries-no-parallel.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-s390-no-parallel.xml
--
2.13.5
4
10
[libvirt] [PATCH] qemu: capabilities: Remove support for downstream-only QMP monitor backport
by Peter Krempa 21 Sep '17
by Peter Krempa 21 Sep '17
21 Sep '17
Some distros (see diff) chose to backport QMP support rather than rebase
to newer version of qemu. As a hack they added the string 'libvirt' to
the qemu -help output. Remove this as downstream-only hacks should be
carried by downstream and not litter upstream.
This effectively reverts commit ff88cd590572277f10ecee4ebb1174d9b70fc0d7
---
src/qemu/qemu_capabilities.c | 20 ++++----------------
1 file changed, 4 insertions(+), 16 deletions(-)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 7bfb71420..085910dd4 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -1335,8 +1335,7 @@ virQEMUCapsComputeCmdFlags(const char *help,
if ((netdev = strstr(help, "-netdev"))) {
/* Disable -netdev on 0.12 since although it exists,
* the corresponding netdev_add/remove monitor commands
- * do not, and we need them to be able to do hotplug.
- * But see below about RHEL build. */
+ * do not, and we need them to be able to do hotplug. */
if (version >= 13000) {
if (strstr(netdev, "bridge"))
virQEMUCapsSet(qemuCaps, QEMU_CAPS_NETDEV_BRIDGE);
@@ -1369,20 +1368,10 @@ virQEMUCapsComputeCmdFlags(const char *help,
/* While JSON mode was available in 0.12.0, it was too
* incomplete to contemplate using. The 0.13.0 release
* is good enough to use, even though it lacks one or
- * two features. This is also true of versions of qemu
- * built for RHEL, labeled 0.12.1, but with extra text
- * in the help output that mentions that features were
- * backported for libvirt. The benefits of JSON mode now
- * outweigh the downside.
- */
+ * two features. */
#if WITH_YAJL
- if (version >= 13000) {
- virQEMUCapsSet(qemuCaps, QEMU_CAPS_MONITOR_JSON);
- } else if (version >= 12000 &&
- strstr(help, "libvirt")) {
+ if (version >= 13000)
virQEMUCapsSet(qemuCaps, QEMU_CAPS_MONITOR_JSON);
- virQEMUCapsSet(qemuCaps, QEMU_CAPS_NETDEV);
- }
#else
/* Starting with qemu 0.15 and newer, upstream qemu no longer
* promises to keep the human interface stable, but requests that
@@ -1392,8 +1381,7 @@ virQEMUCapsComputeCmdFlags(const char *help,
* telling them to recompile (the spec file includes the
* dependency, so distros won't hit this). This check is
* also in m4/virt-yajl.m4 (see $with_yajl). */
- if (version >= 15000 ||
- (version >= 12000 && strstr(help, "libvirt"))) {
+ if (version >= 15000) {
if (check_yajl) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("this qemu binary requires libvirt to be "
--
2.13.5
2
1
For win32 we need EXIT_AM_SKIP which is in testutils.h. We must
define NO_LIBVIRT to prevent replacement of fprintf with
virFilePrintf as we can't link to libvirt_util.la
Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
---
Pushed as a build fix
tests/commandhelper.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/tests/commandhelper.c b/tests/commandhelper.c
index e9e6353f3..1da2834aa 100644
--- a/tests/commandhelper.c
+++ b/tests/commandhelper.c
@@ -28,6 +28,8 @@
#include <sys/stat.h>
#include "internal.h"
+#define NO_LIBVIRT
+#include "testutils.h"
#ifndef WIN32
--
2.13.5
1
0
Currently, trying to build libvirt-glib on FreeBSD results in all
sorts of interesting failures.
After applying this series, it's possible to build libvirt-glib
and run the test suite successfully.
There's even a couple of clean-ups thrown in for good measure :)
Andrea Bolognani (5):
maint: Drop autobuild.sh
configure: Bump required libvirt version to 1.2.5
configure: Look for Perl interpreter path
tests: Don't rely on non-portable paths
scripts: Fix sha-bang lines
autobuild.sh | 91 -------------------------------------------
build-aux/check-symfile.pl | 2 +-
build-aux/check-symsorting.pl | 2 +-
configure.ac | 4 +-
examples/config-demo.py | 2 +-
examples/conn-test.js | 2 +-
examples/conn-test.py | 2 +-
examples/event-test.py | 1 +
tap-driver.sh | 2 +-
tap-test | 2 +-
tests/test-events.c | 2 +-
11 files changed, 12 insertions(+), 100 deletions(-)
delete mode 100755 autobuild.sh
--
2.13.5
2
6
[libvirt] Questions about function virPCIDeviceIsBehindSwitchLackingACS in virpci.c
by Wuzongyong (Euler Dept) 21 Sep '17
by Wuzongyong (Euler Dept) 21 Sep '17
21 Sep '17
Hi,
In function virPCIDeviceIsBehindSwitchLackingACS, I noticed that(line 8):
1 if (virPCIDeviceGetParent(dev, &parent) < 0)
2 return -1;
3 if (!parent) {
4 /* if we have no parent, and this is the root bus, ACS doesn't come
5 * into play since devices on the root bus can't P2P without going
6 * through the root IOMMU.
7 */
8 if (dev->address.bus == 0) {
9 return 0;
10 } else {
11 virReportError(VIR_ERR_INTERNAL_ERROR,
12 _("Failed to find parent device for %s"),
13 dev->name);
14 return -1;
15 }
16 }
Why we just return 0 only if device's bus is 0?
In my server, I can see a root bus which bus number is greater than 0, see the
results(just a part) after I run lspci -t:
+-[0000:80]-+-02.0-[81-83]--+-00.0
| | \-00.1
| +-05.0
| +-05.1
| +-05.2
| \-05.4
+-[0000:7f]-+-08.0
| +-08.2
| +-08.3
| + . . .
| \-1f.2
\-[0000:00]-+-00.0
+-01.0-[01]----00.0
+-02.0-[02]--+-00.0
| +-00.1
| +-00.2
| \-00.3
+-02.2-[03]--
+-03.0-[04-0b]----00.0-[05-0b]--+-08.0-[06-08]----00.0
| \-10.0-[09-0b]----00.0
+-05.0
+-05.1
+-05.2
+-05.4
+-11.0
+-11.4
+-16.0
+-16.1
+-1a.0
If I assign the device 0000:81:00.0 to a VM, I get "Failed to find parent device".
I think I should get no error with return value 0 just like bus number is 0, because
bus 80 is the root bus as well in my case.
In the <<Intel C610 Series Chipset and Intel X99 Chipset Platform Controller Hub(PCH)>>
Datasheet, I found that(Chapter 9.1):
For some server platforms, it may be desirable to have multiple PCHs in the system
Which means some PCH's may reside on a bus greater than 0.
So, is this a bug?
Thanks,
Zongyong Wu
4
6
[libvirt] [PATCH] iohelper: avoid calling read() with misaligned buffers for O_DIRECT
by Daniel P. Berrange 20 Sep '17
by Daniel P. Berrange 20 Sep '17
20 Sep '17
The iohelper currently calls saferead() to get data from the
underlying file. This has a problem with O_DIRECT when hitting
end-of-file. saferead() is asked to read 1MB, but the first
read() it does may return only a few KB, so it'll try another
read() to fill the remaining buffer. Unfortunately the buffer
pointer passed into this 2nd read() is likely not aligned
to the extent that O_DIRECT requires, so rather than seeing
'0' for end-of-file, we'll get -1 + EINVAL due to misaligned
buffer.
The way the iohelper is currently written, it already handles
getting short reads, so there is actually no need to use
saferead() at all. We can simply call read() directly. The
benefit of this is that we can now write() the data immediately
so when we go into the subsequent reads() we'll always have a
correctly aligned buffer.
Technically the file position ought to be aligned for O_DIRECT
too, but this does not appear to matter when at end-of-file.
Tested-by: Nikolay Shirokovskiy <nshirokovskiy(a)virtuozzo.com>
Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
---
src/util/iohelper.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/util/iohelper.c b/src/util/iohelper.c
index fe15a92e6..5416d4506 100644
--- a/src/util/iohelper.c
+++ b/src/util/iohelper.c
@@ -109,7 +109,9 @@ runIO(const char *path, int fd, int oflags)
while (1) {
ssize_t got;
- if ((got = saferead(fdin, buf, buflen)) < 0) {
+ if ((got = read(fdin, buf, buflen)) < 0) {
+ if (errno == EINTR)
+ continue;
virReportSystemError(errno, _("Unable to read %s"), fdinname);
goto cleanup;
}
--
2.13.5
2
1
20 Sep '17
saferead is not suitable for direct reads. If file size is not multiple
of align size then we get EINVAL on the read(2) that is supposed to
return 0 because read buffer will not be aligned at this point.
Let's not read again after partial read and check that we read
everything by comparing the number of total bytes read against file size.
---
Diff from v1:
- a couple of cosmetic changes
src/util/iohelper.c | 42 +++++++++++++++++++++++++++++++++++++-----
1 file changed, 37 insertions(+), 5 deletions(-)
diff --git a/src/util/iohelper.c b/src/util/iohelper.c
index fe15a92..9aa6ae0 100644
--- a/src/util/iohelper.c
+++ b/src/util/iohelper.c
@@ -56,6 +56,7 @@ runIO(const char *path, int fd, int oflags)
unsigned long long total = 0;
bool direct = O_DIRECT && ((oflags & O_DIRECT) != 0);
off_t end = 0;
+ off_t cur;
#if HAVE_POSIX_MEMALIGN
if (posix_memalign(&base, alignMask + 1, buflen)) {
@@ -78,10 +79,22 @@ runIO(const char *path, int fd, int oflags)
fdoutname = "stdout";
/* To make the implementation simpler, we give up on any
* attempt to use O_DIRECT in a non-trivial manner. */
- if (direct && ((end = lseek(fd, 0, SEEK_CUR)) != 0)) {
- virReportSystemError(end < 0 ? errno : EINVAL, "%s",
- _("O_DIRECT read needs entire seekable file"));
- goto cleanup;
+ if (direct) {
+ if ((cur = lseek(fd, 0, SEEK_CUR)) != 0) {
+ virReportSystemError(cur < 0 ? errno : EINVAL, "%s",
+ _("O_DIRECT read needs entire seekable file"));
+ goto cleanup;
+ }
+
+ if ((end = lseek(fd, 0, SEEK_END)) < 0) {
+ virReportSystemError(errno, "%s", _("can not seek file end"));
+ goto cleanup;
+ }
+
+ if (lseek(fd, cur, SEEK_SET) < 0) {
+ virReportSystemError(errno, "%s", _("can not seek file begin"));
+ goto cleanup;
+ }
}
break;
case O_WRONLY:
@@ -109,7 +122,26 @@ runIO(const char *path, int fd, int oflags)
while (1) {
ssize_t got;
- if ((got = saferead(fdin, buf, buflen)) < 0) {
+ /* in case of O_DIRECT we cannot read again to check for EOF
+ * after partial buffer read as it is done in saferead */
+ if (direct && fdin == fd && end - total < buflen) {
+ if (total == end)
+ break;
+
+ while ((got = read(fd, buf, buflen)) < 0 && errno == EINTR)
+ ;
+
+ if (got < end - total) {
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+ _("Unable to read last chunk from %s"),
+ fdinname);
+ goto cleanup;
+ }
+ } else {
+ got = saferead(fdin, buf, buflen);
+ }
+
+ if (got < 0) {
virReportSystemError(errno, _("Unable to read %s"), fdinname);
goto cleanup;
}
--
1.8.3.1
2
9
20 Sep '17
For vhost-user ports, Open vSwitch acts as the server and QEMU the client.
When OVS crashed or restart, QEMU shoule be reconnect to OVS.
Signed-off-by: ZhiPeng Lu <lu.zhipeng(a)zte.com.cn>
---
docs/formatdomain.html.in | 6 +++--
docs/schemas/domaincommon.rng | 5 ++++
src/conf/domain_conf.c | 28 ++++++++++++++++++++--
.../qemuxml2argv-net-vhostuser-multiq.args | 2 +-
.../qemuxml2argv-net-vhostuser-multiq.xml | 2 +-
5 files changed, 37 insertions(+), 6 deletions(-)
diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index 8ca7637..ffe45c2 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -5660,7 +5660,7 @@ qemu-kvm -net nic,model=? /dev/null
</interface>
<interface type='vhostuser'>
<mac address='52:54:00:3b:83:1b'/>
- <source type='unix' path='/tmp/vhost2.sock' mode='client'/>
+ <source type='unix' path='/tmp/vhost2.sock' mode='client' reconnect='10'/>
<model type='virtio'/>
<driver queues='5'/>
</interface>
@@ -5675,7 +5675,9 @@ qemu-kvm -net nic,model=? /dev/null
Both <code>mode='server'</code> and <code>mode='client'</code>
are supported.
vhost-user requires the virtio model type, thus the
- <code><model></code> element is mandatory.
+ <code><model></code> element is mandatory. <code>reconnect</code>
+ is an optional element,which configures reconnect timeout if the
+ connection is lost.
</p>
<h5><a id="elementNwfilter">Traffic filtering with NWFilter</a></h5>
diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
index 06c5a91..82f30ae 100644
--- a/docs/schemas/domaincommon.rng
+++ b/docs/schemas/domaincommon.rng
@@ -2383,6 +2383,11 @@
<value>client</value>
</choice>
</attribute>
+ <optional>
+ <attribute name="reconnect">
+ <ref name='positiveInteger'/>
+ </attribute>
+ </optional>
<empty/>
</element>
<ref name="interface-options"/>
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 2fc1fc3..f9c3b35 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -10176,6 +10176,7 @@ virDomainNetDefParseXML(virDomainXMLOptionPtr xmlopt,
char *vhostuser_mode = NULL;
char *vhostuser_path = NULL;
char *vhostuser_type = NULL;
+ char *vhostuser_reconnect = NULL;
char *trustGuestRxFilters = NULL;
char *vhost_path = NULL;
virNWFilterHashTablePtr filterparams = NULL;
@@ -10262,11 +10263,12 @@ virDomainNetDefParseXML(virDomainXMLOptionPtr xmlopt,
goto error;
}
} else if (!vhostuser_path && !vhostuser_mode && !vhostuser_type
- && def->type == VIR_DOMAIN_NET_TYPE_VHOSTUSER &&
- virXMLNodeNameEqual(cur, "source")) {
+ && !vhostuser_reconnect && def->type == VIR_DOMAIN_NET_TYPE_VHOSTUSER
+ && virXMLNodeNameEqual(cur, "source")) {
vhostuser_type = virXMLPropString(cur, "type");
vhostuser_path = virXMLPropString(cur, "path");
vhostuser_mode = virXMLPropString(cur, "mode");
+ vhostuser_reconnect = virXMLPropString(cur, "reconnect");
} else if (!def->virtPortProfile
&& virXMLNodeNameEqual(cur, "virtualport")) {
if (def->type == VIR_DOMAIN_NET_TYPE_NETWORK) {
@@ -10478,6 +10480,11 @@ virDomainNetDefParseXML(virDomainXMLOptionPtr xmlopt,
"type='vhostuser'/>"));
goto error;
}
+ if (vhostuser_reconnect != NULL && STREQ(vhostuser_mode, "server")) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("'reconnect' attribute unsupported "
+ "'server' mode for <interface type='vhostuser'>"));
+ }
if (VIR_ALLOC(def->data.vhostuser) < 0)
goto error;
@@ -10490,6 +10497,17 @@ virDomainNetDefParseXML(virDomainXMLOptionPtr xmlopt,
def->data.vhostuser->data.nix.listen = true;
} else if (STREQ(vhostuser_mode, "client")) {
def->data.vhostuser->data.nix.listen = false;
+ if (vhostuser_reconnect != NULL) {
+ def->data.vhostuser->data.nix.reconnect.enabled = true;
+ if (virStrToLong_ui(vhostuser_reconnect, NULL, 0,
+ &def->data.vhostuser->data.nix.reconnect.timeout) < 0) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+ _("vhost-user reconnect attribute is invalid"));
+ vhostuser_reconnect = NULL;
+ def->data.vhostuser->data.nix.reconnect.enabled = false;
+ goto error;
+ }
+ }
} else {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("Wrong <source> 'mode' attribute "
@@ -10937,6 +10955,7 @@ virDomainNetDefParseXML(virDomainXMLOptionPtr xmlopt,
VIR_FREE(vhostuser_type);
VIR_FREE(vhostuser_path);
VIR_FREE(vhostuser_mode);
+ VIR_FREE(vhostuser_reconnect);
VIR_FREE(ifname);
VIR_FREE(ifname_guest);
VIR_FREE(ifname_guest_actual);
@@ -22928,6 +22947,11 @@ virDomainNetDefFormat(virBufferPtr buf,
virBufferAsprintf(buf, " mode='%s'",
def->data.vhostuser->data.nix.listen ?
"server" : "client");
+ if (def->data.vhostuser->data.nix.reconnect.enabled == true) {
+ virBufferAsprintf(buf, " reconnect='%u'",
+ def->data.vhostuser->data.nix.reconnect.timeout);
+ }
+
sourceLines++;
}
break;
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-net-vhostuser-multiq.args b/tests/qemuxml2argvdata/qemuxml2argv-net-vhostuser-multiq.args
index b69ebd8..996828f 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-net-vhostuser-multiq.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-net-vhostuser-multiq.args
@@ -32,7 +32,7 @@ addr=0x4 \
-netdev socket,listen=:2015,id=hostnet2 \
-device rtl8139,netdev=hostnet2,id=net2,mac=52:54:00:95:db:c0,bus=pci.0,\
addr=0x5 \
--chardev socket,id=charnet3,path=/tmp/vhost2.sock \
+-chardev socket,id=charnet3,path=/tmp/vhost2.sock,reconnect=10 \
-netdev vhost-user,chardev=charnet3,queues=4,id=hostnet3 \
-device virtio-net-pci,mq=on,vectors=10,netdev=hostnet3,id=net3,\
mac=52:54:00:ee:96:6d,bus=pci.0,addr=0x6
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-net-vhostuser-multiq.xml b/tests/qemuxml2argvdata/qemuxml2argv-net-vhostuser-multiq.xml
index d5c42fe..7eb6fa0 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-net-vhostuser-multiq.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-net-vhostuser-multiq.xml
@@ -40,7 +40,7 @@
</interface>
<interface type='vhostuser'>
<mac address='52:54:00:ee:96:6d'/>
- <source type='unix' path='/tmp/vhost2.sock' mode='client'/>
+ <source type='unix' path='/tmp/vhost2.sock' mode='client' reconnect='10'/>
<model type='virtio'/>
<driver queues='4'/>
</interface>
--
1.8.3.1
3
4
[libvirt] [PATCH v2 0/2] qemu: Guarantee correct ordering for controllers
by Andrea Bolognani 20 Sep '17
by Andrea Bolognani 20 Sep '17
20 Sep '17
Changes from [v1]
* ensure the controllers are ordered correctly from the moment
they are added to the guest configuration rather than waiting
for the QEMU command line to be generated.
[v1] https://www.redhat.com/archives/libvir-list/2017-September/msg00084.html
Andrea Bolognani (2):
conf: Add USB companion controllers with virDomainControllerInsert()
conf: Add all controllers using virDomainControllerInsert()
src/conf/domain_conf.c | 61 +++++++++++++++-------
.../qemuxml2argv-channel-virtio-default.args | 2 +-
.../qemuxml2argv-channel-virtio-unix.args | 2 +-
.../qemuxml2argv-chardev-reconnect.args | 2 +-
.../qemuxml2argv-pci-autoadd-idx.args | 16 +++---
.../qemuxml2argv-pseries-many-buses-2.args | 4 +-
.../qemuxml2xmlout-aarch64-virtio-pci-default.xml | 6 +--
...2xmlout-aarch64-virtio-pci-manual-addresses.xml | 6 +--
.../qemuxml2xmlout-channel-virtio-auto.xml | 2 +-
...qemuxml2xmlout-hostdev-scsi-autogen-address.xml | 6 +--
.../qemuxml2xmlout-pci-autoadd-idx.xml | 22 ++++----
.../qemuxml2xmlout-pseries-many-buses-2.xml | 6 +--
.../qemuxml2xmlout-pseries-phb-default-missing.xml | 8 +--
13 files changed, 82 insertions(+), 61 deletions(-)
--
2.13.5
2
4
[libvirt] [PATCH] news: remove kernel version reference from switchdev entry
by Ján Tomko 20 Sep '17
by Ján Tomko 20 Sep '17
20 Sep '17
The functionality was added in 4.8, but due to a rename of
the DEVLINK_CMD_ESWITCH_GET constant in the kernel headers,
the headers from kernel 4.11 are required by the libvirt code.
Remove the reference from the news entry, since it could be
misleading.
---
docs/news.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/news.xml b/docs/news.xml
index c48869c55..aab812b25 100644
--- a/docs/news.xml
+++ b/docs/news.xml
@@ -56,7 +56,7 @@
<description>
Allow querying the NIC interface capabilities for the
availability of switchdev offloading (also known as
- kernel-forward-plane-offload introduced in kernel 4.8).
+ kernel-forward-plane-offload).
</description>
</change>
</section>
--
2.13.0
2
1
[libvirt] [PATCH v2] util: Fix configure.ac check for DEVLINK_CMD_ESWITCH_GET
by John Ferlan 20 Sep '17
by John Ferlan 20 Sep '17
20 Sep '17
Turns out the mechanism of providing multiple definitions to check via
AC_CHECK_DECLS in order to determine whether HAVE_DECL_DEVLINK should
be set resulted in a false positive since as long as one of the defs
was true, then the HAVE_DECL_DEVLINK got defined.
But we cannot just check for the symbol we most care about due to
a complication in a kernel 4.11 change that altered the name of the
symbol from DEVLINK_CMD_ESWITCH_MODE_GET to DEVLINK_CMD_ESWITCH_GET
in the newer kernel and added a #define for the former name with an
ominous comment/caveat that the old format is obsolete should never
be used. However, if we only looked for the new symbol, that would
leave kernels 4.8 through 4.10 unable to use the command even though
it exists under an old name.
So, rather than checking for whether the devlink.h on the system has
multiple symbols, let's only check for whether the command we want
is defined. This patch checks for both symbol names in order to
allow usage and then adds a check to see if the new name doesn't
exist after linux/devlink.h is include, then to use #define of
the new name to the old name - essentially the reverse logic that
the 4.11 header file has.
Note that we do not need to check for other symbols as well since
they already existed prior to when the various ESWITCH symbols were
added. Other defintions include DEVLINK_GENL_VERSION, DEVLINK_GENL_NAME,
DEVLINK_ATTR_MAX, DEVLINK_ATTR_BUS_NAME, and DEVLINK_ATTR_DEV_NAME.
The DEVLINK_ATTR_ESWITCH_MODE and DEVLINK_ESWITCH_MODE_SWITCHDEV
were added at the same time as DEVLINK_CMD_ESWITCH_MODE_GET, but
it's only DEVLINK_CMD_ESWITCH_MODE_GET that changed in 4.11.
Signed-off-by: John Ferlan <jferlan(a)redhat.com>
---
v1: https://www.redhat.com/archives/libvir-list/2017-September/msg00543.html
Just to make it official - here's what I described in the v1 followup
which got the ACK if comment from Andrea:
https://www.redhat.com/archives/libvir-list/2017-September/msg00591.html
Still, I won't push this yet until it too gets an official blessing.
configure.ac | 8 ++++++--
src/util/virnetdev.c | 3 +++
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/configure.ac b/configure.ac
index c9509c7f9..73ae7fdd5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -630,12 +630,16 @@ fi
dnl
dnl check for kernel headers required by devlink
dnl
+dnl kernel 4.8 introduced DEVLINK_CMD_ESWITCH_MODE_GET, but that was
+dnl later changed in kernel 4.11 to be just DEVLINK_CMD_ESWITCH_GET, so
+dnl for "completeness" let's allow HAVE_DECL_DEVLINK to be define if
+dnl either is defined.
if test "$with_linux" = "yes"; then
AC_CHECK_HEADERS([linux/devlink.h])
- AC_CHECK_DECLS([DEVLINK_GENL_VERSION, DEVLINK_GENL_NAME, DEVLINK_ATTR_MAX, DEVLINK_CMD_ESWITCH_GET, DEVLINK_ATTR_BUS_NAME, DEVLINK_ATTR_DEV_NAME, DEVLINK_ATTR_ESWITCH_MODE, DEVLINK_ESWITCH_MODE_SWITCHDEV],
+ AC_CHECK_DECLS([DEVLINK_CMD_ESWITCH_GET, DEVLINK_CMD_ESWITCH_MODE_GET],
[AC_DEFINE([HAVE_DECL_DEVLINK],
[1],
- [whether devlink declarations are available])],
+ [whether devlink CMD_ESWITCH_GET is available])],
[],
[[#include <linux/devlink.h>]])
fi
diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c
index 040693925..435ca5562 100644
--- a/src/util/virnetdev.c
+++ b/src/util/virnetdev.c
@@ -61,6 +61,9 @@
#if HAVE_DECL_DEVLINK
# include <linux/devlink.h>
+# ifndef DEVLINK_CMD_ESWITCH_GET
+# define DEVLINK_CMD_ESWITCH_GET DEVLINK_CMD_ESWITCH_MODE_GET
+# endif
#endif
#ifndef IFNAMSIZ
--
2.13.5
3
3
20 Sep '17
The commandhelper binary is a helper for commandtest that
validates what file handles were inherited. For this to
work reliably we must not have any libraries that leak
file descriptors into commandhelper. Unfortunately some
versions of gnutls will intentionally open file handles
at library load time via a constructor function.
We previously hacked around this in
commit 4cbc15d037e1cd8abf5c4aa6acc30d83ae13e34d
Author: Martin Kletzander <mkletzan(a)redhat.com>
Date: Fri May 2 09:55:52 2014 +0200
tests: don't fail with newer gnutls
gnutls-3.3.0 and newer leaves 2 FDs open in order to be backwards
compatible when it comes to chrooted binaries [1]. Linking
commandhelper with gnutls then leaves these two FDs open and
commandtest fails thanks to that. This patch does not link
commandhelper with libvirt.la, but rather only the utilities making
the test pass.
Based on suggestion from Daniel [2].
[1] http://lists.gnutls.org/pipermail/gnutls-help/2014-April/003429.html
[2] https://www.redhat.com/archives/libvir-list/2014-April/msg01119.html
That fix relied on fact that while libvirt.so linked with
gnutls, libvirt_util.la did not link to it. With the
introduction of the util/vircrypto.c file that assumption
is no longer valid. We must not link to libvirt_util.la
at all - only gnulib and libc can (hopefully) be relied
on not to open random file descriptors in constructors.
Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
---
cfg.mk | 8 ++++----
tests/Makefile.am | 6 ++++--
tests/commandhelper.c | 29 +++++++++++++----------------
3 files changed, 21 insertions(+), 22 deletions(-)
diff --git a/cfg.mk b/cfg.mk
index 56cb14b..f2a053f 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -1111,7 +1111,7 @@ $(srcdir)/src/admin/admin_client.h: $(srcdir)/src/admin/admin_protocol.x
exclude_file_name_regexp--sc_avoid_strcase = ^tools/vsh\.h$$
_src1=libvirt-stream|qemu/qemu_monitor|util/vir(command|file|fdstream)|xen/xend_internal|rpc/virnetsocket|lxc/lxc_controller|locking/lock_daemon|logging/log_daemon
-_test1=shunloadtest|virnettlscontexttest|virnettlssessiontest|vircgroupmock
+_test1=shunloadtest|virnettlscontexttest|virnettlssessiontest|vircgroupmock|commandhelper
exclude_file_name_regexp--sc_avoid_write = \
^(src/($(_src1))|daemon/libvirtd|tools/virsh-console|tests/($(_test1)))\.c$$
@@ -1146,10 +1146,10 @@ exclude_file_name_regexp--sc_prohibit_asprintf = \
^(cfg\.mk|bootstrap.conf$$|examples/|src/util/virstring\.[ch]$$|tests/vircgroupmock\.c$$)
exclude_file_name_regexp--sc_prohibit_strdup = \
- ^(docs/|examples/|src/util/virstring\.c|tests/vir(netserverclient|cgroup)mock.c$$)
+ ^(docs/|examples/|src/util/virstring\.c|tests/vir(netserverclient|cgroup)mock.c|tests/commandhelper\.c$$)
exclude_file_name_regexp--sc_prohibit_close = \
- (\.p[yl]$$|\.spec\.in$$|^docs/|^(src/util/virfile\.c|src/libvirt-stream\.c|tests/vir.+mock\.c)$$)
+ (\.p[yl]$$|\.spec\.in$$|^docs/|^(src/util/virfile\.c|src/libvirt-stream\.c|tests/vir.+mock\.c|tests/commandhelper\.c)$$)
exclude_file_name_regexp--sc_prohibit_empty_lines_at_EOF = \
(^tests/(qemuhelp|virhostcpu|virpcitest)data/|docs/js/.*\.js|docs/fonts/.*\.woff|\.diff|tests/virconfdata/no-newline\.conf$$)
@@ -1173,7 +1173,7 @@ exclude_file_name_regexp--sc_prohibit_select = \
^cfg\.mk$$
exclude_file_name_regexp--sc_prohibit_raw_allocation = \
- ^(docs/hacking\.html\.in|src/util/viralloc\.[ch]|examples/.*|tests/(securityselinuxhelper|(vircgroup|nss)mock)\.c|tools/wireshark/src/packet-libvirt\.c)$$
+ ^(docs/hacking\.html\.in|src/util/viralloc\.[ch]|examples/.*|tests/(securityselinuxhelper|(vircgroup|nss)mock|commandhelper)\.c|tools/wireshark/src/packet-libvirt\.c)$$
exclude_file_name_regexp--sc_prohibit_readlink = \
^src/(util/virutil|lxc/lxc_container)\.c$$
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 8138885..0b2305d 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -946,12 +946,14 @@ commandtest_SOURCES = \
commandtest.c testutils.h testutils.c
commandtest_LDADD = $(LDADDS)
+# Must not link to any libvirt modules - libc / gnulib only
+# otherwise external libraries might unexpectedly leak
+# file descriptors into commandhelper invalidating the
+# test logic assumptions
commandhelper_SOURCES = \
commandhelper.c
commandhelper_LDADD = \
$(NO_INDIRECT_LDFLAGS) \
- $(PROBES_O) \
- ../src/libvirt_util.la \
$(GNULIB_LIBS)
commandhelper_LDFLAGS = -static
diff --git a/tests/commandhelper.c b/tests/commandhelper.c
index 015efda..e9e6353 100644
--- a/tests/commandhelper.c
+++ b/tests/commandhelper.c
@@ -28,11 +28,6 @@
#include <sys/stat.h>
#include "internal.h"
-#include "virutil.h"
-#include "viralloc.h"
-#include "virfile.h"
-#include "testutils.h"
-#include "virstring.h"
#ifndef WIN32
@@ -50,11 +45,13 @@ static int envsort(const void *a, const void *b)
char *bkey;
int ret;
- ignore_value(VIR_STRNDUP_QUIET(akey, astr, aeq - astr));
- ignore_value(VIR_STRNDUP_QUIET(bkey, bstr, beq - bstr));
+ if (!(akey = strndup(astr, aeq - astr)))
+ abort();
+ if (!(bkey = strndup(bstr, beq - bstr)))
+ abort();
ret = strcmp(akey, bkey);
- VIR_FREE(akey);
- VIR_FREE(bkey);
+ free(akey);
+ free(bkey);
return ret;
}
@@ -80,8 +77,8 @@ int main(int argc, char **argv) {
origenv++;
}
- if (VIR_ALLOC_N_QUIET(newenv, n) < 0)
- goto cleanup;
+ if (!(newenv = malloc(sizeof(*newenv) * n)))
+ abort();
origenv = environ;
n = i = 0;
@@ -120,7 +117,7 @@ int main(int argc, char **argv) {
STREQ(cwd + strlen(cwd) - strlen("/commanddata"), "/commanddata"))
strcpy(cwd, ".../commanddata");
fprintf(log, "CWD:%s\n", cwd);
- VIR_FREE(cwd);
+ free(cwd);
fprintf(log, "UMASK:%04o\n", umask(0));
@@ -144,9 +141,9 @@ int main(int argc, char **argv) {
goto cleanup;
if (got == 0)
break;
- if (safewrite(STDOUT_FILENO, buf, got) != got)
+ if (write(STDOUT_FILENO, buf, got) != got)
goto cleanup;
- if (safewrite(STDERR_FILENO, buf, got) != got)
+ if (write(STDERR_FILENO, buf, got) != got)
goto cleanup;
}
@@ -158,8 +155,8 @@ int main(int argc, char **argv) {
ret = EXIT_SUCCESS;
cleanup:
- VIR_FORCE_FCLOSE(log);
- VIR_FREE(newenv);
+ fclose(log);
+ free(newenv);
return ret;
}
--
2.5.5
2
2
20 Sep '17
Passing a NULL value for the argument secAlias to the function
qemuDomainGetTLSObjects causes a segmentation fault.
Thread 3 "libvirtd" received signal SIGSEGV, Segmentation fault.
0x00007f97c9c42a3d in qemuDomainGetTLSObjects (..., secAlias=0x0)
at qemu/qemu_hotplug.c:1736
Changed code to not dereference a NULL secAlias.
Signed-off-by: Ashish Mittal <ashmit602(a)gmail.com>
---
src/qemu/qemu_hotplug.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index 7dd6e5f..9ecdf0a 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -1643,7 +1643,8 @@ qemuDomainGetTLSObjects(virQEMUCapsPtr qemuCaps,
}
if (qemuBuildTLSx509BackendProps(tlsCertdir, tlsListen, tlsVerify,
- *secAlias, qemuCaps, tlsProps) < 0)
+ secAlias ? *secAlias : NULL, qemuCaps,
+ tlsProps) < 0)
return -1;
if (!(*tlsAlias = qemuAliasTLSObjFromSrcAlias(srcAlias)))
--
2.5.5
4
3
20 Sep '17
Passing a NULL value for the argument secAlias to the function
qemuDomainGetTLSObjects causes a segmentation fault.
Thread 3 "libvirtd" received signal SIGSEGV, Segmentation fault.
0x00007f97c9c42a3d in qemuDomainGetTLSObjects (...,secAlias=0x0)
at qemu/qemu_hotplug.c:1736
Changed code to not dereference a NULL secAlias.
Signed-off-by: Ashish Mittal <ashmit602(a)gmail.com>
---
src/qemu/qemu_hotplug.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index 7dd6e5f..df58ecc 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -1643,7 +1643,8 @@ qemuDomainGetTLSObjects(virQEMUCapsPtr qemuCaps,
}
if (qemuBuildTLSx509BackendProps(tlsCertdir, tlsListen, tlsVerify,
- *secAlias, qemuCaps, tlsProps) < 0)
+ **secAlias ? *secAlias : NULL, qemuCaps,
+ tlsProps) < 0)
return -1;
if (!(*tlsAlias = qemuAliasTLSObjFromSrcAlias(srcAlias)))
--
2.5.5
3
3
[libvirt] [PATCH] storage: Add new events for *PoolBuild() and *PoolDelete().
by Julio Faracco 20 Sep '17
by Julio Faracco 20 Sep '17
20 Sep '17
This commit adds new events for two methods and operations: *PoolBuild() and
*PoolDelete(). Using the event-test and the commands set below we have the
following outputs:
$ sudo ./event-test
Registering event callbacks
myStoragePoolEventCallback EVENT: Storage pool test Defined 0
myStoragePoolEventCallback EVENT: Storage pool test Created 0
myStoragePoolEventCallback EVENT: Storage pool test Started 0
myStoragePoolEventCallback EVENT: Storage pool test Stopped 0
myStoragePoolEventCallback EVENT: Storage pool test Deleted 0
myStoragePoolEventCallback EVENT: Storage pool test Undefined 0
Another terminal:
$ sudo virsh pool-define test.xml
Pool test defined from test.xml
$ sudo virsh pool-build test
Pool test built
$ sudo virsh pool-start test
Pool test started
$ sudo virsh pool-destroy test
Pool test destroyed
$ sudo virsh pool-delete test
Pool test deleted
$ sudo virsh pool-undefine test
Pool test has been undefined
This commits can be a solution for RHBZ #1475227.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1475227
Signed-off-by: Julio Faracco <jcfaracco(a)gmail.com>
---
examples/object-events/event-test.c | 4 ++++
include/libvirt/libvirt-storage.h | 2 ++
src/storage/storage_driver.c | 17 +++++++++++++++++
src/test/test_driver.c | 14 ++++++++++++++
tools/virsh-pool.c | 4 +++-
5 files changed, 40 insertions(+), 1 deletion(-)
diff --git a/examples/object-events/event-test.c b/examples/object-events/event-test.c
index 78d2008..a144638 100644
--- a/examples/object-events/event-test.c
+++ b/examples/object-events/event-test.c
@@ -356,6 +356,10 @@ storagePoolEventToString(int event)
return "Started";
case VIR_STORAGE_POOL_EVENT_STOPPED:
return "Stopped";
+ case VIR_STORAGE_POOL_EVENT_CREATED:
+ return "Created";
+ case VIR_STORAGE_POOL_EVENT_DELETED:
+ return "Deleted";
case VIR_STORAGE_POOL_EVENT_LAST:
break;
}
diff --git a/include/libvirt/libvirt-storage.h b/include/libvirt/libvirt-storage.h
index 4517f71..736e2e3 100644
--- a/include/libvirt/libvirt-storage.h
+++ b/include/libvirt/libvirt-storage.h
@@ -465,6 +465,8 @@ typedef enum {
VIR_STORAGE_POOL_EVENT_UNDEFINED = 1,
VIR_STORAGE_POOL_EVENT_STARTED = 2,
VIR_STORAGE_POOL_EVENT_STOPPED = 3,
+ VIR_STORAGE_POOL_EVENT_CREATED = 4,
+ VIR_STORAGE_POOL_EVENT_DELETED = 5,
# ifdef VIR_ENUM_SENTINELS
VIR_STORAGE_POOL_EVENT_LAST
diff --git a/src/storage/storage_driver.c b/src/storage/storage_driver.c
index 7cf5943..5e50415 100644
--- a/src/storage/storage_driver.c
+++ b/src/storage/storage_driver.c
@@ -959,6 +959,7 @@ storagePoolBuild(virStoragePoolPtr pool,
{
virStoragePoolObjPtr obj;
virStorageBackendPtr backend;
+ virObjectEventPtr event = NULL;
int ret = -1;
if (!(obj = virStoragePoolObjFromStoragePool(pool)))
@@ -980,9 +981,17 @@ storagePoolBuild(virStoragePoolPtr pool,
if (backend->buildPool &&
backend->buildPool(pool->conn, obj, flags) < 0)
goto cleanup;
+
+ event = virStoragePoolEventLifecycleNew(obj->def->name,
+ obj->def->uuid,
+ VIR_STORAGE_POOL_EVENT_CREATED,
+ 0);
+
ret = 0;
cleanup:
+ if (event)
+ virObjectEventStateQueue(driver->storageEventState, event);
virStoragePoolObjUnlock(obj);
return ret;
}
@@ -1062,6 +1071,7 @@ storagePoolDelete(virStoragePoolPtr pool,
{
virStoragePoolObjPtr obj;
virStorageBackendPtr backend;
+ virObjectEventPtr event = NULL;
char *stateFile = NULL;
int ret = -1;
@@ -1106,9 +1116,16 @@ storagePoolDelete(virStoragePoolPtr pool,
if (backend->deletePool(pool->conn, obj, flags) < 0)
goto cleanup;
+ event = virStoragePoolEventLifecycleNew(obj->def->name,
+ obj->def->uuid,
+ VIR_STORAGE_POOL_EVENT_DELETED,
+ 0);
+
ret = 0;
cleanup:
+ if (event)
+ virObjectEventStateQueue(driver->storageEventState, event);
virStoragePoolObjUnlock(obj);
return ret;
}
diff --git a/src/test/test_driver.c b/src/test/test_driver.c
index aa38f54..0a2cde7 100644
--- a/src/test/test_driver.c
+++ b/src/test/test_driver.c
@@ -4562,13 +4562,20 @@ testStoragePoolBuild(virStoragePoolPtr pool,
{
testDriverPtr privconn = pool->conn->privateData;
virStoragePoolObjPtr obj;
+ virObjectEventPtr event = NULL;
virCheckFlags(0, -1);
if (!(obj = testStoragePoolObjFindInactiveByName(privconn, pool->name)))
return -1;
+ event = virStoragePoolEventLifecycleNew(pool->name, pool->uuid,
+ VIR_STORAGE_POOL_EVENT_CREATED,
+ 0);
+
virStoragePoolObjUnlock(obj);
+
+ testObjectEventQueue(privconn, event);
return 0;
}
@@ -4653,12 +4660,19 @@ testStoragePoolDelete(virStoragePoolPtr pool,
{
testDriverPtr privconn = pool->conn->privateData;
virStoragePoolObjPtr obj;
+ virObjectEventPtr event = NULL;
virCheckFlags(0, -1);
if (!(obj = testStoragePoolObjFindInactiveByName(privconn, pool->name)))
return -1;
+ event = virStoragePoolEventLifecycleNew(pool->name, pool->uuid,
+ VIR_STORAGE_POOL_EVENT_DELETED,
+ 0);
+
+ testObjectEventQueue(privconn, event);
+
virStoragePoolObjUnlock(obj);
return 0;
}
diff --git a/tools/virsh-pool.c b/tools/virsh-pool.c
index ba9281f..558461b 100644
--- a/tools/virsh-pool.c
+++ b/tools/virsh-pool.c
@@ -1952,7 +1952,9 @@ VIR_ENUM_IMPL(virshPoolEvent,
N_("Defined"),
N_("Undefined"),
N_("Started"),
- N_("Stopped"))
+ N_("Stopped"),
+ N_("Created"),
+ N_("Deleted"))
static const char *
virshPoolEventToString(int event)
--
2.7.4
2
1
The util/vircrypto.c file uses gnutls, so we must directly link
libvirt_util.la with gnutls to avoid errors on OS which do not
resolve symbols against indirectly linked libraries.
This fixes a build failure on Ubuntu Trusty
CCLD storagevolxml2argvtest
/usr/bin/ld: ../src/.libs/libvirt_util.a(libvirt_util_la-vircrypto.o): undefined reference to symbol 'gnutls_strerror@@GNUTLS_1_4'
//usr/lib/x86_64-linux-gnu/libgnutls.so.26: error adding symbols: DSO missing from command line
Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
---
Pushed as a build breaker fix
src/Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Makefile.am b/src/Makefile.am
index c3c7a8f04..173fba1e6 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1224,7 +1224,7 @@ libvirt_util_la_LIBADD = $(CAPNG_LIBS) $(YAJL_LIBS) $(LIBNL_LIBS) \
$(THREAD_LIBS) $(AUDIT_LIBS) $(DEVMAPPER_LIBS) \
$(LIB_CLOCK_GETTIME) $(DBUS_LIBS) $(WIN32_EXTRA_LIBS) $(LIBXML_LIBS) \
$(SECDRIVER_LIBS) $(NUMACTL_LIBS) $(ACL_LIBS) \
- $(POLKIT_LIBS)
+ $(POLKIT_LIBS) $(GNUTLS_LIBS)
noinst_LTLIBRARIES += libvirt_conf.la
--
2.13.5
2
2
The patch passes the reconnect timeout to QEMU by monitor on chardev hotplug.
Signed-off-by: ZhiPeng Lu <lu.zhipeng(a)zte.com.cn>
---
v1->v2:
- Fix syntax errors about Curly brackets
---
src/qemu/qemu_monitor_json.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
index df5fb7c..290a037 100644
--- a/src/qemu/qemu_monitor_json.c
+++ b/src/qemu/qemu_monitor_json.c
@@ -6444,6 +6444,17 @@ int qemuMonitorJSONGetTPMTypes(qemuMonitorPtr mon,
return qemuMonitorJSONGetStringArray(mon, "query-tpm-types", tpmtypes);
}
+static int
+qemuMonitorJSONBuildChrChardevReconnect(virJSONValuePtr object,
+ const virDomainChrSourceReconnectDef *def)
+{
+ int ret = 0;
+
+ if (def->enabled == VIR_TRISTATE_BOOL_YES)
+ ret = virJSONValueObjectAppendNumberUint(object, "reconnect", def->timeout);
+ return ret;
+}
+
static virJSONValuePtr
qemuMonitorJSONAttachCharDevCommand(const char *chrID,
const virDomainChrSourceDef *chr)
@@ -6508,6 +6519,9 @@ qemuMonitorJSONAttachCharDevCommand(const char *chrID,
if (virJSONValueObjectAppendString(data, "tls-creds", tlsalias) < 0)
goto cleanup;
}
+
+ if (qemuMonitorJSONBuildChrChardevReconnect(data, &chr->data.tcp.reconnect) < 0)
+ goto cleanup;
break;
case VIR_DOMAIN_CHR_TYPE_UDP:
@@ -6545,6 +6559,9 @@ qemuMonitorJSONAttachCharDevCommand(const char *chrID,
if (virJSONValueObjectAppendBoolean(data, "wait", false) < 0 ||
virJSONValueObjectAppendBoolean(data, "server", chr->data.nix.listen) < 0)
goto cleanup;
+
+ if (qemuMonitorJSONBuildChrChardevReconnect(data, &chr->data.nix.reconnect) < 0)
+ goto cleanup;
break;
case VIR_DOMAIN_CHR_TYPE_SPICEVMC:
--
1.8.3.1
2
1
[libvirt] [PATCH v7 00/11] Add support for Veritas HyperScale (VxHS) block device protocol
by John Ferlan 19 Sep '17
by John Ferlan 19 Sep '17
19 Sep '17
v6: https://www.redhat.com/archives/libvir-list/2017-August/msg00993.html
Changes/notes since v6:
Patch1 - Used the "right" process to create the files. There's also a
separate patch on list which I used mainly to "extract" the
details/needs from being associated specifically with the
addition of VxHS support
Patch2 - Altered the commit message slightly to note that lack of
ability to actually check that even though something is
introspectible, there's no "non-hacky" way to determine if
the QEMU image being used was built "--enable=vxhs" *unless*
(as Jeff Cody points out) we scan --help output for vxhs within
the "Supported formats:" line. We're avoiding that path for
many different reasons.
Patch3 -> Patch5
- No change, patches ACKed.
Patch6 - Removed qemuCaps from qemuBlockStorageSourceGetVxHSProps and
created a qemuProcessStartValidateDisks which will run the
disk list looking for NETWORK and VXHS to ensure the
QEMU_CAPS_VXHS bit is set. Also added a note here similar
to patch2 describing the "gotcha" with the processing.
Patch7 - Altered the text of the vxhs_tls description a bit, not much
Patch8 - Altered the formatdomain.html.in description a bit in order to
remove the previous restriction surrounding when vxhs_tls = 0,
but src->haveTLS = YES.
Added a tlsFromConfig boolean to virStorageSource to match the
same logic as chardev's use. Documented it's use though as every
time I've read that for chardev, I've first said tlsFromConfig
must mean domain config, when in fact it's meant to be qemu.conf.
Make code adjustments to handle tlsFromConfig
Patch9 - Altered the order here - used to be flip-flopped with subsequent
patch. Create the qemuDomainPrepareDiskSource[TLS] API's in order
manage the src->haveTLS setting just as we've done for chardev.
Also, introduce and manage a virStorageSource "tlsAlias" field.
This is where we'll "set" the alias to be used.
Patch10- Fixed up the virStorageSourceParseBackingJSONVxHS and
TEST_BACKING_PARSE to manage the new src->tlsAlias field.
Patch11- Make this all work for qemu_command *and* qemu_hotplug - well
theoretically at least.
The hotplug code is new in this patch - it has essentially
copied what was needed from qemuDomainAddChardevTLSObjects
and applied it to the needs for disks in general, but mainly
for VxHS in particular.
The qemuDomainAddDiskTLSObjects also doesn't set a 'tlscreds'
boolean like Chardev does since JSON object generation doesn't
occur in the depths of qemu_monitor_json, but rather it occurs
in qemu_block and we have everything we need there. Probably
could have done the chardev code differently to keep the TLS
alias around...
Although I don't believe VxHS has support/need for MassUSB
and SCSI Disk operations, adding the infrastructure there
should be usable for future needs. I also left a note about
future needs that may arise if some network disk type requires
a secret to decrypt a server key (although I cannot imagine
the need, someone else may have a better imagination than me).
The rest of the qemu_command changes remove the qemuCaps and
diskAlias parameters from the qemuBlockStorageSourceGetBackendProps
API and use what's been (hopefully) properly set up during
qemuDomainPrepareDiskSourceTLS.
Finally former patch12 has been removed since there is no
restriction regarding vxhs_tls = 0 and "tls = 'yes'"... Also
former patch13 has been merged into patch11.
Still to be done:
Patch12 - A news.xml article for 3.8.0, but 3.7.0 isn't closed yet
so I'm waiting...
Testing, testing, testing, testing, testing, and more testing. Hopefully
even some hotplug testing as I have absolutely no way to know if the
changes I've made actually work since I don't have a Veritas enviroment
set up. I leave the testing/debugging to Ashish.
I do believe that patches 1-5 (e.g. everything not TLS related are
reasonable and ready once 3.8.0 opens for business).
Ashish Mittal (8):
storage: Introduce VIR_STORAGE_NET_PROTOCOL_VXHS
docs: Add schema and docs for Veritas HyperScale (VxHS)
util: storage: Add JSON backing volume parse for VxHS
qemu: Add qemu command line generation for a VxHS block device
conf: Introduce TLS options for VxHS block device clients
util: Add TLS attributes to virStorageSource
util: Add virstoragetest to parse/format a tls='yes'
qemu: Add TLS support for Veritas HyperScale (VxHS)
John Ferlan (3):
qemu: Add QEMU 2.10 x86_64 the generated capabilities
qemu: Detect support for vxhs
qemu: Introduce qemuDomainPrepareDiskSource
docs/formatdomain.html.in | 45 +-
docs/schemas/domaincommon.rng | 18 +
src/conf/domain_conf.c | 28 +-
src/libxl/libxl_conf.c | 1 +
src/qemu/libvirtd_qemu.aug | 4 +
src/qemu/qemu.conf | 34 +
src/qemu/qemu_block.c | 44 +
src/qemu/qemu_capabilities.c | 4 +
src/qemu/qemu_capabilities.h | 3 +
src/qemu/qemu_command.c | 38 +
src/qemu/qemu_conf.c | 16 +
src/qemu/qemu_conf.h | 3 +
src/qemu/qemu_domain.c | 71 +
src/qemu/qemu_domain.h | 11 +
src/qemu/qemu_driver.c | 3 +
src/qemu/qemu_hotplug.c | 73 +
src/qemu/qemu_parse_command.c | 15 +
src/qemu/qemu_process.c | 33 +
src/qemu/test_libvirtd_qemu.aug.in | 2 +
src/util/virstoragefile.c | 58 +-
src/util/virstoragefile.h | 14 +
src/xenconfig/xen_xl.c | 1 +
.../caps_2.10.0.x86_64.replies | 18144 +++++++++++++++++++
tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml | 799 +
tests/qemucapabilitiestest.c | 1 +
...-disk-drive-network-tlsx509-multidisk-vxhs.args | 43 +
...v-disk-drive-network-tlsx509-multidisk-vxhs.xml | 50 +
...muxml2argv-disk-drive-network-tlsx509-vxhs.args | 30 +
...emuxml2argv-disk-drive-network-tlsx509-vxhs.xml | 32 +
.../qemuxml2argv-disk-drive-network-vxhs.args | 27 +
.../qemuxml2argv-disk-drive-network-vxhs.xml | 32 +
tests/qemuxml2argvtest.c | 8 +
...uxml2xmlout-disk-drive-network-tlsx509-vxhs.xml | 34 +
.../qemuxml2xmlout-disk-drive-network-vxhs.xml | 34 +
tests/qemuxml2xmltest.c | 2 +
tests/virstoragetest.c | 23 +
36 files changed, 19766 insertions(+), 12 deletions(-)
create mode 100644 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.replies
create mode 100644 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-tlsx509-multidisk-vxhs.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-tlsx509-multidisk-vxhs.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-tlsx509-vxhs.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-tlsx509-vxhs.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-vxhs.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-vxhs.xml
create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-network-tlsx509-vxhs.xml
create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-network-vxhs.xml
--
2.9.5
4
22
19 Sep '17
v2 fixes bug introduced by attempting to split the change into two
patches.
Peter Krempa (2):
qemu: blockPeek: Fix filling of the return buffer
qemu: blockPeek: Enforce buffer filling
src/qemu/qemu_driver.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
--
2.14.1
2
3
Enable builds on several python versions, and against several versions
of libvirt. Ideally we would build all the way back to 0.9.11, since
that is the min supported libvirt for python binding. It is not possible
to build this old libvirt version on modern distros though, so using
1.2.0 as the oldest for now.
Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
---
.travis.yml | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++
requirements-test.txt | 2 ++
setup.py | 15 +++++++-------
3 files changed, 65 insertions(+), 7 deletions(-)
create mode 100644 .travis.yml
create mode 100644 requirements-test.txt
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..f608ca1
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,55 @@
+language: python
+os: linux
+
+python:
+ - 2.6
+ - 2.7
+ - 3.2
+ - 3.6
+
+env:
+ - LIBVIRT=1.2.0 EXT=gz
+ - LIBVIRT=2.0.0 EXT=xz
+ - LIBVIRT=3.6.0 EXT=xz
+
+install:
+ - sudo apt-get -qqy build-dep libvirt libxml2-dev
+ - sudo apt-get -qqy install curl
+ - pip install -r requirements-test.txt
+ - curl -O -s https://libvirt.org/sources/libvirt-${LIBVIRT}.tar.${EXT}
+ - tar -xf libvirt-${LIBVIRT}.tar.${EXT}
+ - pushd libvirt-${LIBVIRT}
+ - |
+ ./configure --prefix=`pwd`/../libvirt-vroot \
+ --without-libvirtd \
+ --without-esx \
+ --without-vbox \
+ --without-libxl \
+ --without-xen \
+ --without-qemu \
+ --without-lxc \
+ --without-hyperv \
+ --without-macvtap \
+ --disable-werror
+ - make
+ - make install
+ - popd
+
+script:
+ - LD_LIBRARY_PATH=`pwd`/libvirt-vroot/lib PKG_CONFIG_PATH=`pwd`/libvirt-vroot/lib/pkgconfig python setup.py build sdist test
+
+notifications:
+ irc:
+ # The channel name "irc.oftc.net#virt" is encrypted against libvirt/libvirt-python
+ # to prevent IRC notifications from github forks. This was created using:
+ # $ travis encrypt -r "libvirt/libvirt-python" "irc.oftc.net#virt"
+ channels:
+ - secure: "K4JrbRpz4CHtZ1vjthVwseT8K6INJgjtZethP4DN1jOpm1uC5esbe1Q1qJOfB92JbMcdM6DNjrVg5eyTJj35aD9UoGpTUcPMsYrhlTPHZtfAuLv/at2eB2XRmETlhiXHgI6LizX6gTiwGW5ZHYwGChzumWxu141d/L9harNh9R6z8XH9uJpkNdOAIsJcwS56XGZ74CKsrqF5dK6ZYPIyP+i7gPO67gEWo0oD6TiJKR908fw03ZiXarIFmLRlk4MbHywLRF0byfD0gg2Ht/tDX73+59QXjLKo/GvQecwoU8UuuFRJlyhUfvm1JYYydnS+O7fPJvI0FWlYFY7i76aeVqkARHRpHknFueT6kZADOmiyMLuvdr+gWVuyIdX33vVJtDm4T1OtNMG/wy9EUZUU1vEu+gHhaRkf/O0GkMj0Hac4I14BGyd/Wdhto6zWojFiMEG/HRHey6l15MBQu49QyW/YMyWi/LeBWXuCUgwQ/ij5EPgsn36OxCafV9zMz0oXZskwX6rJGQRZsdgdwYvt2hP3muLaJbwVyT0bGlOJDJieOa/LVKOXPcQm26aGfyMuLgm0//E9v++6W1IDKh6+BNsfTKAwTxlAvJyz6Bns3XuUJUxUz2+uQVSS6S3EwEZUJ+yHDd2F4sX5OP1L7TWIOWFbI4vQK90ZZ7/jgiYQbwo="
+ on_success: change
+ on_failure: always
+ email:
+ # The list name 'libvirt-ci(a)redhat.com" is encrypted against libvirt/libvirt-python
+ # to prevent IRC notifications from github forks. This was created using:
+ # $ travis encrypt -r "libvirt/libvirt-python" "libvirt-ci(a)redhat.com"
+ recipients:
+ - secure: "l6TTLcEcXdDEldHE2NgSIdt6a0k99ug3hp2W4IlnqJWJfIk/87nysJtLNrA0va20pPApCa3iJfMq4PUmBGiIIimTN0/KgC7tONDraogXhCbgfZp9Ejy/57TXxygSp4oum2kDw/c5uLnfrFV/xcn1fk6hvH6CD3bVcJPOQ/mc5FSKLqN5UzwqNnMpMTtG9qxCwfXJ/Bdm9fbURfezC7djcYRwRfPUe3TSD0L76G2HnQnSy4RqR3KFSjQHFPnSGM5IbsokbOaFKCyp/pHOt7QomQaY7YAPX/K9O+eP+hkkp6DGADkkumHctcgnMoyxpahf7pNKw9S8JYabH2NwREIq8whbp9Mo+R4rYO2ozroLWHaboYs/pBLrs606ivTwOmWGRCpJdCmmKTiZNyo6MRrwiOM6x+2YHUTMOa2kVheRNzaaxMFzHPW2kZ20bujPhfViJsRYj9flo5GJXJLyjluGZK5RjrguNJeIh8VJNBiSHW37uj7drmNBsqMad+65mf/4xtGITBqhz5Spx5R9UMZbuiJvcm8GasJMMdQ+bCfuWYjF2nZvSvFEr54Ii1YrDp6FKQ8YG1aD1/D8Z0/b3pLd/8Pn+M9yIWyO/Sto5TbSUjxBTmTStuDmtYE5uu1miYebvgJH5MovWPBegYgrfI417kPJgCG3q/R0YcZFMKFfQyo="
diff --git a/requirements-test.txt b/requirements-test.txt
new file mode 100644
index 0000000..7435c54
--- /dev/null
+++ b/requirements-test.txt
@@ -0,0 +1,2 @@
+nose
+lxml
diff --git a/setup.py b/setup.py
index f33ff1a..e8c498c 100755
--- a/setup.py
+++ b/setup.py
@@ -290,15 +290,16 @@ class my_test(Command):
'lib' + plat_specifier)
def find_nosetests_path(self):
- paths = [
- "/usr/bin/nosetests-%d.%d" % (sys.version_info[0],
- sys.version_info[1]),
- "/usr/bin/nosetests-%d" % (sys.version_info[0]),
- "/usr/bin/nosetests",
+ binaries = [
+ "nosetests-%d.%d" % (sys.version_info[0],
+ sys.version_info[1]),
+ "nosetests-%d" % (sys.version_info[0]),
+ "nosetests",
]
- for path in paths:
- if os.path.exists(path):
+ for binary in binaries:
+ path = distutils.spawn.find_executable(binary)
+ if path is not None:
return path
raise Exception("Cannot find any nosetests binary")
--
2.13.5
2
1
[libvirt] [PATCH v8 00/11] Add support for Veritas HyperScale (VxHS) block device protocol
by John Ferlan 19 Sep '17
by John Ferlan 19 Sep '17
19 Sep '17
v7: https://www.redhat.com/archives/libvir-list/2017-September/msg00035.html
Patches 1-4 are already ACK'd, but are presented again for completeness
Differences:
* Former patch1 already pushed (QEMU 2.10 replies and xml changes)
* Patch 5 is new - to split up the server args into a single server
JSON object creation helper so that it can be used by VxHS code in
patch 6
* Patch 6 uses the new function and alters the .args output to remove
the ".0"
* Patches 7-10, no change
* Patch 11 - adjust the .args output to remove the ".0"
Ashish Mittal (9):
storage: Introduce VIR_STORAGE_NET_PROTOCOL_VXHS
docs: Add schema and docs for Veritas HyperScale (VxHS)
util: storage: Add JSON backing volume parse for VxHS
qemu: Refactor qemuBlockStorageSourceBuildHostsJSONSocketAddress
qemu: Add qemu command line generation for a VxHS block device
conf: Introduce TLS options for VxHS block device clients
util: Add TLS attributes to virStorageSource
util: Add virstoragetest to parse/format a tls='yes'
qemu: Add TLS support for Veritas HyperScale (VxHS)
John Ferlan (2):
qemu: Detect support for vxhs
qemu: Introduce qemuDomainPrepareDiskSource
docs/formatdomain.html.in | 45 +++++--
docs/schemas/domaincommon.rng | 18 +++
src/conf/domain_conf.c | 28 +++-
src/libxl/libxl_conf.c | 1 +
src/qemu/libvirtd_qemu.aug | 4 +
src/qemu/qemu.conf | 34 +++++
src/qemu/qemu_block.c | 150 ++++++++++++++++-----
src/qemu/qemu_capabilities.c | 4 +
src/qemu/qemu_capabilities.h | 3 +
src/qemu/qemu_command.c | 38 ++++++
src/qemu/qemu_conf.c | 16 +++
src/qemu/qemu_conf.h | 3 +
src/qemu/qemu_domain.c | 71 ++++++++++
src/qemu/qemu_domain.h | 11 ++
src/qemu/qemu_driver.c | 3 +
src/qemu/qemu_hotplug.c | 73 ++++++++++
src/qemu/qemu_parse_command.c | 15 +++
src/qemu/qemu_process.c | 33 +++++
src/qemu/test_libvirtd_qemu.aug.in | 2 +
src/util/virstoragefile.c | 58 +++++++-
src/util/virstoragefile.h | 14 ++
src/xenconfig/xen_xl.c | 1 +
tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml | 1 +
...-disk-drive-network-tlsx509-multidisk-vxhs.args | 43 ++++++
...v-disk-drive-network-tlsx509-multidisk-vxhs.xml | 50 +++++++
...muxml2argv-disk-drive-network-tlsx509-vxhs.args | 30 +++++
...emuxml2argv-disk-drive-network-tlsx509-vxhs.xml | 32 +++++
.../qemuxml2argv-disk-drive-network-vxhs.args | 27 ++++
.../qemuxml2argv-disk-drive-network-vxhs.xml | 32 +++++
tests/qemuxml2argvtest.c | 8 ++
...uxml2xmlout-disk-drive-network-tlsx509-vxhs.xml | 34 +++++
.../qemuxml2xmlout-disk-drive-network-vxhs.xml | 34 +++++
tests/qemuxml2xmltest.c | 2 +
tests/virstoragetest.c | 23 ++++
34 files changed, 893 insertions(+), 48 deletions(-)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-tlsx509-multidisk-vxhs.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-tlsx509-multidisk-vxhs.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-tlsx509-vxhs.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-tlsx509-vxhs.xml
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-vxhs.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-vxhs.xml
create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-network-tlsx509-vxhs.xml
create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-drive-network-vxhs.xml
--
2.13.5
2
22
19 Sep '17
This is an issue that's bugging me for a long time. I don't know
exactly when and who is to blame but on daemon reconnect we lose
qemu's port allocator internal state. That's okay as we should be
able to rebuild it later. However, now I'm seeing port allocator
biding successfully to ports that are already taken by qemu
(either VNC or Spice). Thus any attempt to start another domain
after daemon is restarted fails because libvirt instructs qemu to
take port 5900 which is already taken.
Now, I don't want to mask the real problem, but one can advocate
that we should be marking graphics ports as already in use on
qemuProcessReconnect anyway, because we already know that they
are taken.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
src/qemu/qemu_process.c | 17 +++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index d3155e4e7..053aba1a6 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -4035,7 +4035,8 @@ qemuProcessStartHook(virQEMUDriverPtr driver,
static int
qemuProcessGraphicsReservePorts(virQEMUDriverPtr driver,
- virDomainGraphicsDefPtr graphics)
+ virDomainGraphicsDefPtr graphics,
+ bool reconnect)
{
virDomainGraphicsListenDefPtr glisten;
@@ -4050,7 +4051,8 @@ qemuProcessGraphicsReservePorts(virQEMUDriverPtr driver,
switch (graphics->type) {
case VIR_DOMAIN_GRAPHICS_TYPE_VNC:
- if (!graphics->data.vnc.autoport) {
+ if (!graphics->data.vnc.autoport ||
+ reconnect) {
if (virPortAllocatorSetUsed(driver->remotePorts,
graphics->data.vnc.port,
true) < 0)
@@ -4065,7 +4067,7 @@ qemuProcessGraphicsReservePorts(virQEMUDriverPtr driver,
break;
case VIR_DOMAIN_GRAPHICS_TYPE_SPICE:
- if (graphics->data.spice.autoport)
+ if (graphics->data.spice.autoport && !reconnect)
return 0;
if (graphics->data.spice.port > 0) {
@@ -4269,7 +4271,7 @@ qemuProcessSetupGraphics(virQEMUDriverPtr driver,
for (i = 0; i < vm->def->ngraphics; i++) {
graphics = vm->def->graphics[i];
- if (qemuProcessGraphicsReservePorts(driver, graphics) < 0)
+ if (qemuProcessGraphicsReservePorts(driver, graphics, false) < 0)
goto cleanup;
}
}
@@ -6881,6 +6883,13 @@ qemuProcessReconnect(void *opaque)
goto error;
}
+ for (i = 0; i < obj->def->ngraphics; i++) {
+ if (qemuProcessGraphicsReservePorts(driver,
+ obj->def->graphics[i],
+ true) < 0)
+ goto error;
+ }
+
if (qemuProcessUpdateState(driver, obj) < 0)
goto error;
--
2.13.5
3
4
19 Sep '17
Turns out a build job can be stuck waiting for a macOS worker to
become available for a pretty long time: if more than 5 commits
have been pushed in the meantime, the clone will be too shallow
for the worker to find the commit it's supposed to verify, and
the build job will fail.
See https://travis-ci.org/libvirt/libvirt/jobs/277244110 for an
example of the failure described.
This reverts commit 2e975abdc9bbc9e965486e8486cc17a771cdaeb3.
Signed-off-by: Andrea Bolognani <abologna(a)redhat.com>
---
.travis.yml | 1 -
1 file changed, 1 deletion(-)
diff --git a/.travis.yml b/.travis.yml
index b3e73bcf7..480419dfd 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -75,7 +75,6 @@ addons:
- zfs-fuse
git:
- depth: 5
submodules: true
env:
--
2.13.5
2
1
[libvirt] [PATCH v2 0/2] perl/python: Don't hardcode interpreter path
by Andrea Bolognani 19 Sep '17
by Andrea Bolognani 19 Sep '17
19 Sep '17
Changes from [v1]:
* fix all Perl scripts instead of a single one;
* fix all Python scripts as well.
[v1] https://www.redhat.com/archives/libvir-list/2017-September/msg00504.html
Andrea Bolognani (2):
perl: Don't hardcode interpreter path
python: Don't hardcode interpreter path
build-aux/augeas-gentest.pl | 2 +-
build-aux/check-spacing.pl | 2 +-
build-aux/mock-noinline.pl | 2 +-
build-aux/prohibit-duplicate-header.pl | 2 +-
docs/apibuild.py | 2 +-
docs/genaclperms.pl | 2 +-
docs/hvsupport.pl | 2 +-
docs/index.py | 2 +-
docs/reformat-news.py | 2 +-
src/access/genpolkit.pl | 2 +-
src/check-aclperms.pl | 2 +-
src/check-aclrules.pl | 2 +-
src/check-driverimpls.pl | 2 +-
src/check-drivername.pl | 2 +-
src/check-symfile.pl | 2 +-
src/check-symsorting.pl | 2 +-
src/dtrace2systemtap.pl | 2 +-
src/esx/esx_vi_generator.py | 2 +-
src/hyperv/hyperv_wmi_generator.py | 2 +-
src/rpc/gendispatch.pl | 3 ++-
src/rpc/genprotocol.pl | 1 +
src/rpc/gensystemtap.pl | 2 +-
tests/check-file-access.pl | 2 +-
tests/cputestdata/cpu-cpuid.py | 2 +-
tests/oomtrace.pl | 2 +-
25 files changed, 26 insertions(+), 24 deletions(-)
--
2.13.5
2
3
Enable builds on several python versions, and against several versions
of libvirt. Ideally we would build all the way back to 0.9.11, since
that is the min supported libvirt for python binding. It is not possible
to build this old libvirt version on modern distros though, so using
1.2.0 as the oldest for now.
Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
---
.travis.yml | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
setup.py | 13 +++++++------
2 files changed, 62 insertions(+), 6 deletions(-)
create mode 100644 .travis.yml
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..203d91d
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,55 @@
+language: python
+os: linux
+
+python:
+ - 2.6
+ - 2.7
+ - 3.2
+ - 3.6
+
+env:
+ - LIBVIRT=1.2.0 EXT=gz
+ - LIBVIRT=2.0.0 EXT=xz
+ - LIBVIRT=3.6.0 EXT=xz
+
+install:
+ - sudo apt-get -qqy build-dep libvirt libxml2-dev
+ - sudo apt-get -qqy install curl
+ - pip install lxml nose
+ - curl -O -s https://libvirt.org/sources/libvirt-${LIBVIRT}.tar.${EXT}
+ - tar -xf libvirt-${LIBVIRT}.tar.${EXT}
+ - pushd libvirt-${LIBVIRT}
+ - |
+ ./configure --prefix=`pwd`/../libvirt-vroot \
+ --without-libvirtd \
+ --without-esx \
+ --without-vbox \
+ --without-libxl \
+ --without-xen \
+ --without-qemu \
+ --without-lxc \
+ --without-hyperv \
+ --without-macvtap \
+ --disable-werror
+ - make
+ - make install
+ - popd
+
+script:
+ - LD_LIBRARY_PATH=`pwd`/libvirt-vroot/lib PKG_CONFIG_PATH=`pwd`/libvirt-vroot/lib/pkgconfig python setup.py build sdist test
+
+notifications:
+ irc:
+ # The channel name "irc.oftc.net#virt" is encrypted against libvirt/libvirt
+ # to prevent IRC notifications from github forks. This was created using:
+ # $ travis encrypt -r "libvirt/libvirt" "irc.oftc.net#virt"
+ channels:
+ - secure: "K4JrbRpz4CHtZ1vjthVwseT8K6INJgjtZethP4DN1jOpm1uC5esbe1Q1qJOfB92JbMcdM6DNjrVg5eyTJj35aD9UoGpTUcPMsYrhlTPHZtfAuLv/at2eB2XRmETlhiXHgI6LizX6gTiwGW5ZHYwGChzumWxu141d/L9harNh9R6z8XH9uJpkNdOAIsJcwS56XGZ74CKsrqF5dK6ZYPIyP+i7gPO67gEWo0oD6TiJKR908fw03ZiXarIFmLRlk4MbHywLRF0byfD0gg2Ht/tDX73+59QXjLKo/GvQecwoU8UuuFRJlyhUfvm1JYYydnS+O7fPJvI0FWlYFY7i76aeVqkARHRpHknFueT6kZADOmiyMLuvdr+gWVuyIdX33vVJtDm4T1OtNMG/wy9EUZUU1vEu+gHhaRkf/O0GkMj0Hac4I14BGyd/Wdhto6zWojFiMEG/HRHey6l15MBQu49QyW/YMyWi/LeBWXuCUgwQ/ij5EPgsn36OxCafV9zMz0oXZskwX6rJGQRZsdgdwYvt2hP3muLaJbwVyT0bGlOJDJieOa/LVKOXPcQm26aGfyMuLgm0//E9v++6W1IDKh6+BNsfTKAwTxlAvJyz6Bns3XuUJUxUz2+uQVSS6S3EwEZUJ+yHDd2F4sX5OP1L7TWIOWFbI4vQK90ZZ7/jgiYQbwo="
+ on_success: change
+ on_failure: always
+ email:
+ # The list name 'libvirt-ci(a)redhat.com" is encrypted against libvirt/libvirt
+ # to prevent IRC notifications from github forks. This was created using:
+ # $ travis encrypt -r "libvirt/libvirt" "libvirt-ci(a)redhat.com"
+ recipients:
+ - secure: "l6TTLcEcXdDEldHE2NgSIdt6a0k99ug3hp2W4IlnqJWJfIk/87nysJtLNrA0va20pPApCa3iJfMq4PUmBGiIIimTN0/KgC7tONDraogXhCbgfZp9Ejy/57TXxygSp4oum2kDw/c5uLnfrFV/xcn1fk6hvH6CD3bVcJPOQ/mc5FSKLqN5UzwqNnMpMTtG9qxCwfXJ/Bdm9fbURfezC7djcYRwRfPUe3TSD0L76G2HnQnSy4RqR3KFSjQHFPnSGM5IbsokbOaFKCyp/pHOt7QomQaY7YAPX/K9O+eP+hkkp6DGADkkumHctcgnMoyxpahf7pNKw9S8JYabH2NwREIq8whbp9Mo+R4rYO2ozroLWHaboYs/pBLrs606ivTwOmWGRCpJdCmmKTiZNyo6MRrwiOM6x+2YHUTMOa2kVheRNzaaxMFzHPW2kZ20bujPhfViJsRYj9flo5GJXJLyjluGZK5RjrguNJeIh8VJNBiSHW37uj7drmNBsqMad+65mf/4xtGITBqhz5Spx5R9UMZbuiJvcm8GasJMMdQ+bCfuWYjF2nZvSvFEr54Ii1YrDp6FKQ8YG1aD1/D8Z0/b3pLd/8Pn+M9yIWyO/Sto5TbSUjxBTmTStuDmtYE5uu1miYebvgJH5MovWPBegYgrfI417kPJgCG3q/R0YcZFMKFfQyo="
diff --git a/setup.py b/setup.py
index f33ff1a..cc3a09a 100755
--- a/setup.py
+++ b/setup.py
@@ -290,15 +290,16 @@ class my_test(Command):
'lib' + plat_specifier)
def find_nosetests_path(self):
- paths = [
- "/usr/bin/nosetests-%d.%d" % (sys.version_info[0],
+ binaries = [
+ "nosetests-%d.%d" % (sys.version_info[0],
sys.version_info[1]),
- "/usr/bin/nosetests-%d" % (sys.version_info[0]),
- "/usr/bin/nosetests",
+ "nosetests-%d" % (sys.version_info[0]),
+ "nosetests",
]
- for path in paths:
- if os.path.exists(path):
+ for binary in binaries:
+ path = distutils.spawn.find_executable(binary)
+ if path != None:
return path
raise Exception("Cannot find any nosetests binary")
--
2.13.5
2
2
[libvirt] [PATCH 00/19] Privatize _virStoragePoolObj and _virStorageVolDefList
by John Ferlan 19 Sep '17
by John Ferlan 19 Sep '17
19 Sep '17
The last of the storage pool object adjustments.
The first patch is a followup from last series to alter the prototype
for two functions to be "const char *".
The next 17 patches make all the adjustments necessary to move the two
structures into virstoragepoolobj.c
The last patch is listed merely for completeness of using obj instead
of pool, but I really don't care if it's not accepted. Still I present
it to be "more complete" - there could be more just like it for the
various storage_backend_*.c modules, but none are necessary "churn".
Since it was written and in my branch, I just kept/posted it too.
John Ferlan (19):
conf: Fix prototype/definition for virStoragePoolObj get functions
storage: Use virStoragePoolObjGetDef accessor for driver
test: Rename @vol to @volDef in testOpenVolumesForPool
test: Create local virStoragePoolObjPtr VolLookup APIs
test: Use virStoragePoolObjGetDef accessor
storage: Use virStoragePoolObjGetDef accessor for storage_util
storage: Use virStoragePoolObjGetDef accessor for Disk backend
storage: Use virStoragePoolObjGetDef accessor for Logical backend
storage: Use virStoragePoolObjGetDef accessor for Sheepdog backend
storage: Use virStoragePoolObjGetDef accessor for FS backend
storage: Use virStoragePoolObjGetDef accessor for Gluster backend
storage: Use virStoragePoolObjGetDef accessor for iSCSI backend
storage: Use virStoragePoolObjGetDef accessor for MPATH backend
storage: Use virStoragePoolObjGetDef accessor for RBD backend
storage: Use virStoragePoolObjGetDef accessor for SCSI backend
storage: Use virStoragePoolObjGetDef accessor for VSTORAGE backend
storage: Use virStoragePoolObjGetDef accessor for ZFS backend
storage: Privatize virStoragePoolObj and virStorageVolDefList
storage: Change storage_util to use obj instead of pool
src/conf/storage_conf.h | 4 -
src/conf/virstorageobj.c | 24 +-
src/conf/virstorageobj.h | 19 +-
src/storage/storage_backend_disk.c | 98 ++++----
src/storage/storage_backend_fs.c | 90 ++++----
src/storage/storage_backend_gluster.c | 20 +-
src/storage/storage_backend_iscsi.c | 41 ++--
src/storage/storage_backend_logical.c | 63 ++---
src/storage/storage_backend_mpath.c | 8 +-
src/storage/storage_backend_rbd.c | 64 ++---
src/storage/storage_backend_scsi.c | 30 ++-
src/storage/storage_backend_sheepdog.c | 23 +-
src/storage/storage_backend_vstorage.c | 31 +--
src/storage/storage_backend_zfs.c | 39 ++--
src/storage/storage_driver.c | 411 +++++++++++++++++++--------------
src/storage/storage_util.c | 200 ++++++++--------
src/storage/storage_util.h | 30 +--
src/test/test_driver.c | 203 ++++++++--------
18 files changed, 777 insertions(+), 621 deletions(-)
--
2.13.5
1
19
19 Sep '17
Instead of checking for all possible constants that every
kernel header with devlink support should have (and defining
HAVE_DECL_DEVLINK as 1 if any of them is present due to the
way AC_CHECK_DECLS works), only check for DEVLINK_CMD_ESWITCH_GET.
This is the name of the constant since kernel 4.11. Between 4.8
and 4.11, the now deprecated spelling DEVLINK_CMD_ESWITCH_MODE_GET
was used.
---
Yet another version.
configure.ac | 9 +++------
src/util/virnetdev.c | 4 ++--
2 files changed, 5 insertions(+), 8 deletions(-)
diff --git a/configure.ac b/configure.ac
index c9509c7f9..f542359a6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -628,15 +628,12 @@ if test "$with_linux" = "yes"; then
fi
dnl
-dnl check for kernel headers required by devlink
+dnl check for DEVLINK_CMD_ESWITCH_GET, required for checking
+dnl the DEVLINK_ESWITCH_MODE_SWITCHDEV capability
dnl
if test "$with_linux" = "yes"; then
AC_CHECK_HEADERS([linux/devlink.h])
- AC_CHECK_DECLS([DEVLINK_GENL_VERSION, DEVLINK_GENL_NAME, DEVLINK_ATTR_MAX, DEVLINK_CMD_ESWITCH_GET, DEVLINK_ATTR_BUS_NAME, DEVLINK_ATTR_DEV_NAME, DEVLINK_ATTR_ESWITCH_MODE, DEVLINK_ESWITCH_MODE_SWITCHDEV],
- [AC_DEFINE([HAVE_DECL_DEVLINK],
- [1],
- [whether devlink declarations are available])],
- [],
+ AC_CHECK_DECLS([DEVLINK_CMD_ESWITCH_GET], [], [],
[[#include <linux/devlink.h>]])
fi
diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c
index 040693925..41a659732 100644
--- a/src/util/virnetdev.c
+++ b/src/util/virnetdev.c
@@ -59,7 +59,7 @@
# include <net/if_dl.h>
#endif
-#if HAVE_DECL_DEVLINK
+#if HAVE_LINUX_DEVLINK_H
# include <linux/devlink.h>
#endif
@@ -3120,7 +3120,7 @@ virNetDevGetEthtoolFeatures(virBitmapPtr bitmap,
}
-# if HAVE_DECL_DEVLINK
+# if HAVE_DECL_DEVLINK_CMD_ESWITCH_GET
/**
* virNetDevPutExtraHeader
* reserve and prepare room for an extra header
--
2.13.0
3
2
There are some quirks to detecting whether devlink support can be
activated due to symbols being renamed between Linux versions.
Make detection more robust so that the code can once again compile
on RHEL 7 and others.
Signed-off-by: Andrea Bolognani <abologna(a)redhat.com>
---
configure.ac | 26 ++++++++++++++++++++++----
src/util/virnetdev.c | 5 +++++
2 files changed, 27 insertions(+), 4 deletions(-)
diff --git a/configure.ac b/configure.ac
index c9509c7f9..6f03152b4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -632,12 +632,30 @@ dnl check for kernel headers required by devlink
dnl
if test "$with_linux" = "yes"; then
AC_CHECK_HEADERS([linux/devlink.h])
- AC_CHECK_DECLS([DEVLINK_GENL_VERSION, DEVLINK_GENL_NAME, DEVLINK_ATTR_MAX, DEVLINK_CMD_ESWITCH_GET, DEVLINK_ATTR_BUS_NAME, DEVLINK_ATTR_DEV_NAME, DEVLINK_ATTR_ESWITCH_MODE, DEVLINK_ESWITCH_MODE_SWITCHDEV],
- [AC_DEFINE([HAVE_DECL_DEVLINK],
- [1],
- [whether devlink declarations are available])],
+
+ dnl DEVLINK_CMD_ESWITCH_MODE_GET was introduced in Linux 4.8, but Linux
+ dnl 4.11 renamed it to DEVLINK_CMD_ESWITCH_GET. We can use either, but
+ dnl we need at least one of them to be available
+ have_eswitch_get=0
+ AC_CHECK_DECLS([DEVLINK_CMD_ESWITCH_GET, DEVLINK_CMD_ESWITCH_MODE_GET],
+ [have_eswitch_get=1],
+ [],
+ [[#include <linux/devlink.h>]])
+
+ dnl We use a bunch of other symbols as well
+ have_all_others=1
+ AC_CHECK_DECLS([DEVLINK_GENL_VERSION, DEVLINK_GENL_NAME, DEVLINK_ATTR_MAX, DEVLINK_ATTR_BUS_NAME, DEVLINK_ATTR_DEV_NAME, DEVLINK_ATTR_ESWITCH_MODE, DEVLINK_ESWITCH_MODE_SWITCHDEV],
[],
+ [have_all_others=0],
[[#include <linux/devlink.h>]])
+
+ dnl If we have at least one variation of DEVLINK_CMD_ESWITCH_GET *and*
+ dnl all other symbols, then we can enable the devlink code
+ if test have_eswitch_get = 1 && test have_all_others = 1; then
+ AC_DEFINE_UNQUOTED([HAVE_DECL_DEVLINK],
+ [1],
+ [whether devlink declarations are available])
+ fi
fi
dnl Allow perl/python overrides
diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c
index 040693925..1e0a257e1 100644
--- a/src/util/virnetdev.c
+++ b/src/util/virnetdev.c
@@ -3245,7 +3245,12 @@ virNetDevSwitchdevFeature(const char *ifname,
if (!(gmsgh = virNetDevPutExtraHeader(nlmsg_hdr(nl_msg), sizeof(struct genlmsghdr))))
goto cleanup;
+#if HAVE_DEVLINK_CMD_ESWITCH_GET
gmsgh->cmd = DEVLINK_CMD_ESWITCH_GET;
+#elif HAVE_DEVLINK_CMD_ESWITCH_MODE_GET
+ gmsgh->cmd = DEVLINK_CMD_ESWITCH_MODE_GET;
+#endif
+
gmsgh->version = DEVLINK_GENL_VERSION;
pci_device_ptr = pfname ? virNetDevGetPCIDevice(pfname) :
--
2.13.5
2
3
[libvirt] [PATCH] util: Fix configure.ac check for DEVLINK_CMD_ESWITCH_GET
by John Ferlan 19 Sep '17
by John Ferlan 19 Sep '17
19 Sep '17
Rather than checking for whether the devlink.h on the system has
multiple symbols, let's only check for whether the command we want
is defined.
Turns out the mechanism of providing multiple definitions to check via
AC_CHECK_DECLS in order to determine whether HAVE_DECL_DEVLINK should
be set resulted in a false positive since as long as one of the defs
was true, then the HAVE_DECL_DEVLINK got defined.
This is further complicated by a change between kernel 4.8 and 4.11
where the originally defined name DEVLINK_CMD_ESWITCH_MODE_GET was
changed to DEVLINK_CMD_ESWITCH_GET with the comment/caveat that
the old format is obsolete should never be used. Therefore, even
though some kernels will have a couple of the same symbols that
were added at the same time (DEVLINK_ATTR_ESWITCH_MODE and
DEVLINK_ESWITCH_MODE_SWITCHDEV), they won't have the newer name
and thus cause a build failure.
So even though multiple DEVLINK_CMD_SWITCH* symbols are used to
determine whether the set HAVE_DECL_DEVLINK, this should cover
those kernels before 4.11 with the old definition.
Signed-off-by: John Ferlan <jferlan(a)redhat.com>
---
I'd push this as a build breaker, but I don't want to need to go through
the trouble again if i got this wrong, so hopefully someone who's seeing
this can try out the patch... It's also present on a couple of the CI
infrastructure environments (f23, centos-7):
https://ci.centos.org/view/libvirt/job/libvirt-master-build/
configure.ac | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/configure.ac b/configure.ac
index c9509c7f9..73ae7fdd5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -630,12 +630,16 @@ fi
dnl
dnl check for kernel headers required by devlink
dnl
+dnl kernel 4.8 introduced DEVLINK_CMD_ESWITCH_MODE_GET, but that was
+dnl later changed in kernel 4.11 to be just DEVLINK_CMD_ESWITCH_GET, so
+dnl for "completeness" let's allow HAVE_DECL_DEVLINK to be define if
+dnl either is defined.
if test "$with_linux" = "yes"; then
AC_CHECK_HEADERS([linux/devlink.h])
- AC_CHECK_DECLS([DEVLINK_GENL_VERSION, DEVLINK_GENL_NAME, DEVLINK_ATTR_MAX, DEVLINK_CMD_ESWITCH_GET, DEVLINK_ATTR_BUS_NAME, DEVLINK_ATTR_DEV_NAME, DEVLINK_ATTR_ESWITCH_MODE, DEVLINK_ESWITCH_MODE_SWITCHDEV],
+ AC_CHECK_DECLS([DEVLINK_CMD_ESWITCH_GET, DEVLINK_CMD_ESWITCH_MODE_GET],
[AC_DEFINE([HAVE_DECL_DEVLINK],
[1],
- [whether devlink declarations are available])],
+ [whether devlink CMD_ESWITCH_GET is available])],
[],
[[#include <linux/devlink.h>]])
fi
--
2.13.5
3
6
[libvirt] [PATCH v2 00/12] Continue altering storage pool for privatization
by John Ferlan 19 Sep '17
by John Ferlan 19 Sep '17
19 Sep '17
Consider this round 1 of 2.... The next series will be 18 patches,
but the majority of those deal with change every {pool|obj}->def->X
to use the accessor virStoragePoolObjGetDef.
v1: https://www.redhat.com/archives/libvir-list/2017-May/msg00218.html
Probably not even worth looking at the v1, but this picks up where v1
left off somewhere around patch 10, but adding smaller steps between
patches.
John Ferlan (12):
storage: Create accessor API's for virStoragePoolObj
storage: Introduce virStoragePoolObjNew
storage: Fill in storage pool @active properly
storage: Introduce storage volume add, delete, count APIs
storage: Introduce APIs to search/scan storage pool volumes list
storage: Use virStoragePoolObj{Get|Set}ConfigFile
storage: Use virStoragePoolObjGetAutostartLink
storage: Use virStoragePoolObj{Is|Set}Active
storage: Use virStoragePoolObj{Is|Set}Autostart
storage: Internally represent @autostart to bool
storage: Use virStoragePoolObj{Get|Incr}Decr}Asyncjobs
storage: Use virStoragePoolObjDefUseNewDef
src/conf/virstorageobj.c | 211 +++++++++++++++++++++++++++++++--
src/conf/virstorageobj.h | 84 ++++++++++++-
src/libvirt_private.syms | 20 ++++
src/storage/storage_backend_disk.c | 93 +++++++++------
src/storage/storage_backend_gluster.c | 5 +-
src/storage/storage_backend_logical.c | 4 +-
src/storage/storage_backend_mpath.c | 3 +-
src/storage/storage_backend_rbd.c | 4 +-
src/storage/storage_backend_scsi.c | 4 +-
src/storage/storage_backend_sheepdog.c | 4 +-
src/storage/storage_backend_zfs.c | 6 +-
src/storage/storage_driver.c | 142 +++++++++-------------
src/storage/storage_util.c | 8 +-
src/test/test_driver.c | 54 ++++-----
tests/storagevolxml2argvtest.c | 20 ++--
15 files changed, 465 insertions(+), 197 deletions(-)
--
2.9.5
2
19
[libvirt] [PATCH] check-spacing: Don't hardcode Perl interpreter path
by Andrea Bolognani 19 Sep '17
by Andrea Bolognani 19 Sep '17
19 Sep '17
This is particularly useful on operating systems that don't ship
Perl as part of the base system (eg. FreeBSD) while still working
just as well as it did before on Linux.
Signed-off-by: Andrea Bolognani <abologna(a)redhat.com>
---
build-aux/check-spacing.pl | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/build-aux/check-spacing.pl b/build-aux/check-spacing.pl
index 448acf234..ca8b43491 100755
--- a/build-aux/check-spacing.pl
+++ b/build-aux/check-spacing.pl
@@ -1,4 +1,4 @@
-#!/usr/bin/perl
+#!/usr/bin/env perl
#
# check-spacing.pl: Report any usage of 'function (..args..)'
# Also check for other syntax issues, such as correct use of ';'
--
2.13.5
2
2
19 Sep '17
So we refer to the terms 'persistent' and 'transient' across the whole
man page, without describing it further, but more importantly, how the
create command affects it, i.e. explicitly stating that domain created
via the 'create' command are going to be transient or persistent,
depending on whether there is an existing persistent domain with a
matching <name> and <uuid>, in which case it will remain persistent, but
will run using a one-time configuration, otherwise it's going to be
transient and will vanish once destroyed.
Signed-off-by: Erik Skultety <eskultet(a)redhat.com>
---
tools/virsh.pod | 32 ++++++++++++++++++++++++++------
1 file changed, 26 insertions(+), 6 deletions(-)
diff --git a/tools/virsh.pod b/tools/virsh.pod
index 01453be60..c4c76fcb1 100644
--- a/tools/virsh.pod
+++ b/tools/virsh.pod
@@ -640,9 +640,14 @@ sessions, such as in a case of a broken connection.
Create a domain from an XML <file>. Optionally, I<--validate> option can be
passed to validate the format of the input XML file against an internal RNG
-schema (identical to using L<virt-xml-validate(1)> tool). An easy way to create
-the XML <file> is to use the B<dumpxml> command to obtain the definition of a
-pre-existing guest. The domain will be paused if the I<--paused> option is used
+schema (identical to using L<virt-xml-validate(1)> tool). Domains created using
+this command are going to be either transient (temporary ones that will vanish
+once destroyed) or existing persistent domains that will run with one-time use
+configuration, leaving the persistent XML untouched (this can come handy during
+an automated testing of various configurations all based on the original XML).
+See the B<Example> section for usage demonstration.
+
+The domain will be paused if the I<--paused> option is used
and supported by the driver; otherwise it will be running. If I<--console> is
requested, attach to the console after creation.
If I<--autodestroy> is requested, then the guest will be automatically
@@ -656,9 +661,24 @@ is only supported with container based virtualization.
B<Example>
- virsh dumpxml <domain> > domain.xml
- vi domain.xml (or make changes with your other text editor)
- virsh create domain.xml
+ 1) prepare a template from an existing domain (skip directly to 3a if writing
+ one from scratch)
+
+ # virsh dumpxml <domain> > domain.xml
+
+ 2) edit the template using an editor of your choice and:
+ a) DO CHANGE! <name> and <uuid> (<uuid> can also be removed), or
+ b) DON'T CHANGE! either <name> or <uuid>
+
+ # $EDITOR domain.xml
+
+ 3) create a domain from domain.xml, depending on whether following 2a or 2b
+ respectively:
+ a) the domain is going to be transient
+ b) an existing persistent domain will run with a modified one-time
+ configuration
+
+ # virsh create domain.xml
=item B<define> I<FILE> [I<--validate>]
--
2.13.3
2
2
[libvirt] [PATCH 0/4] qemu: fix restore domain with bypass cache flag
by Nikolay Shirokovskiy 19 Sep '17
by Nikolay Shirokovskiy 19 Sep '17
19 Sep '17
It is not working currently. Error message is (with convinient wraps):
error: Failed to restore domain from tst6.sav
error: internal error: Child process (LIBVIRT_LOG_OUTPUTS=1:stderr \
/usr/libexec/libvirt_iohelper /vz/dev/libvirt/tst6.sav 0 0) unexpected exit status 1: \
/usr/libexec/libvirt_iohelper: failure with /vz/dev/libvirt/tst6.sav : \
Unable to read /vz/dev/libvirt/tst6.sav: Invalid argument
The problem is that saferead function being used by iohelper is not quite suitable
for direct reads. It's last read that is supposed to read EOF is not properly
aligned thus EINVAL is returned.
Nikolay Shirokovskiy (4):
iohelper: drop unused operation length limit
iohelper: simplify last direct write alignment
iohelper: reduce zero-out in align case
iohelper: fix reading with O_DIRECT
src/util/iohelper.c | 98 +++++++++++++++++++++++++++++++----------------------
src/util/virfile.c | 2 +-
2 files changed, 59 insertions(+), 41 deletions(-)
--
1.8.3.1
2
6