From: Peter Krempa <pkrempa@redhat.com>
In addition to 'device-list-properties' libvirt probes also some
properties of qom types. Since the format is identical make the dumping
function for 'device-list-properties' universal and make it accept also
'qom-list-types'.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
---
scripts/qemu-replies-tool.py | 50 +++++++++++++++++++++---------------
1 file changed, 30 insertions(+), 20 deletions(-)
diff --git a/scripts/qemu-replies-tool.py b/scripts/qemu-replies-tool.py
index 211c448482..77d96f625d 100755
--- a/scripts/qemu-replies-tool.py
+++ b/scripts/qemu-replies-tool.py
@@ -409,30 +409,40 @@ def dump_qom_list_types(conv):
print('(qom) ' + t)
-def dump_device_list_properties(conv):
- devices = []
+def dump_device_and_object_properties(conv):
+ ent = []
for c in conv:
+ prefix = None
+
if c['cmd']['execute'] == 'device-list-properties':
- if 'return' in c['rep']:
- for arg in c['rep']['return']:
- for k in arg:
- if k not in ['name', 'type', 'description', 'default-value']:
- raise Exception("Unhandled 'device-list-properties' typename '%s' field '%s'" % (c['cmd']['arguments']['typename'], k))
-
- if 'default-value' in arg:
- defval = ' (%s)' % str(arg['default-value'])
- else:
- defval = ''
+ prefix = '(dev-prop)'
+
+ if c['cmd']['execute'] == 'qom-list-properties':
+ prefix = '(qom-prop)'
+
+ if prefix is None or 'return' not in c['rep']:
+ continue
+
+ for arg in c['rep']['return']:
+ for k in arg:
+ if k not in ['name', 'type', 'description', 'default-value']:
+ raise Exception("Unhandled 'device-list-properties'/'qom-list-properties' typename '%s' field '%s'" % (c['cmd']['arguments']['typename'], k))
+
+ if 'default-value' in arg:
+ defval = ' (%s)' % str(arg['default-value'])
+ else:
+ defval = ''
- devices.append('%s %s %s%s' % (c['cmd']['arguments']['typename'],
- arg['name'],
- arg['type'],
- defval))
- devices.sort()
+ ent.append('%s %s %s %s%s' % (prefix,
+ c['cmd']['arguments']['typename'],
+ arg['name'],
+ arg['type'],
+ defval))
+ ent.sort()
- for d in devices:
- print('(dev) ' + d)
+ for e in ent:
+ print(e)
# Sort helper for version string e.g. '11.0', '1.2' etc. Tolerates empty version.
@@ -507,7 +517,7 @@ def process_one(filename, args):
if args.dump_all:
dump_qom_list_types(conv)
- dump_device_list_properties(conv)
+ dump_device_and_object_properties(conv)
dump_machine_types(conv)
dumped = True
--
2.51.0