[PATCH 09/10] qemu-replies-tool: Dump 'qom-list-types'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The order of entries in 'qom-list-types' sometimes changes arbitrarily.

The --dump-qom-list-types produces a stable order and drops the for
libvirt unneeded 'parent' information.

Sample output:

$ ./scripts/qemu-replies-tool.py tests/qemucapabilitiesdata/caps_9.0.0_x86_64.replies --dump-qom-list-types
(qom) 486-v1-x86_64-cpu
(qom) 486-x86_64-cpu
(qom) AC97
(qom) AMDVI-PCI
(qom) Broadwell-IBRS-x86_64-cpu
(qom) Broadwell-noTSX-IBRS-x86_64-cpu
(qom) Broadwell-noTSX-x86_64-cpu
(qom) Broadwell-v1-x86_64-cpu
(qom) Broadwell-v2-x86_64-cpu
(qom) Broadwell-v3-x86_64-cpu

[...]

Signed-off-by: Peter Krempa <pkrempa@xxxxxxxxxx>
---
 scripts/qemu-replies-tool.py | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/scripts/qemu-replies-tool.py b/scripts/qemu-replies-tool.py
index 5dcc975756..bdd63a9460 100755
--- a/scripts/qemu-replies-tool.py
+++ b/scripts/qemu-replies-tool.py
@@ -375,6 +375,28 @@ def dump_qmp_probe_strings(schemalist):
         dump_qmp_probe_strings_iter(c, '(qmp) ' + c, [], schemadict)


+def dump_qom_list_types(conv):
+    types = []
+
+    for (cmd, rep) in conv:
+        if cmd['execute'] == 'qom-list-types':
+            for qomtype in rep['return']:
+                # validate known fields:
+                # 'parent' is ignored below as it causes output churn
+                for k in qomtype:
+                    if k not in ['name', 'parent']:
+                        raise Exception("Unhandled 'qom-list-types' field '%s'" % k)
+
+                types.append(qomtype['name'])
+
+            break
+
+    types.sort()
+
+    for t in types:
+        print('(qom) ' + t)
+
+
 def process_one(filename, args):
     try:
         conv = qemu_replies_load(filename)
@@ -390,6 +412,10 @@ def process_one(filename, args):
                     dump_qmp_probe_strings(rep['return'])
                     dumped = True

+        if args.dump_all or args.dump_qom_list_types:
+            dump_qom_list_types(conv)
+            dumped = True
+
         if dumped:
             return True

@@ -433,6 +459,11 @@ functional impact on libvirt.
     virQEMUCapsQMPSchemaQueries. It's useful to find specific query string
     without having to piece the information together from 'query-qmp-schema'

+  --dump-qom-list-types
+
+    Dumps all types returned by 'qom-list-types' in a stable order with the
+    'parent' property dropped as it's not relevant for libvirt.
+
 The tool can be also used to programmaticaly modify the '.replies' file by
 editting the 'modify_replies' method directly in the source, or for
 re-formatting and re-numbering the '.replies' file to conform with the required
@@ -463,6 +494,9 @@ parser.add_argument('--dump-all', action='store_true',
 parser.add_argument('--dump-qmp-query-strings', action='store_true',
                     help='dump QMP schema in form of query strings used to probe capabilities')

+parser.add_argument('--dump-qom-list-types', action='store_true',
+                    help='dump data from qom-list-types in a stable order')
+
 args = parser.parse_args()

 if not args.replyfile and not args.repliesdir:
-- 
2.43.0
_______________________________________________
Devel mailing list -- devel@xxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxx




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux