@samitouri / QOSamiQemu / commits / 2c7f10173e

monitor: add 'pretty' property to QMP Monitor class

This determines whether the QMP JSON responses are pretty printed with newlines and indentation, or compact with no extra whitespace. Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Tested-by: Peter Krempa <pkrempa@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Message-ID: <20260706135824.2623960-10-berrange@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>

Daniel P. Berrangé committed Jul 6, 2026 at 14:57 UTC 2c7f10173e5bc6ca41ea2613c25d67a3a03ac5f5
1 file changed +18 -2
monitor/qmp.c
+18 -2
@@ -77,8 +77,25 @@ static void monitor_qmp_finalize(Object *obj)
77 {
78 }
79
80 +static bool monitor_qmp_get_pretty(Object *obj, Error **errp)
81 +{
82 + MonitorQMP *mon = MONITOR_QMP(obj);
83 +
84 + return mon->pretty;
85 +}
86 +
87 +static void monitor_qmp_set_pretty(Object *obj, bool val, Error **errp)
88 +{
89 + MonitorQMP *mon = MONITOR_QMP(obj);
90 +
91 + mon->pretty = val;
92 +}
93 +
94 static void monitor_qmp_class_init(ObjectClass *cls, const void *data)
95 {
96 + object_class_property_add_bool(cls, "pretty",
97 + monitor_qmp_get_pretty,
98 + monitor_qmp_set_pretty);
99 }
100
101 static void monitor_qmp_init(Object *obj)
@@ -538,6 +555,7 @@ void monitor_new_qmp(const char *id, const char *chardev_id,
555 id ? id : autoid,
556 errp,
557 "chardev", chardev_id,
558 + "pretty", pretty ? "yes" : "no",
559 NULL);
560
561 if (!obj) {
@@ -558,8 +576,6 @@ void monitor_new_qmp(const char *id, const char *chardev_id,
576 qemu_chr_has_feature(mon->parent_obj.chr.chr,
577 QEMU_CHAR_FEATURE_GCONTEXT));
578
561 - mon->pretty = pretty;
562 -
579 qemu_mutex_init(&mon->qmp_queue_lock);
580 mon->qmp_requests = g_queue_new();
581