Use the probing functionality added in the last patch to turn on
a capability bit when active commit is present, and gate active
commit on that capability.

For my own reference: the difference between BLOCKJOB_SYNC and
BLOCKJOB_ASYNC is whether qemu generated an event at the
conclusion of blockpull; basically, RHEL 6.2 was the only release
of qemu that has the sync semantics and lacks the event.  RHEL
6.3 added blockcopy, but also picked up on the upstream style
of qemu generating events.  As no one is likely to backport
active commit to RHEL 6.2, it's safe for blockcommit to always
require async blockjob support.

Modifying qemucapabilitiestest is painful; the .replies files would
be so much easier if they had comments correlating which command
generated the given reply.  Maybe I'll fix that up later...

* src/qemu/qemu_capabilities.h (QEMU_CAPS_ACTIVE_COMMIT): New
capability.
* src/qemu/qemu_driver.c (qemuDomainBlockCommit): Use the new bit
* src/qemu/qemu_capabilities.c (virQEMUCaps): Name the new bit.
(virQEMUCapsProbeQMPCommands): Set it.
* tests/qemucapabilitiesdata/caps_1.3.1-1.replies: Update.
* tests/qemucapabilitiesdata/caps_1.4.2-1.replies: Likewise.
* tests/qemucapabilitiesdata/caps_1.5.3-1.replies: Likewise.
* tests/qemucapabilitiesdata/caps_1.6.0-1.replies: Likewise.
* tests/qemucapabilitiesdata/caps_1.6.50-1.replies: Likewise.

Signed-off-by: Eric Blake <ebl...@redhat.com>
---
 src/qemu/qemu_capabilities.c                     |  7 +++
 src/qemu/qemu_capabilities.h                     |  1 +
 src/qemu/qemu_driver.c                           | 10 ++--
 tests/qemucapabilitiesdata/caps_1.3.1-1.replies  | 62 +++++++++++++-----------
 tests/qemucapabilitiesdata/caps_1.4.2-1.replies  | 62 +++++++++++++-----------
 tests/qemucapabilitiesdata/caps_1.5.3-1.replies  | 62 +++++++++++++-----------
 tests/qemucapabilitiesdata/caps_1.6.0-1.replies  | 62 +++++++++++++-----------
 tests/qemucapabilitiesdata/caps_1.6.50-1.replies | 62 +++++++++++++-----------
 8 files changed, 188 insertions(+), 140 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 245d6b5..d698db9 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -256,6 +256,7 @@ VIR_ENUM_IMPL(virQEMUCaps, QEMU_CAPS_LAST,
               "usb-kbd", /* 165 */
               "host-pci-multidomain",
               "msg-timestamp",
+              "active-commit",
     );


@@ -2176,6 +2177,12 @@ 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) &&
+        qemuMonitorSupportsActiveCommit(mon))
+        virQEMUCapsSet(qemuCaps, QEMU_CAPS_ACTIVE_COMMIT);
+
     return 0;
 }

diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
index d755caa..a18d298 100644
--- a/src/qemu/qemu_capabilities.h
+++ b/src/qemu/qemu_capabilities.h
@@ -206,6 +206,7 @@ enum virQEMUCapsFlags {
     QEMU_CAPS_DEVICE_USB_KBD     = 165, /* -device usb-kbd */
     QEMU_CAPS_HOST_PCI_MULTIDOMAIN = 166, /* support domain > 0 in host pci 
address */
     QEMU_CAPS_MSG_TIMESTAMP      = 167, /* -msg timestamp */
+    QEMU_CAPS_ACTIVE_COMMIT      = 168, /* block-commit works without 'top' */

     QEMU_CAPS_LAST,                   /* this must always be the last item */
 };
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 22a8ca5..b57f77b 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -15509,7 +15509,10 @@ qemuDomainBlockCommit(virDomainPtr dom,
                        "%s", _("domain is not running"));
         goto endjob;
     }
-    if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCK_COMMIT)) {
+    /* Ensure that no one backports commit to RHEL 6.2, where cancel
+     * behaved differently */
+    if (!(virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCK_COMMIT) &&
+          virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKJOB_ASYNC))) {
         virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
                        _("online commit not supported with this QEMU binary"));
         goto endjob;
@@ -15541,10 +15544,7 @@ qemuDomainBlockCommit(virDomainPtr dom,
      * process; qemu 2.1 is further improving active commit. We need
      * to start supporting it in libvirt. */
     if (topSource == disk->src) {
-        /* We assume that no one will backport qemu 2.0 active commit
-         * to an earlier qemu without also backporting the block job
-         * ready event; but this makes sure of that fact */
-        if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKJOB_ASYNC)) {
+        if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_ACTIVE_COMMIT)) {
             virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
                            _("active commit not supported with this QEMU 
binary"));
             goto endjob;
diff --git a/tests/qemucapabilitiesdata/caps_1.3.1-1.replies 
b/tests/qemucapabilitiesdata/caps_1.3.1-1.replies
index 63c18da..04d2141 100644
--- a/tests/qemucapabilitiesdata/caps_1.3.1-1.replies
+++ b/tests/qemucapabilitiesdata/caps_1.3.1-1.replies
@@ -308,6 +308,14 @@
 }

 {
+    "id": "libvirt-6",
+    "error": {
+        "class": "GenericError",
+        "desc": "Parameter 'top' is missing"
+    }
+}
+
+{
     "return": [
         {
             "name": "SPICE_MIGRATE_COMPLETED"
@@ -382,7 +390,7 @@
             "name": "SHUTDOWN"
         }
     ],
-    "id": "libvirt-6"
+    "id": "libvirt-7"
 }

 {
@@ -871,7 +879,7 @@
             "name": "VGA"
         }
     ],
-    "id": "libvirt-7"
+    "id": "libvirt-8"
 }

 {
@@ -973,7 +981,7 @@
             "type": "hex32"
         }
     ],
-    "id": "libvirt-8"
+    "id": "libvirt-9"
 }

 {
@@ -1111,11 +1119,11 @@
             "type": "on/off"
         }
     ],
-    "id": "libvirt-9"
+    "id": "libvirt-10"
 }

 {
-    "id": "libvirt-10",
+    "id": "libvirt-11",
     "error": {
         "class": "DeviceNotFound",
         "desc": "Device 'virtio-blk-ccw' not found"
@@ -1123,7 +1131,7 @@
 }

 {
-    "id": "libvirt-11",
+    "id": "libvirt-12",
     "error": {
         "class": "DeviceNotFound",
         "desc": "Device 'virtio-net-ccw' not found"
@@ -1131,7 +1139,7 @@
 }

 {
-    "id": "libvirt-12",
+    "id": "libvirt-13",
     "error": {
         "class": "DeviceNotFound",
         "desc": "Device 'virtio-blk-s390' not found"
@@ -1139,7 +1147,7 @@
 }

 {
-    "id": "libvirt-13",
+    "id": "libvirt-14",
     "error": {
         "class": "DeviceNotFound",
         "desc": "Device 'virtio-net-s390' not found"
@@ -1147,7 +1155,7 @@
 }

 {
-    "id": "libvirt-14",
+    "id": "libvirt-15",
     "error": {
         "class": "DeviceNotFound",
         "desc": "Device 'pci-assign' not found"
@@ -1197,7 +1205,7 @@
             "type": "pci-host-devaddr"
         }
     ],
-    "id": "libvirt-15"
+    "id": "libvirt-16"
 }

 {
@@ -1231,7 +1239,7 @@
             "type": "pci-host-devaddr"
         }
     ],
-    "id": "libvirt-16"
+    "id": "libvirt-17"
 }

 {
@@ -1305,7 +1313,7 @@
             "type": "drive"
         }
     ],
-    "id": "libvirt-17"
+    "id": "libvirt-18"
 }

 {
@@ -1359,7 +1367,7 @@
             "type": "drive"
         }
     ],
-    "id": "libvirt-18"
+    "id": "libvirt-19"
 }

 {
@@ -1401,11 +1409,11 @@
             "type": "uint32"
         }
     ],
-    "id": "libvirt-19"
+    "id": "libvirt-20"
 }

 {
-    "id": "libvirt-20",
+    "id": "libvirt-21",
     "error": {
         "class": "DeviceNotFound",
         "desc": "Device 'usb-redir' not found"
@@ -1455,7 +1463,7 @@
             "type": "uint32"
         }
     ],
-    "id": "libvirt-21"
+    "id": "libvirt-22"
 }

 {
@@ -1481,13 +1489,13 @@
             "type": "drive"
         }
     ],
-    "id": "libvirt-22"
+    "id": "libvirt-23"
 }

 {
     "return": [
     ],
-    "id": "libvirt-23"
+    "id": "libvirt-24"
 }

 {
@@ -1497,7 +1505,7 @@
             "type": "uint64"
         }
     ],
-    "id": "libvirt-24"
+    "id": "libvirt-25"
 }

 {
@@ -1547,7 +1555,7 @@
             "type": "drive"
         }
     ],
-    "id": "libvirt-25"
+    "id": "libvirt-26"
 }

 {
@@ -1561,7 +1569,7 @@
             "type": "hex32"
         }
     ],
-    "id": "libvirt-26"
+    "id": "libvirt-27"
 }

 {
@@ -1615,7 +1623,7 @@
             "name": "none"
         }
     ],
-    "id": "libvirt-26"
+    "id": "libvirt-28"
 }

 {
@@ -1693,7 +1701,7 @@
             "name": "Opteron_G5"
         }
     ],
-    "id": "libvirt-27"
+    "id": "libvirt-29"
 }

 {
@@ -1701,11 +1709,11 @@
         "enabled": false,
         "present": true
     },
-    "id": "libvirt-28"
+    "id": "libvirt-30"
 }

 {
-    "id": "libvirt-29",
+    "id": "libvirt-31",
     "error": {
         "class": "CommandNotFound",
         "desc": "The command query-tpm-models has not been found"
@@ -1713,7 +1721,7 @@
 }

 {
-    "id": "libvirt-30",
+    "id": "libvirt-32",
     "error": {
         "class": "CommandNotFound",
         "desc": "The command query-tpm-types has not been found"
@@ -1721,7 +1729,7 @@
 }

 {
-    "id": "libvirt-31",
+    "id": "libvirt-33",
     "error": {
         "class": "CommandNotFound",
         "desc": "The command query-command-line-options has not been found"
diff --git a/tests/qemucapabilitiesdata/caps_1.4.2-1.replies 
b/tests/qemucapabilitiesdata/caps_1.4.2-1.replies
index 4fb4061..aef359c 100644
--- a/tests/qemucapabilitiesdata/caps_1.4.2-1.replies
+++ b/tests/qemucapabilitiesdata/caps_1.4.2-1.replies
@@ -320,6 +320,14 @@
 }

 {
+    "id": "libvirt-6",
+    "error": {
+        "class": "GenericError",
+        "desc": "Parameter 'top' is missing"
+    }
+}
+
+{
     "return": [
         {
             "name": "SPICE_MIGRATE_COMPLETED"
@@ -394,7 +402,7 @@
             "name": "SHUTDOWN"
         }
     ],
-    "id": "libvirt-6"
+    "id": "libvirt-7"
 }

 {
@@ -910,7 +918,7 @@
             "name": "VGA"
         }
     ],
-    "id": "libvirt-7"
+    "id": "libvirt-8"
 }

 {
@@ -1012,7 +1020,7 @@
             "type": "hex32"
         }
     ],
-    "id": "libvirt-8"
+    "id": "libvirt-9"
 }

 {
@@ -1158,11 +1166,11 @@
             "type": "on/off"
         }
     ],
-    "id": "libvirt-9"
+    "id": "libvirt-10"
 }

 {
-    "id": "libvirt-10",
+    "id": "libvirt-11",
     "error": {
         "class": "DeviceNotFound",
         "desc": "Device 'virtio-blk-ccw' not found"
@@ -1170,7 +1178,7 @@
 }

 {
-    "id": "libvirt-11",
+    "id": "libvirt-12",
     "error": {
         "class": "DeviceNotFound",
         "desc": "Device 'virtio-net-ccw' not found"
@@ -1178,7 +1186,7 @@
 }

 {
-    "id": "libvirt-12",
+    "id": "libvirt-13",
     "error": {
         "class": "DeviceNotFound",
         "desc": "Device 'virtio-blk-s390' not found"
@@ -1186,7 +1194,7 @@
 }

 {
-    "id": "libvirt-13",
+    "id": "libvirt-14",
     "error": {
         "class": "DeviceNotFound",
         "desc": "Device 'virtio-net-s390' not found"
@@ -1194,7 +1202,7 @@
 }

 {
-    "id": "libvirt-14",
+    "id": "libvirt-15",
     "error": {
         "class": "DeviceNotFound",
         "desc": "Device 'pci-assign' not found"
@@ -1244,7 +1252,7 @@
             "type": "pci-host-devaddr"
         }
     ],
-    "id": "libvirt-15"
+    "id": "libvirt-16"
 }

 {
@@ -1278,7 +1286,7 @@
             "type": "pci-host-devaddr"
         }
     ],
-    "id": "libvirt-16"
+    "id": "libvirt-17"
 }

 {
@@ -1352,7 +1360,7 @@
             "type": "drive"
         }
     ],
-    "id": "libvirt-17"
+    "id": "libvirt-18"
 }

 {
@@ -1406,7 +1414,7 @@
             "type": "drive"
         }
     ],
-    "id": "libvirt-18"
+    "id": "libvirt-19"
 }

 {
@@ -1448,11 +1456,11 @@
             "type": "uint32"
         }
     ],
-    "id": "libvirt-19"
+    "id": "libvirt-20"
 }

 {
-    "id": "libvirt-20",
+    "id": "libvirt-21",
     "error": {
         "class": "DeviceNotFound",
         "desc": "Device 'usb-redir' not found"
@@ -1502,7 +1510,7 @@
             "type": "uint32"
         }
     ],
-    "id": "libvirt-21"
+    "id": "libvirt-22"
 }

 {
@@ -1528,13 +1536,13 @@
             "type": "drive"
         }
     ],
-    "id": "libvirt-22"
+    "id": "libvirt-23"
 }

 {
     "return": [
     ],
-    "id": "libvirt-23"
+    "id": "libvirt-24"
 }

 {
@@ -1544,7 +1552,7 @@
             "type": "uint64"
         }
     ],
-    "id": "libvirt-24"
+    "id": "libvirt-25"
 }

 {
@@ -1594,7 +1602,7 @@
             "type": "drive"
         }
     ],
-    "id": "libvirt-25"
+    "id": "libvirt-26"
 }

 {
@@ -1608,7 +1616,7 @@
             "type": "hex32"
         }
     ],
-    "id": "libvirt-26"
+    "id": "libvirt-27"
 }

 {
@@ -1665,7 +1673,7 @@
             "name": "none"
         }
     ],
-    "id": "libvirt-26"
+    "id": "libvirt-28"
 }

 {
@@ -1743,7 +1751,7 @@
             "name": "qemu64"
         }
     ],
-    "id": "libvirt-27"
+    "id": "libvirt-29"
 }

 {
@@ -1751,11 +1759,11 @@
         "enabled": false,
         "present": true
     },
-    "id": "libvirt-28"
+    "id": "libvirt-30"
 }

 {
-    "id": "libvirt-29",
+    "id": "libvirt-31",
     "error": {
         "class": "CommandNotFound",
         "desc": "The command query-tpm-models has not been found"
@@ -1763,7 +1771,7 @@
 }

 {
-    "id": "libvirt-30",
+    "id": "libvirt-32",
     "error": {
         "class": "CommandNotFound",
         "desc": "The command query-tpm-types has not been found"
@@ -1771,7 +1779,7 @@
 }

 {
-    "id": "libvirt-31",
+    "id": "libvirt-33",
     "error": {
         "class": "CommandNotFound",
         "desc": "The command query-command-line-options has not been found"
diff --git a/tests/qemucapabilitiesdata/caps_1.5.3-1.replies 
b/tests/qemucapabilitiesdata/caps_1.5.3-1.replies
index 686fa3e..1f84bb6 100644
--- a/tests/qemucapabilitiesdata/caps_1.5.3-1.replies
+++ b/tests/qemucapabilitiesdata/caps_1.5.3-1.replies
@@ -335,6 +335,14 @@
 }

 {
+    "id": "libvirt-6",
+    "error": {
+        "class": "GenericError",
+        "desc": "Parameter 'top' is missing"
+    }
+}
+
+{
     "return": [
         {
             "name": "GUEST_PANICKED"
@@ -415,7 +423,7 @@
             "name": "SHUTDOWN"
         }
     ],
-    "id": "libvirt-6"
+    "id": "libvirt-7"
 }

 {
@@ -976,7 +984,7 @@
             "name": "VGA"
         }
     ],
-    "id": "libvirt-7"
+    "id": "libvirt-8"
 }

 {
@@ -1078,7 +1086,7 @@
             "type": "hex32"
         }
     ],
-    "id": "libvirt-8"
+    "id": "libvirt-9"
 }

 {
@@ -1224,11 +1232,11 @@
             "type": "on/off"
         }
     ],
-    "id": "libvirt-9"
+    "id": "libvirt-10"
 }

 {
-    "id": "libvirt-10",
+    "id": "libvirt-11",
     "error": {
         "class": "DeviceNotFound",
         "desc": "Device 'virtio-blk-ccw' not found"
@@ -1236,7 +1244,7 @@
 }

 {
-    "id": "libvirt-11",
+    "id": "libvirt-12",
     "error": {
         "class": "DeviceNotFound",
         "desc": "Device 'virtio-net-ccw' not found"
@@ -1244,7 +1252,7 @@
 }

 {
-    "id": "libvirt-12",
+    "id": "libvirt-13",
     "error": {
         "class": "DeviceNotFound",
         "desc": "Device 'virtio-blk-s390' not found"
@@ -1252,7 +1260,7 @@
 }

 {
-    "id": "libvirt-13",
+    "id": "libvirt-14",
     "error": {
         "class": "DeviceNotFound",
         "desc": "Device 'virtio-net-s390' not found"
@@ -1260,7 +1268,7 @@
 }

 {
-    "id": "libvirt-14",
+    "id": "libvirt-15",
     "error": {
         "class": "DeviceNotFound",
         "desc": "Device 'pci-assign' not found"
@@ -1310,7 +1318,7 @@
             "type": "pci-host-devaddr"
         }
     ],
-    "id": "libvirt-15"
+    "id": "libvirt-16"
 }

 {
@@ -1352,7 +1360,7 @@
             "type": "pci-host-devaddr"
         }
     ],
-    "id": "libvirt-16"
+    "id": "libvirt-17"
 }

 {
@@ -1426,7 +1434,7 @@
             "type": "drive"
         }
     ],
-    "id": "libvirt-17"
+    "id": "libvirt-18"
 }

 {
@@ -1480,7 +1488,7 @@
             "type": "drive"
         }
     ],
-    "id": "libvirt-18"
+    "id": "libvirt-19"
 }

 {
@@ -1522,11 +1530,11 @@
             "type": "uint32"
         }
     ],
-    "id": "libvirt-19"
+    "id": "libvirt-20"
 }

 {
-    "id": "libvirt-20",
+    "id": "libvirt-21",
     "error": {
         "class": "DeviceNotFound",
         "desc": "Device 'usb-redir' not found"
@@ -1576,7 +1584,7 @@
             "type": "uint32"
         }
     ],
-    "id": "libvirt-21"
+    "id": "libvirt-22"
 }

 {
@@ -1602,13 +1610,13 @@
             "type": "drive"
         }
     ],
-    "id": "libvirt-22"
+    "id": "libvirt-23"
 }

 {
     "return": [
     ],
-    "id": "libvirt-23"
+    "id": "libvirt-24"
 }

 {
@@ -1618,7 +1626,7 @@
             "type": "uint64"
         }
     ],
-    "id": "libvirt-24"
+    "id": "libvirt-25"
 }

 {
@@ -1668,7 +1676,7 @@
             "type": "drive"
         }
     ],
-    "id": "libvirt-25"
+    "id": "libvirt-26"
 }

 {
@@ -1682,7 +1690,7 @@
             "type": "hex32"
         }
     ],
-    "id": "libvirt-26"
+    "id": "libvirt-27"
 }

 {
@@ -1755,7 +1763,7 @@
             "cpu-max": 1
         }
     ],
-    "id": "libvirt-26"
+    "id": "libvirt-28"
 }

 {
@@ -1833,7 +1841,7 @@
             "name": "qemu64"
         }
     ],
-    "id": "libvirt-27"
+    "id": "libvirt-29"
 }

 {
@@ -1841,19 +1849,19 @@
         "enabled": false,
         "present": true
     },
-    "id": "libvirt-28"
+    "id": "libvirt-30"
 }

 {
     "return": [
     ],
-    "id": "libvirt-29"
+    "id": "libvirt-31"
 }

 {
     "return": [
     ],
-    "id": "libvirt-30"
+    "id": "libvirt-32"
 }

 {
@@ -2529,5 +2537,5 @@
             "option": "drive"
         }
     ],
-    "id": "libvirt-31"
+    "id": "libvirt-33"
 }
diff --git a/tests/qemucapabilitiesdata/caps_1.6.0-1.replies 
b/tests/qemucapabilitiesdata/caps_1.6.0-1.replies
index 95e0c37..c9dc29b 100644
--- a/tests/qemucapabilitiesdata/caps_1.6.0-1.replies
+++ b/tests/qemucapabilitiesdata/caps_1.6.0-1.replies
@@ -341,6 +341,14 @@
 }

 {
+    "id": "libvirt-6",
+    "error": {
+        "class": "GenericError",
+        "desc": "Parameter 'top' is missing"
+    }
+}
+
+{
     "return": [
         {
             "name": "GUEST_PANICKED"
@@ -424,7 +432,7 @@
             "name": "SHUTDOWN"
         }
     ],
-    "id": "libvirt-6"
+    "id": "libvirt-7"
 }

 {
@@ -1018,7 +1026,7 @@
             "name": "VGA"
         }
     ],
-    "id": "libvirt-7"
+    "id": "libvirt-8"
 }

 {
@@ -1120,7 +1128,7 @@
             "type": "hex32"
         }
     ],
-    "id": "libvirt-8"
+    "id": "libvirt-9"
 }

 {
@@ -1274,11 +1282,11 @@
             "type": "on/off"
         }
     ],
-    "id": "libvirt-9"
+    "id": "libvirt-10"
 }

 {
-    "id": "libvirt-10",
+    "id": "libvirt-11",
     "error": {
         "class": "DeviceNotFound",
         "desc": "Device 'virtio-blk-ccw' not found"
@@ -1286,7 +1294,7 @@
 }

 {
-    "id": "libvirt-11",
+    "id": "libvirt-12",
     "error": {
         "class": "DeviceNotFound",
         "desc": "Device 'virtio-net-ccw' not found"
@@ -1294,7 +1302,7 @@
 }

 {
-    "id": "libvirt-12",
+    "id": "libvirt-13",
     "error": {
         "class": "DeviceNotFound",
         "desc": "Device 'virtio-blk-s390' not found"
@@ -1302,7 +1310,7 @@
 }

 {
-    "id": "libvirt-13",
+    "id": "libvirt-14",
     "error": {
         "class": "DeviceNotFound",
         "desc": "Device 'virtio-net-s390' not found"
@@ -1310,7 +1318,7 @@
 }

 {
-    "id": "libvirt-14",
+    "id": "libvirt-15",
     "error": {
         "class": "DeviceNotFound",
         "desc": "Device 'pci-assign' not found"
@@ -1360,7 +1368,7 @@
             "type": "pci-host-devaddr"
         }
     ],
-    "id": "libvirt-15"
+    "id": "libvirt-16"
 }

 {
@@ -1402,7 +1410,7 @@
             "type": "pci-host-devaddr"
         }
     ],
-    "id": "libvirt-16"
+    "id": "libvirt-17"
 }

 {
@@ -1476,7 +1484,7 @@
             "type": "drive"
         }
     ],
-    "id": "libvirt-17"
+    "id": "libvirt-18"
 }

 {
@@ -1530,7 +1538,7 @@
             "type": "drive"
         }
     ],
-    "id": "libvirt-18"
+    "id": "libvirt-19"
 }

 {
@@ -1572,11 +1580,11 @@
             "type": "uint32"
         }
     ],
-    "id": "libvirt-19"
+    "id": "libvirt-20"
 }

 {
-    "id": "libvirt-20",
+    "id": "libvirt-21",
     "error": {
         "class": "DeviceNotFound",
         "desc": "Device 'usb-redir' not found"
@@ -1630,7 +1638,7 @@
             "type": "uint32"
         }
     ],
-    "id": "libvirt-21"
+    "id": "libvirt-22"
 }

 {
@@ -1656,7 +1664,7 @@
             "type": "drive"
         }
     ],
-    "id": "libvirt-22"
+    "id": "libvirt-23"
 }

 {
@@ -1666,7 +1674,7 @@
             "type": "size"
         }
     ],
-    "id": "libvirt-23"
+    "id": "libvirt-24"
 }

 {
@@ -1680,7 +1688,7 @@
             "type": "uint64"
         }
     ],
-    "id": "libvirt-24"
+    "id": "libvirt-25"
 }

 {
@@ -1730,7 +1738,7 @@
             "type": "drive"
         }
     ],
-    "id": "libvirt-25"
+    "id": "libvirt-26"
 }

 {
@@ -1744,7 +1752,7 @@
             "type": "hex32"
         }
     ],
-    "id": "libvirt-26"
+    "id": "libvirt-27"
 }

 {
@@ -1833,7 +1841,7 @@
             "cpu-max": 1
         }
     ],
-    "id": "libvirt-26"
+    "id": "libvirt-28"
 }

 {
@@ -1911,7 +1919,7 @@
             "name": "qemu64"
         }
     ],
-    "id": "libvirt-27"
+    "id": "libvirt-29"
 }

 {
@@ -1919,19 +1927,19 @@
         "enabled": false,
         "present": true
     },
-    "id": "libvirt-28"
+    "id": "libvirt-30"
 }

 {
     "return": [
     ],
-    "id": "libvirt-29"
+    "id": "libvirt-31"
 }

 {
     "return": [
     ],
-    "id": "libvirt-30"
+    "id": "libvirt-32"
 }

 {
@@ -2509,5 +2517,5 @@
             "option": "drive"
         }
     ],
-    "id": "libvirt-31"
+    "id": "libvirt-33"
 }
diff --git a/tests/qemucapabilitiesdata/caps_1.6.50-1.replies 
b/tests/qemucapabilitiesdata/caps_1.6.50-1.replies
index 3ecf185..a60542a 100644
--- a/tests/qemucapabilitiesdata/caps_1.6.50-1.replies
+++ b/tests/qemucapabilitiesdata/caps_1.6.50-1.replies
@@ -347,6 +347,14 @@
 }

 {
+    "id": "libvirt-6",
+    "error": {
+        "class": "GenericError",
+        "desc": "Parameter 'top' is missing"
+    }
+}
+
+{
     "return": [
         {
             "name": "BLOCK_IMAGE_CORRUPTED"
@@ -433,7 +441,7 @@
             "name": "SHUTDOWN"
         }
     ],
-    "id": "libvirt-6"
+    "id": "libvirt-7"
 }

 {
@@ -1024,7 +1032,7 @@
             "name": "VGA"
         }
     ],
-    "id": "libvirt-7"
+    "id": "libvirt-8"
 }

 {
@@ -1126,7 +1134,7 @@
             "type": "hex32"
         }
     ],
-    "id": "libvirt-8"
+    "id": "libvirt-9"
 }

 {
@@ -1280,11 +1288,11 @@
             "type": "on/off"
         }
     ],
-    "id": "libvirt-9"
+    "id": "libvirt-10"
 }

 {
-    "id": "libvirt-10",
+    "id": "libvirt-11",
     "error": {
         "class": "DeviceNotFound",
         "desc": "Device 'virtio-blk-ccw' not found"
@@ -1292,7 +1300,7 @@
 }

 {
-    "id": "libvirt-11",
+    "id": "libvirt-12",
     "error": {
         "class": "DeviceNotFound",
         "desc": "Device 'virtio-net-ccw' not found"
@@ -1300,7 +1308,7 @@
 }

 {
-    "id": "libvirt-12",
+    "id": "libvirt-13",
     "error": {
         "class": "DeviceNotFound",
         "desc": "Device 'virtio-blk-s390' not found"
@@ -1308,7 +1316,7 @@
 }

 {
-    "id": "libvirt-13",
+    "id": "libvirt-14",
     "error": {
         "class": "DeviceNotFound",
         "desc": "Device 'virtio-net-s390' not found"
@@ -1316,7 +1324,7 @@
 }

 {
-    "id": "libvirt-14",
+    "id": "libvirt-15",
     "error": {
         "class": "DeviceNotFound",
         "desc": "Device 'pci-assign' not found"
@@ -1366,7 +1374,7 @@
             "type": "pci-host-devaddr"
         }
     ],
-    "id": "libvirt-15"
+    "id": "libvirt-16"
 }

 {
@@ -1408,7 +1416,7 @@
             "type": "pci-host-devaddr"
         }
     ],
-    "id": "libvirt-16"
+    "id": "libvirt-17"
 }

 {
@@ -1482,7 +1490,7 @@
             "type": "drive"
         }
     ],
-    "id": "libvirt-17"
+    "id": "libvirt-18"
 }

 {
@@ -1536,7 +1544,7 @@
             "type": "drive"
         }
     ],
-    "id": "libvirt-18"
+    "id": "libvirt-19"
 }

 {
@@ -1578,11 +1586,11 @@
             "type": "uint32"
         }
     ],
-    "id": "libvirt-19"
+    "id": "libvirt-20"
 }

 {
-    "id": "libvirt-20",
+    "id": "libvirt-21",
     "error": {
         "class": "DeviceNotFound",
         "desc": "Device 'usb-redir' not found"
@@ -1590,7 +1598,7 @@
 }

 {
-    "id": "libvirt-21",
+    "id": "libvirt-22",
     "error": {
         "class": "DeviceNotFound",
         "desc": "Device 'usb-host' not found"
@@ -1620,7 +1628,7 @@
             "type": "drive"
         }
     ],
-    "id": "libvirt-22"
+    "id": "libvirt-23"
 }

 {
@@ -1630,7 +1638,7 @@
             "type": "size"
         }
     ],
-    "id": "libvirt-23"
+    "id": "libvirt-24"
 }

 {
@@ -1644,7 +1652,7 @@
             "type": "uint64"
         }
     ],
-    "id": "libvirt-24"
+    "id": "libvirt-25"
 }

 {
@@ -1694,7 +1702,7 @@
             "type": "drive"
         }
     ],
-    "id": "libvirt-25"
+    "id": "libvirt-26"
 }

 {
@@ -1708,7 +1716,7 @@
             "type": "hex32"
         }
     ],
-    "id": "libvirt-26"
+    "id": "libvirt-27"
 }

 {
@@ -1805,7 +1813,7 @@
             "cpu-max": 1
         }
     ],
-    "id": "libvirt-26"
+    "id": "libvirt-28"
 }

 {
@@ -1883,7 +1891,7 @@
             "name": "qemu64"
         }
     ],
-    "id": "libvirt-27"
+    "id": "libvirt-29"
 }

 {
@@ -1891,19 +1899,19 @@
         "enabled": false,
         "present": true
     },
-    "id": "libvirt-28"
+    "id": "libvirt-30"
 }

 {
     "return": [
     ],
-    "id": "libvirt-29"
+    "id": "libvirt-31"
 }

 {
     "return": [
     ],
-    "id": "libvirt-30"
+    "id": "libvirt-32"
 }

 {
@@ -2486,5 +2494,5 @@
             "option": "drive"
         }
     ],
-    "id": "libvirt-31"
+    "id": "libvirt-33"
 }
-- 
1.9.3

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

Reply via email to