[libvirt] [PATCH v2 04/10] qemu: capabilities: Detect active block commit via QMP schema probing if possible

Peter Krempa posted 10 patches 6 years ago
[libvirt] [PATCH v2 04/10] qemu: capabilities: Detect active block commit via QMP schema probing if possible
Posted by Peter Krempa 6 years ago
For versions where we can probe that the arguments are optional we can
perform the probing by a schema query rather than sending a separate
command to do so.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
---
 src/qemu/qemu_capabilities.c                           |  8 +++++---
 tests/qemucapabilitiesdata/caps_2.10.0.aarch64.replies | 16 ----------------
 tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml     |  2 +-
 tests/qemucapabilitiesdata/caps_2.10.0.ppc64.replies   | 16 ----------------
 tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml       |  2 +-
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.replies   | 16 ----------------
 tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml       |  2 +-
 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.replies  | 16 ----------------
 tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml      |  2 +-
 tests/qemucapabilitiesdata/caps_2.11.0.s390x.replies   | 16 ----------------
 tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml       |  2 +-
 tests/qemucapabilitiesdata/caps_2.11.0.x86_64.replies  | 16 ----------------
 tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml      |  2 +-
 tests/qemucapabilitiesdata/caps_2.12.0.aarch64.replies | 16 ----------------
 tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml     |  2 +-
 tests/qemucapabilitiesdata/caps_2.12.0.ppc64.replies   | 16 ----------------
 tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml       |  2 +-
 tests/qemucapabilitiesdata/caps_2.12.0.s390x.replies   | 16 ----------------
 tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml       |  2 +-
 tests/qemucapabilitiesdata/caps_2.12.0.x86_64.replies  | 16 ----------------
 tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml      |  2 +-
 tests/qemucapabilitiesdata/caps_2.5.0.x86_64.replies   | 16 ----------------
 tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml       |  2 +-
 tests/qemucapabilitiesdata/caps_2.6.0.aarch64.replies  | 16 ----------------
 tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml      |  2 +-
 tests/qemucapabilitiesdata/caps_2.6.0.ppc64.replies    | 16 ----------------
 tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml        |  2 +-
 tests/qemucapabilitiesdata/caps_2.6.0.x86_64.replies   | 16 ----------------
 tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml       |  2 +-
 tests/qemucapabilitiesdata/caps_2.7.0.s390x.replies    | 16 ----------------
 tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml        |  2 +-
 tests/qemucapabilitiesdata/caps_2.7.0.x86_64.replies   | 16 ----------------
 tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml       |  2 +-
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.replies    | 16 ----------------
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml        |  2 +-
 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.replies   | 16 ----------------
 tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml       |  2 +-
 tests/qemucapabilitiesdata/caps_2.9.0.ppc64.replies    | 16 ----------------
 tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml        |  2 +-
 tests/qemucapabilitiesdata/caps_2.9.0.s390x.replies    | 16 ----------------
 tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml        |  2 +-
 tests/qemucapabilitiesdata/caps_2.9.0.x86_64.replies   | 16 ----------------
 tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml       |  2 +-
 tests/qemucapabilitiesdata/caps_3.0.0.ppc64.replies    | 16 ----------------
 tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml        |  2 +-
 tests/qemucapabilitiesdata/caps_3.0.0.x86_64.replies   | 16 ----------------
 tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml       |  2 +-
 47 files changed, 28 insertions(+), 394 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index e6e199b2c6..755a666ab1 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -1306,6 +1306,7 @@ static struct virQEMUCapsStringFlags virQEMUCapsQMPSchemaQueries[] = {
     { "blockdev-add/arg-type/+qcow2/encrypt/+luks/key-secret", QEMU_CAPS_QCOW2_LUKS },
     { "nbd-server-start/arg-type/tls-creds", QEMU_CAPS_NBD_TLS },
     { "screendump/arg-type/device", QEMU_CAPS_SCREENDUMP_DEVICE },
+    { "block-commit/arg-type/*top",  QEMU_CAPS_ACTIVE_COMMIT },
 };

 typedef struct _virQEMUCapsObjectTypeProps virQEMUCapsObjectTypeProps;
@@ -2138,9 +2139,10 @@ virQEMUCapsProbeQMPCommands(virQEMUCapsPtr qemuCaps,
         VIR_FORCE_CLOSE(fd);
     }

-    /* Probe for active commit of qemu 2.1 (for now, we are choosing
-     * to ignore the fact that qemu 2.0 can also do active commit) */
-    if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_BLOCK_COMMIT) &&
+    /* Probe for active commit of qemu 2.1. We don't need to query directly
+     * if we have QMP schema support */
+    if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_QUERY_QMP_SCHEMA) &&
+        virQEMUCapsGet(qemuCaps, QEMU_CAPS_BLOCK_COMMIT) &&
         qemuMonitorSupportsActiveCommit(mon))
         virQEMUCapsSet(qemuCaps, QEMU_CAPS_ACTIVE_COMMIT);

diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.replies b/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.replies
index 4bc6433601..e9712caad0 100644
--- a/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.replies
@@ -507,22 +507,6 @@
   "id": "libvirt-5"
 }

-{
-  "execute": "block-commit",
-  "arguments": {
-    "device": "bogus"
-  },
-  "id": "libvirt-6"
-}
-
-{
-  "id": "libvirt-6",
-  "error": {
-    "class": "DeviceNotFound",
-    "desc": "Device 'bogus' not found"
-  }
-}
-
 {
   "execute": "query-kvm",
   "id": "libvirt-7"
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml
index 078507f57d..97318fa72f 100644
--- a/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml
@@ -161,7 +161,7 @@
   <flag name='egl-headless'/>
   <version>2010000</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>307647</microcodeVersion>
+  <microcodeVersion>307434</microcodeVersion>
   <package> (v2.10.0)</package>
   <arch>aarch64</arch>
   <cpu type='kvm' name='pxa262'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.replies b/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.replies
index a3a4deb87d..12c7611891 100644
--- a/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.replies
@@ -504,22 +504,6 @@
   "id": "libvirt-5"
 }

-{
-  "execute": "block-commit",
-  "arguments": {
-    "device": "bogus"
-  },
-  "id": "libvirt-6"
-}
-
-{
-  "id": "libvirt-6",
-  "error": {
-    "class": "DeviceNotFound",
-    "desc": "Device 'bogus' not found"
-  }
-}
-
 {
   "execute": "query-kvm",
   "id": "libvirt-7"
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml
index 75c2230b25..35b79569dc 100644
--- a/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml
@@ -160,7 +160,7 @@
   <flag name='egl-headless'/>
   <version>2010000</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>386992</microcodeVersion>
+  <microcodeVersion>386779</microcodeVersion>
   <package> (v2.10.0)</package>
   <arch>ppc64</arch>
   <cpu type='kvm' name='default'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.s390x.replies b/tests/qemucapabilitiesdata/caps_2.10.0.s390x.replies
index 4feada0473..6dc6a96d8d 100644
--- a/tests/qemucapabilitiesdata/caps_2.10.0.s390x.replies
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.s390x.replies
@@ -516,22 +516,6 @@
   "id": "libvirt-5"
 }

-{
-  "execute": "block-commit",
-  "arguments": {
-    "device": "bogus"
-  },
-  "id": "libvirt-6"
-}
-
-{
-  "id": "libvirt-6",
-  "error": {
-    "class": "DeviceNotFound",
-    "desc": "Device 'bogus' not found"
-  }
-}
-
 {
   "execute": "query-kvm",
   "id": "libvirt-7"
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml
index 5d134f4708..a763a9e9be 100644
--- a/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml
@@ -121,7 +121,7 @@
   <flag name='egl-headless'/>
   <version>2010000</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>307899</microcodeVersion>
+  <microcodeVersion>307686</microcodeVersion>
   <package></package>
   <arch>s390x</arch>
   <hostCPU type='kvm' model='z14-base' migratability='no'>
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.replies
index aee8d1a2c2..d9c59b04c7 100644
--- a/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.replies
@@ -513,22 +513,6 @@
   "id": "libvirt-5"
 }

-{
-  "execute": "block-commit",
-  "arguments": {
-    "device": "bogus"
-  },
-  "id": "libvirt-6"
-}
-
-{
-  "id": "libvirt-6",
-  "error": {
-    "class": "DeviceNotFound",
-    "desc": "Device 'bogus' not found"
-  }
-}
-
 {
   "execute": "query-kvm",
   "id": "libvirt-7"
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml
index e5905d727c..8ca64d6178 100644
--- a/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml
@@ -205,7 +205,7 @@
   <flag name='egl-headless'/>
   <version>2010000</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>367995</microcodeVersion>
+  <microcodeVersion>367782</microcodeVersion>
   <package> (v2.10.0)</package>
   <arch>x86_64</arch>
   <hostCPU type='kvm' model='base' migratability='yes'>
diff --git a/tests/qemucapabilitiesdata/caps_2.11.0.s390x.replies b/tests/qemucapabilitiesdata/caps_2.11.0.s390x.replies
index 2b03c251fc..c9057fcea3 100644
--- a/tests/qemucapabilitiesdata/caps_2.11.0.s390x.replies
+++ b/tests/qemucapabilitiesdata/caps_2.11.0.s390x.replies
@@ -525,22 +525,6 @@
   "id": "libvirt-5"
 }

-{
-  "execute": "block-commit",
-  "arguments": {
-    "device": "bogus"
-  },
-  "id": "libvirt-6"
-}
-
-{
-  "id": "libvirt-6",
-  "error": {
-    "class": "DeviceNotFound",
-    "desc": "Device 'bogus' not found"
-  }
-}
-
 {
   "execute": "query-kvm",
   "id": "libvirt-7"
diff --git a/tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml
index df70c7d3e9..79656e6b95 100644
--- a/tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml
@@ -128,7 +128,7 @@
   <flag name='egl-headless'/>
   <version>2011000</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>346751</microcodeVersion>
+  <microcodeVersion>346538</microcodeVersion>
   <package></package>
   <arch>s390x</arch>
   <hostCPU type='kvm' model='z14-base' migratability='no'>
diff --git a/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.replies
index bfa7adc988..96d03d256d 100644
--- a/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.replies
@@ -522,22 +522,6 @@
   "id": "libvirt-5"
 }

-{
-  "execute": "block-commit",
-  "arguments": {
-    "device": "bogus"
-  },
-  "id": "libvirt-6"
-}
-
-{
-  "id": "libvirt-6",
-  "error": {
-    "class": "DeviceNotFound",
-    "desc": "Device 'bogus' not found"
-  }
-}
-
 {
   "execute": "query-kvm",
   "id": "libvirt-7"
diff --git a/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml
index c22d8507a6..69f3f2c82f 100644
--- a/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml
@@ -209,7 +209,7 @@
   <flag name='egl-headless'/>
   <version>2011000</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>371455</microcodeVersion>
+  <microcodeVersion>371242</microcodeVersion>
   <package> (v2.11.0)</package>
   <arch>x86_64</arch>
   <hostCPU type='kvm' model='base' migratability='yes'>
diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.replies b/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.replies
index 9a8e54c63d..17c7b3f34f 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.replies
@@ -540,22 +540,6 @@
   "id": "libvirt-5"
 }

-{
-  "execute": "block-commit",
-  "arguments": {
-    "device": "bogus"
-  },
-  "id": "libvirt-6"
-}
-
-{
-  "id": "libvirt-6",
-  "error": {
-    "class": "DeviceNotFound",
-    "desc": "Device 'bogus' not found"
-  }
-}
-
 {
   "execute": "query-kvm",
   "id": "libvirt-7"
diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml
index 72407c9990..926db70f80 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml
@@ -172,7 +172,7 @@
   <flag name='vfio-pci.display'/>
   <version>2011090</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>347550</microcodeVersion>
+  <microcodeVersion>347337</microcodeVersion>
   <package>v2.12.0-rc0</package>
   <arch>aarch64</arch>
   <cpu type='kvm' name='pxa262'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.replies b/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.replies
index 4f819150fe..a6365cf43c 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.replies
@@ -537,22 +537,6 @@
   "id": "libvirt-5"
 }

-{
-  "execute": "block-commit",
-  "arguments": {
-    "device": "bogus"
-  },
-  "id": "libvirt-6"
-}
-
-{
-  "id": "libvirt-6",
-  "error": {
-    "class": "DeviceNotFound",
-    "desc": "Device 'bogus' not found"
-  }
-}
-
 {
   "execute": "query-kvm",
   "id": "libvirt-7"
diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml
index d94082600f..66a77638a5 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml
@@ -170,7 +170,7 @@
   <flag name='vfio-pci.display'/>
   <version>2011090</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>428334</microcodeVersion>
+  <microcodeVersion>428121</microcodeVersion>
   <package>v2.12.0-rc0</package>
   <arch>ppc64</arch>
   <cpu type='kvm' name='default'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.s390x.replies b/tests/qemucapabilitiesdata/caps_2.12.0.s390x.replies
index 0a028a2fe6..ec84f16d31 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.s390x.replies
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.s390x.replies
@@ -549,22 +549,6 @@
   "id": "libvirt-5"
 }

-{
-  "execute": "block-commit",
-  "arguments": {
-    "device": "bogus"
-  },
-  "id": "libvirt-6"
-}
-
-{
-  "id": "libvirt-6",
-  "error": {
-    "class": "DeviceNotFound",
-    "desc": "Device 'bogus' not found"
-  }
-}
-
 {
   "execute": "query-kvm",
   "id": "libvirt-7"
diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml
index e5b7ffc433..f7c54df0d7 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml
@@ -136,7 +136,7 @@
   <flag name='vfio-pci.display'/>
   <version>2012000</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>375999</microcodeVersion>
+  <microcodeVersion>375786</microcodeVersion>
   <package></package>
   <arch>s390x</arch>
   <hostCPU type='kvm' model='z14-base' migratability='no'>
diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.replies
index 6f37e4301e..95e8ef1174 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.replies
@@ -555,22 +555,6 @@
   "id": "libvirt-5"
 }

-{
-  "execute": "block-commit",
-  "arguments": {
-    "device": "bogus"
-  },
-  "id": "libvirt-6"
-}
-
-{
-  "id": "libvirt-6",
-  "error": {
-    "class": "DeviceNotFound",
-    "desc": "Device 'bogus' not found"
-  }
-}
-
 {
   "execute": "query-kvm",
   "id": "libvirt-7"
diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml
index d34d762ca8..8453883fe8 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml
@@ -214,7 +214,7 @@
   <flag name='vfio-pci.display'/>
   <version>2011090</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>416196</microcodeVersion>
+  <microcodeVersion>415983</microcodeVersion>
   <package>v2.12.0-rc0</package>
   <arch>x86_64</arch>
   <hostCPU type='kvm' model='base' migratability='yes'>
diff --git a/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.replies
index 20d0000c84..c1a124adf2 100644
--- a/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.replies
@@ -471,22 +471,6 @@
   "id": "libvirt-5"
 }

-{
-  "execute": "block-commit",
-  "arguments": {
-    "device": "bogus"
-  },
-  "id": "libvirt-6"
-}
-
-{
-  "id": "libvirt-6",
-  "error": {
-    "class": "DeviceNotFound",
-    "desc": "Device 'bogus' not found"
-  }
-}
-
 {
   "execute": "query-kvm",
   "id": "libvirt-7"
diff --git a/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml
index 1055b367fb..ffa2b87f8b 100644
--- a/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml
@@ -164,7 +164,7 @@
   <flag name='mch'/>
   <version>2005000</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>221513</microcodeVersion>
+  <microcodeVersion>221300</microcodeVersion>
   <package></package>
   <arch>x86_64</arch>
   <cpu type='kvm' name='Opteron_G5'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.aarch64.replies b/tests/qemucapabilitiesdata/caps_2.6.0.aarch64.replies
index fd08db576a..ec0cc7e55e 100644
--- a/tests/qemucapabilitiesdata/caps_2.6.0.aarch64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.6.0.aarch64.replies
@@ -474,22 +474,6 @@
   "id": "libvirt-5"
 }

-{
-  "execute": "block-commit",
-  "arguments": {
-    "device": "bogus"
-  },
-  "id": "libvirt-6"
-}
-
-{
-  "id": "libvirt-6",
-  "error": {
-    "class": "DeviceNotFound",
-    "desc": "Device 'bogus' not found"
-  }
-}
-
 {
   "execute": "query-kvm",
   "id": "libvirt-7"
diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml
index 31f78d3a7a..70b5c4896f 100644
--- a/tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml
@@ -145,7 +145,7 @@
   <flag name='hda-output'/>
   <version>2006000</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>232358</microcodeVersion>
+  <microcodeVersion>232145</microcodeVersion>
   <package></package>
   <arch>aarch64</arch>
   <cpu type='kvm' name='pxa262'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.ppc64.replies b/tests/qemucapabilitiesdata/caps_2.6.0.ppc64.replies
index 4406214e62..c803001670 100644
--- a/tests/qemucapabilitiesdata/caps_2.6.0.ppc64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.6.0.ppc64.replies
@@ -471,22 +471,6 @@
   "id": "libvirt-5"
 }

-{
-  "execute": "block-commit",
-  "arguments": {
-    "device": "bogus"
-  },
-  "id": "libvirt-6"
-}
-
-{
-  "id": "libvirt-6",
-  "error": {
-    "class": "DeviceNotFound",
-    "desc": "Device 'bogus' not found"
-  }
-}
-
 {
   "execute": "query-kvm",
   "id": "libvirt-7"
diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml
index be091167d3..0155c85971 100644
--- a/tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml
@@ -140,7 +140,7 @@
   <flag name='hda-output'/>
   <version>2006000</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>267184</microcodeVersion>
+  <microcodeVersion>266971</microcodeVersion>
   <package></package>
   <arch>ppc64</arch>
   <cpu type='kvm' name='default'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.replies
index c8b8f44e95..9733d48be6 100644
--- a/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.replies
@@ -477,22 +477,6 @@
   "id": "libvirt-5"
 }

-{
-  "execute": "block-commit",
-  "arguments": {
-    "device": "bogus"
-  },
-  "id": "libvirt-6"
-}
-
-{
-  "id": "libvirt-6",
-  "error": {
-    "class": "DeviceNotFound",
-    "desc": "Device 'bogus' not found"
-  }
-}
-
 {
   "execute": "query-kvm",
   "id": "libvirt-7"
diff --git a/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml
index ea2623c9ef..e7bf91cc64 100644
--- a/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml
@@ -176,7 +176,7 @@
   <flag name='mch'/>
   <version>2006000</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>232317</microcodeVersion>
+  <microcodeVersion>232104</microcodeVersion>
   <package></package>
   <arch>x86_64</arch>
   <cpu type='kvm' name='Opteron_G5'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.7.0.s390x.replies b/tests/qemucapabilitiesdata/caps_2.7.0.s390x.replies
index f92b8f9803..621aea5896 100644
--- a/tests/qemucapabilitiesdata/caps_2.7.0.s390x.replies
+++ b/tests/qemucapabilitiesdata/caps_2.7.0.s390x.replies
@@ -483,22 +483,6 @@
   "id": "libvirt-5"
 }

-{
-  "execute": "block-commit",
-  "arguments": {
-    "device": "bogus"
-  },
-  "id": "libvirt-6"
-}
-
-{
-  "id": "libvirt-6",
-  "error": {
-    "class": "DeviceNotFound",
-    "desc": "Device 'bogus' not found"
-  }
-}
-
 {
   "execute": "query-kvm",
   "id": "libvirt-7"
diff --git a/tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml
index adc3877bd8..459f2da46c 100644
--- a/tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml
@@ -108,7 +108,7 @@
   <flag name='sdl-gl'/>
   <version>2007000</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>220792</microcodeVersion>
+  <microcodeVersion>220579</microcodeVersion>
   <package></package>
   <arch>s390x</arch>
   <cpu type='kvm' name='host'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.replies
index 89ad92f3ea..4f7be9337f 100644
--- a/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.replies
@@ -486,22 +486,6 @@
   "id": "libvirt-5"
 }

-{
-  "execute": "block-commit",
-  "arguments": {
-    "device": "bogus"
-  },
-  "id": "libvirt-6"
-}
-
-{
-  "id": "libvirt-6",
-  "error": {
-    "class": "DeviceNotFound",
-    "desc": "Device 'bogus' not found"
-  }
-}
-
 {
   "execute": "query-kvm",
   "id": "libvirt-7"
diff --git a/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml
index 00557a9783..defd5554e6 100644
--- a/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml
@@ -181,7 +181,7 @@
   <flag name='mch'/>
   <version>2007000</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>244005</microcodeVersion>
+  <microcodeVersion>243792</microcodeVersion>
   <package> (v2.7.0)</package>
   <arch>x86_64</arch>
   <cpu type='kvm' name='Opteron_G5'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.8.0.s390x.replies b/tests/qemucapabilitiesdata/caps_2.8.0.s390x.replies
index 135f22ab89..52de79df75 100644
--- a/tests/qemucapabilitiesdata/caps_2.8.0.s390x.replies
+++ b/tests/qemucapabilitiesdata/caps_2.8.0.s390x.replies
@@ -495,22 +495,6 @@
   "id": "libvirt-5"
 }

-{
-  "execute": "block-commit",
-  "arguments": {
-    "device": "bogus"
-  },
-  "id": "libvirt-6"
-}
-
-{
-  "id": "libvirt-6",
-  "error": {
-    "class": "DeviceNotFound",
-    "desc": "Device 'bogus' not found"
-  }
-}
-
 {
   "execute": "query-kvm",
   "id": "libvirt-7"
diff --git a/tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml
index fdaea3fabb..564c6c481a 100644
--- a/tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml
@@ -111,7 +111,7 @@
   <flag name='vhost-vsock'/>
   <version>2007093</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>246206</microcodeVersion>
+  <microcodeVersion>245993</microcodeVersion>
   <package></package>
   <arch>s390x</arch>
   <hostCPU type='kvm' model='zEC12.2-base' migratability='no'>
diff --git a/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.replies
index 8f80e733db..e0783e7e7e 100644
--- a/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.replies
@@ -489,22 +489,6 @@
   "id": "libvirt-5"
 }

-{
-  "execute": "block-commit",
-  "arguments": {
-    "device": "bogus"
-  },
-  "id": "libvirt-6"
-}
-
-{
-  "id": "libvirt-6",
-  "error": {
-    "class": "DeviceNotFound",
-    "desc": "Device 'bogus' not found"
-  }
-}
-
 {
   "execute": "query-kvm",
   "id": "libvirt-7"
diff --git a/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml
index 71548b6326..318059bba1 100644
--- a/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml
@@ -184,7 +184,7 @@
   <flag name='mch'/>
   <version>2008000</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>260660</microcodeVersion>
+  <microcodeVersion>260447</microcodeVersion>
   <package> (v2.8.0)</package>
   <arch>x86_64</arch>
   <cpu type='kvm' name='host' usable='yes'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.replies b/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.replies
index 0c97fc3ad8..53a3c0a580 100644
--- a/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.replies
@@ -495,22 +495,6 @@
   "id": "libvirt-5"
 }

-{
-  "execute": "block-commit",
-  "arguments": {
-    "device": "bogus"
-  },
-  "id": "libvirt-6"
-}
-
-{
-  "id": "libvirt-6",
-  "error": {
-    "class": "DeviceNotFound",
-    "desc": "Device 'bogus' not found"
-  }
-}
-
 {
   "execute": "query-kvm",
   "id": "libvirt-7"
diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml
index c4ebb73d21..ea81b431f9 100644
--- a/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml
@@ -151,7 +151,7 @@
   <flag name='vhost-vsock'/>
   <version>2009000</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>350708</microcodeVersion>
+  <microcodeVersion>350495</microcodeVersion>
   <package> (v2.9.0)</package>
   <arch>ppc64</arch>
   <cpu type='kvm' name='default'/>
diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.s390x.replies b/tests/qemucapabilitiesdata/caps_2.9.0.s390x.replies
index 94ab7feb62..5c28c38ccd 100644
--- a/tests/qemucapabilitiesdata/caps_2.9.0.s390x.replies
+++ b/tests/qemucapabilitiesdata/caps_2.9.0.s390x.replies
@@ -507,22 +507,6 @@
   "id": "libvirt-5"
 }

-{
-  "execute": "block-commit",
-  "arguments": {
-    "device": "bogus"
-  },
-  "id": "libvirt-6"
-}
-
-{
-  "id": "libvirt-6",
-  "error": {
-    "class": "DeviceNotFound",
-    "desc": "Device 'bogus' not found"
-  }
-}
-
 {
   "execute": "query-kvm",
   "id": "libvirt-7"
diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml
index 302cc5ffa1..a1e0152f95 100644
--- a/tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml
@@ -115,7 +115,7 @@
   <flag name='vhost-vsock'/>
   <version>2009000</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>269625</microcodeVersion>
+  <microcodeVersion>269412</microcodeVersion>
   <package></package>
   <arch>s390x</arch>
   <hostCPU type='kvm' model='z13.2-base' migratability='no'>
diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.replies
index 7d10d68abd..a432c5b9d2 100644
--- a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.replies
@@ -504,22 +504,6 @@
   "id": "libvirt-5"
 }

-{
-  "execute": "block-commit",
-  "arguments": {
-    "device": "bogus"
-  },
-  "id": "libvirt-6"
-}
-
-{
-  "id": "libvirt-6",
-  "error": {
-    "class": "DeviceNotFound",
-    "desc": "Device 'bogus' not found"
-  }
-}
-
 {
   "execute": "query-kvm",
   "id": "libvirt-7"
diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml
index c0bfb3f07a..54c4e4ce57 100644
--- a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml
@@ -199,7 +199,7 @@
   <flag name='mch'/>
   <version>2009000</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>343984</microcodeVersion>
+  <microcodeVersion>343771</microcodeVersion>
   <package> (v2.9.0)</package>
   <arch>x86_64</arch>
   <hostCPU type='kvm' model='base' migratability='yes'>
diff --git a/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.replies b/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.replies
index f759823f6c..533404112c 100644
--- a/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.replies
+++ b/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.replies
@@ -582,22 +582,6 @@
   "id": "libvirt-5"
 }

-{
-  "execute": "block-commit",
-  "arguments": {
-    "device": "bogus"
-  },
-  "id": "libvirt-6"
-}
-
-{
-  "id": "libvirt-6",
-  "error": {
-    "class": "DeviceNotFound",
-    "desc": "Device 'bogus' not found"
-  }
-}
-
 {
   "execute": "query-kvm",
   "id": "libvirt-7"
diff --git a/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml
index 64033dee51..85848ecdae 100644
--- a/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml
@@ -170,7 +170,7 @@
   <flag name='vfio-pci.display'/>
   <version>2012050</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>446771</microcodeVersion>
+  <microcodeVersion>446558</microcodeVersion>
   <package>v2.12.0-1689-g518d23a</package>
   <arch>ppc64</arch>
   <cpu type='kvm' name='default'/>
diff --git a/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.replies
index dc34d74ca3..2c822a5034 100644
--- a/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.replies
@@ -600,22 +600,6 @@
   "id": "libvirt-5"
 }

-{
-  "execute": "block-commit",
-  "arguments": {
-    "device": "bogus"
-  },
-  "id": "libvirt-6"
-}
-
-{
-  "id": "libvirt-6",
-  "error": {
-    "class": "DeviceNotFound",
-    "desc": "Device 'bogus' not found"
-  }
-}
-
 {
   "execute": "query-kvm",
   "id": "libvirt-7"
diff --git a/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml
index c8da1c5696..02939f178f 100644
--- a/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml
@@ -217,7 +217,7 @@
   <flag name='vfio-pci.display'/>
   <version>3000000</version>
   <kvmVersion>0</kvmVersion>
-  <microcodeVersion>427797</microcodeVersion>
+  <microcodeVersion>427584</microcodeVersion>
   <package>v3.0.0</package>
   <arch>x86_64</arch>
   <hostCPU type='kvm' model='base' migratability='yes'>
-- 
2.16.2

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH v2 04/10] qemu: capabilities: Detect active block commit via QMP schema probing if possible
Posted by John Ferlan 6 years ago

On 08/15/2018 05:18 AM, Peter Krempa wrote:
> For versions where we can probe that the arguments are optional we can
> perform the probing by a schema query rather than sending a separate
> command to do so.
> 
> Signed-off-by: Peter Krempa <pkrempa@redhat.com>
> ---
>  src/qemu/qemu_capabilities.c                           |  8 +++++---
>  tests/qemucapabilitiesdata/caps_2.10.0.aarch64.replies | 16 ----------------
>  tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml     |  2 +-
>  tests/qemucapabilitiesdata/caps_2.10.0.ppc64.replies   | 16 ----------------
>  tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml       |  2 +-
>  tests/qemucapabilitiesdata/caps_2.10.0.s390x.replies   | 16 ----------------
>  tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml       |  2 +-
>  tests/qemucapabilitiesdata/caps_2.10.0.x86_64.replies  | 16 ----------------
>  tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml      |  2 +-
>  tests/qemucapabilitiesdata/caps_2.11.0.s390x.replies   | 16 ----------------
>  tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml       |  2 +-
>  tests/qemucapabilitiesdata/caps_2.11.0.x86_64.replies  | 16 ----------------
>  tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml      |  2 +-
>  tests/qemucapabilitiesdata/caps_2.12.0.aarch64.replies | 16 ----------------
>  tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml     |  2 +-
>  tests/qemucapabilitiesdata/caps_2.12.0.ppc64.replies   | 16 ----------------
>  tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml       |  2 +-
>  tests/qemucapabilitiesdata/caps_2.12.0.s390x.replies   | 16 ----------------
>  tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml       |  2 +-
>  tests/qemucapabilitiesdata/caps_2.12.0.x86_64.replies  | 16 ----------------
>  tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml      |  2 +-
>  tests/qemucapabilitiesdata/caps_2.5.0.x86_64.replies   | 16 ----------------
>  tests/qemucapabilitiesdata/caps_2.5.0.x86_64.xml       |  2 +-
>  tests/qemucapabilitiesdata/caps_2.6.0.aarch64.replies  | 16 ----------------
>  tests/qemucapabilitiesdata/caps_2.6.0.aarch64.xml      |  2 +-
>  tests/qemucapabilitiesdata/caps_2.6.0.ppc64.replies    | 16 ----------------
>  tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml        |  2 +-
>  tests/qemucapabilitiesdata/caps_2.6.0.x86_64.replies   | 16 ----------------
>  tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml       |  2 +-
>  tests/qemucapabilitiesdata/caps_2.7.0.s390x.replies    | 16 ----------------
>  tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml        |  2 +-
>  tests/qemucapabilitiesdata/caps_2.7.0.x86_64.replies   | 16 ----------------
>  tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml       |  2 +-
>  tests/qemucapabilitiesdata/caps_2.8.0.s390x.replies    | 16 ----------------
>  tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml        |  2 +-
>  tests/qemucapabilitiesdata/caps_2.8.0.x86_64.replies   | 16 ----------------
>  tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml       |  2 +-
>  tests/qemucapabilitiesdata/caps_2.9.0.ppc64.replies    | 16 ----------------
>  tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml        |  2 +-
>  tests/qemucapabilitiesdata/caps_2.9.0.s390x.replies    | 16 ----------------
>  tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml        |  2 +-
>  tests/qemucapabilitiesdata/caps_2.9.0.x86_64.replies   | 16 ----------------
>  tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml       |  2 +-
>  tests/qemucapabilitiesdata/caps_3.0.0.ppc64.replies    | 16 ----------------
>  tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml        |  2 +-
>  tests/qemucapabilitiesdata/caps_3.0.0.x86_64.replies   | 16 ----------------
>  tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml       |  2 +-
>  47 files changed, 28 insertions(+), 394 deletions(-)
> 

Until I looked at the history of qapi/block-core.json, the "*" didn't
make sense. Still, it seems "top" means required argument "top" while
"*top" means optional argument "top". Does that mean "theoretically
speaking" we could have used "*tls-creds" since that's listed as
optional for nbd-server-start?  Suffice to say screendump doesn't make
much sense either, although in light of this "*", perhaps it too could
be "*device"?  I dunno, just guessing and grousing.

Different problem for a different day, but documenting the syntax of the
entries in the virQEMUCapsQMPSchemaQueries would be nice.

Reviewed-by: John Ferlan <jferlan@redhat.com>

John

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH v2 04/10] qemu: capabilities: Detect active block commit via QMP schema probing if possible
Posted by Peter Krempa 6 years ago
On Thu, Aug 23, 2018 at 14:45:35 -0400, John Ferlan wrote:
> 
> 
> On 08/15/2018 05:18 AM, Peter Krempa wrote:
> > For versions where we can probe that the arguments are optional we can
> > perform the probing by a schema query rather than sending a separate
> > command to do so.
> > 
> > Signed-off-by: Peter Krempa <pkrempa@redhat.com>
> > ---

[...]

> > 
> 
> Until I looked at the history of qapi/block-core.json, the "*" didn't
> make sense. Still, it seems "top" means required argument "top" while
> "*top" means optional argument "top". Does that mean "theoretically
> speaking" we could have used "*tls-creds" since that's listed as
> optional for nbd-server-start?  Suffice to say screendump doesn't make
> much sense either, although in light of this "*", perhaps it too could
> be "*device"?  I dunno, just guessing and grousing.

Some of them may be selected using the '*' modifier. The modifier is
meant to select optional only arguments. For arguments which are not
optional or if you don't care if it's optional no modifier still should
be used.

This is useful only in cases where some argument became optional later
on.

> Different problem for a different day, but documenting the syntax of the
> entries in the virQEMUCapsQMPSchemaQueries would be nice.

The documentation for virQEMUCapsQMPSchemaQueries says:

/* see documentation for virQEMUQAPISchemaPathGet for the query format */
static struct virQEMUCapsStringFlags virQEMUCapsQMPSchemaQueries[] = {
    { "blockdev-add/arg-type/options/+gluster/debug-level", QEMU_CAPS_GLUSTER_DEBUG_LEVEL},
    { "blockdev-add/arg-type/+gluster/debug", QEMU_CAPS_GLUSTER_DEBUG_LEVEL},
    { "blockdev-add/arg-type/+vxhs", QEMU_CAPS_VXHS},

Where we document the format of the query string:

/**
 * virQEMUQAPISchemaPathGet:
 * @query: string specifying the required data type (see below)
 * @schema: hash table containing the schema data
 * @entry: filled with the located schema object requested by @query
 *
 * Retrieves the requested schema entry specified by @query to @entry. The
 * @query parameter has the following syntax which is very closely tied to the
 * qemu schema syntax entries separated by slashes with a few special characters:
 *
 * "command_or_event/attribute/subattribute/+variant_discriminator/subattribute"
 *
 * command_or_event: name of the event or attribute to introspect
 * attribute: selects whether arguments or return type should be introspected
 *            ("arg-type" or "ret-type" for commands, "arg-type" for events)
 * subattribute: specifies member name of object types
 * *subattribute: same as above but must be optional (has a property named
 *                'default' field in the schema)
 * +variant_discriminator: In the case of unionized objects, select a
 *                         specific case to introspect.
 *
 * If the name of any (sub)attribute starts with non-alphabetical symbols it
 * needs to be prefixed by a single space.
 *
 * Array types are automatically flattened to the singular type. Alternate
 * types are currently not supported.
 *
 * The above types can be chained arbitrarily using slashes to construct any
 * path into the schema tree.
 *
 * Returns 0 on success (including if the requested schema was not found) and
 * fills @entry appropriately. On failure returns -1 and sets an appropriate
 * error message.
 */

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list