[libvirt] [PATCH 6/8] qemu: qapi: Add support for command features

Peter Krempa pkrempa at redhat.com
Mon Nov 18 17:02:06 UTC 2019


The top level commands now can have 'feature' flags for fixes so add
support for querying those as well.

Signed-off-by: Peter Krempa <pkrempa at redhat.com>
---
 src/qemu/qemu_qapi.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/src/qemu/qemu_qapi.c b/src/qemu/qemu_qapi.c
index 484f274c63..8e66f9f180 100644
--- a/src/qemu/qemu_qapi.c
+++ b/src/qemu/qemu_qapi.c
@@ -216,6 +216,21 @@ virQEMUQAPISchemaTraverseCommand(virJSONValuePtr cur,
 {
     const char *query = virQEMUQAPISchemaTraverseContextNextQuery(ctxt);
     const char *querytype;
+    char modifier = *query;
+
+    if (!c_isalpha(modifier))
+        query++;
+
+    /* exit on modifers for other types */
+    if (modifier == '^' || modifier == '!' || modifier == '+' || modifier == '*')
+        return 0;
+
+    if (modifier == '$') {
+        if (virQEMUQAPISchemaTraverseContextHasNextQuery(ctxt))
+            return -3;
+
+        return virQEMUQAPISchemaTraverseHasObjectFeature(query, cur);
+    }

     if (!(querytype = virJSONValueObjectGetString(cur, query)))
         return 0;
-- 
2.23.0




More information about the libvir-list mailing list