From: "Dr. David Alan Gilbert (git)" <dgilbert@redhat.com>
To: qemu-devel@nongnu.org, david@redhat.com, lvivier@redhat.com,
maozhongyi@cmss.chinamobile.com, mreitz@redhat.com,
pannengyuan@huawei.com
Cc: stefanha@redhat.com, quintela@redhat.com
Subject: [PULL 03/12] hmp: Make json format optional for qom-set
Date: Wed, 17 Jun 2020 19:37:24 +0100 [thread overview]
Message-ID: <20200617183733.186168-4-dgilbert@redhat.com> (raw)
In-Reply-To: <20200617183733.186168-1-dgilbert@redhat.com>
From: David Hildenbrand <david@redhat.com>
Commit 7d2ef6dcc1cf ("hmp: Simplify qom-set") switched to the json
parser, making it possible to specify complex types. However, with this
change it is no longer possible to specify proper sizes (e.g., 2G, 128M),
turning the interface harder to use for properties that consume sizes.
Let's switch back to the previous handling and allow to specify passing
json via the "-j" parameter.
Cc: Philippe Mathieu-Daudé <philmd@redhat.com>
Cc: Markus Armbruster <armbru@redhat.com>
Cc: Dr. David Alan Gilbert <dgilbert@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: "Daniel P. Berrangé" <berrange@redhat.com>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: David Hildenbrand <david@redhat.com>
Message-Id: <20200610075153.33892-1-david@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
---
hmp-commands.hx | 7 ++++---
qom/qom-hmp-cmds.c | 20 ++++++++++++++++----
2 files changed, 20 insertions(+), 7 deletions(-)
diff --git a/hmp-commands.hx b/hmp-commands.hx
index 28256209b5..60f395c276 100644
--- a/hmp-commands.hx
+++ b/hmp-commands.hx
@@ -1806,9 +1806,10 @@ ERST
{
.name = "qom-set",
- .args_type = "path:s,property:s,value:S",
- .params = "path property value",
- .help = "set QOM property",
+ .args_type = "json:-j,path:s,property:s,value:S",
+ .params = "[-j] path property value",
+ .help = "set QOM property.\n\t\t\t"
+ "-j: the value is specified in json format.",
.cmd = hmp_qom_set,
.flags = "p",
},
diff --git a/qom/qom-hmp-cmds.c b/qom/qom-hmp-cmds.c
index 158e2d7409..b0abe84cb1 100644
--- a/qom/qom-hmp-cmds.c
+++ b/qom/qom-hmp-cmds.c
@@ -44,15 +44,27 @@ void hmp_qom_list(Monitor *mon, const QDict *qdict)
void hmp_qom_set(Monitor *mon, const QDict *qdict)
{
+ const bool json = qdict_get_try_bool(qdict, "json", false);
const char *path = qdict_get_str(qdict, "path");
const char *property = qdict_get_str(qdict, "property");
const char *value = qdict_get_str(qdict, "value");
Error *err = NULL;
- QObject *obj;
- obj = qobject_from_json(value, &err);
- if (err == NULL) {
- qmp_qom_set(path, property, obj, &err);
+ if (!json) {
+ Object *obj = object_resolve_path(path, NULL);
+
+ if (!obj) {
+ error_set(&err, ERROR_CLASS_DEVICE_NOT_FOUND,
+ "Device '%s' not found", path);
+ } else {
+ object_property_parse(obj, value, property, &err);
+ }
+ } else {
+ QObject *obj = qobject_from_json(value, &err);
+
+ if (!err) {
+ qmp_qom_set(path, property, obj, &err);
+ }
}
hmp_handle_error(mon, err);
--
2.26.2
next prev parent reply other threads:[~2020-06-17 18:40 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-17 18:37 [PULL 00/12] migration, HMP and virtiofs queue Dr. David Alan Gilbert (git)
2020-06-17 18:37 ` [PULL 01/12] virtiofsd: Whitelist fchmod Dr. David Alan Gilbert (git)
2020-06-17 18:37 ` [PULL 02/12] qom-hmp-cmds: fix a memleak in hmp_qom_get Dr. David Alan Gilbert (git)
2020-06-17 18:37 ` Dr. David Alan Gilbert (git) [this message]
2020-06-17 18:37 ` [PULL 04/12] tests/migration: mem leak fix Dr. David Alan Gilbert (git)
2020-06-17 18:37 ` [PULL 05/12] tests/migration: fix unreachable path in stress test Dr. David Alan Gilbert (git)
2020-06-17 18:37 ` [PULL 06/12] monitor/hmp-cmds: add units for migrate_parameters Dr. David Alan Gilbert (git)
2020-06-17 18:37 ` [PULL 07/12] monitor/hmp-cmds: don't silently output when running 'migrate_set_downtime' fails Dr. David Alan Gilbert (git)
2020-06-17 18:37 ` [PULL 08/12] monitor/hmp-cmds: delete redundant Error check before invoke hmp_handle_error() Dr. David Alan Gilbert (git)
2020-06-17 18:37 ` [PULL 09/12] monitor/hmp-cmds: add 'goto end' to reduce duplicate code Dr. David Alan Gilbert (git)
2020-06-17 18:37 ` [PULL 10/12] monitor/hmp-cmds: improvements for the 'info migrate' Dr. David Alan Gilbert (git)
2020-06-17 18:37 ` [PULL 11/12] docs/xbzrle: update 'cache miss rate' and 'encoding rate' to docs Dr. David Alan Gilbert (git)
2020-06-17 18:37 ` [PULL 12/12] migration: fix multifd_send_pages() next channel Dr. David Alan Gilbert (git)
2020-06-17 19:09 ` [PULL 00/12] migration, HMP and virtiofs queue no-reply
2020-06-18 15:51 ` Peter Maydell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200617183733.186168-4-dgilbert@redhat.com \
--to=dgilbert@redhat.com \
--cc=david@redhat.com \
--cc=lvivier@redhat.com \
--cc=maozhongyi@cmss.chinamobile.com \
--cc=mreitz@redhat.com \
--cc=pannengyuan@huawei.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
--cc=stefanha@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).