On Wed, Feb 23, 2022 at 10:27 AM Daniel P. Berrangé <berra...@redhat.com> wrote: > > On Wed, Feb 23, 2022 at 10:22:11AM -0500, John Snow wrote: > > On Mon, Feb 21, 2022 at 10:55 AM Damien Hedde > > <damien.he...@greensocs.com> wrote: > > > > > > This option makes qmp_shell exit (with error code 1) > > > as soon as one of the following error occurs: > > > + command parsing error > > > + disconnection > > > + command failure (response is an error) > > > > > > _execute_cmd() method now returns None or the response > > > so that read_exec_command() can do the last check. > > > > > > This is meant to be used in combination with an input file > > > redirection. It allows to store a list of commands > > > into a file and try to run them by qmp_shell and easily > > > see if it failed or not. > > > > > > Signed-off-by: Damien Hedde <damien.he...@greensocs.com> > > > > Based on this patch, it looks like you really want something > > scriptable, so I think the qemu-send idea that Dan has suggested might > > be the best way to go. Are you still hoping to use the interactive > > "short" QMP command format? That might be a bad idea, given how flaky > > the parsing is -- and how we don't actually have a published standard > > for that format. We've *never* liked the bad parsing here, so I have a > > reluctance to use it in more places. > > > > I'm having the naive idea that a script file could be as simple as a > > list of QMP commands to send: > > > > [ > > {"execute": "block-dirty-bitmap-add", "arguments": { ... }}, > > ... > > ] > > I'd really recommend against creating a new format for the script > file, especially one needing opening & closing [] like this, as > that isn't so amenable to dynamic usage/creation. ie you can't > just append an extcra command to an existing file. > > IMHO, the "file" format should be identical to the result of > capturing the socket data off the wire. ie just a concatenation > of QMP commands, with no extra wrapping / change in format. >
Eugh. That's just so hard to parse, because there's no off-the-shelf tooling for "load a sequence of JSON documents". Nothing in Python does it. :\