On Wed, Sep 30, 2015 at 02:56:14PM -0400, John Snow wrote: > > > On 09/21/2015 10:46 PM, Fam Zheng wrote: > > From: Kashyap Chamarthy <kcham...@redhat.com> > > > > Although the canonical source of reference for QMP commands is > > qapi-schema.json, for consistency's sake, update qmp-commands.hx to > > state the list of supported transactionable operations, namely: > > > > drive-backup > > blockdev-backup > > blockdev-snapshot-internal-sync > > abort > > block-dirty-bitmap-add > > block-dirty-bitmap-clear > > > > Signed-off-by: Kashyap Chamarthy <kcham...@redhat.com> > > Reviewed-by: Eric Blake <ebl...@redhat.com> > > Reviewed-by: Max Reitz <mre...@redhat.com> > > Signed-off-by: John Snow <js...@redhat.com> > > Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> > > Signed-off-by: Fam Zheng <f...@redhat.com> > > --- > > qmp-commands.hx | 21 ++++++++++++++++----- > > 1 file changed, 16 insertions(+), 5 deletions(-) > > > > diff --git a/qmp-commands.hx b/qmp-commands.hx > > index 66f0300..365c874 100644 > > --- a/qmp-commands.hx > > +++ b/qmp-commands.hx > > @@ -1265,11 +1265,22 @@ SQMP > > transaction > > ----------- > > > > -Atomically operate on one or more block devices. The only supported > > operations > > -for now are drive-backup, internal and external snapshotting. A list of > > -dictionaries is accepted, that contains the actions to be performed. > > -If there is any failure performing any of the operations, all operations > > -for the group are abandoned. > > +Atomically operate on one or more block devices. Operations that are > > +currently supported: > > + > > + - drive-backup > > + - blockdev-backup > > + - blockdev-snapshot-sync > > + - blockdev-snapshot-internal-sync > > + - abort > > + - block-dirty-bitmap-add > > + - block-dirty-bitmap-clear > > + > > +Refer to the qemu/qapi-schema.json file for minimum required QEMU > > +versions for these operations. A list of dictionaries is accepted, > > +that contains the actions to be performed. If there is any failure > > +performing any of the operations, all operations for the group are > > +abandoned. > > > > For external snapshots, the dictionary contains the device, the file to > > use for > > the new snapshot, and the format. The default format, if not specified, is > > > > It recently occurred to me that this patch is incomplete, see just below: > > 'Arguments: > > actions array: > - "type": the operation to perform. The only supported > value is "blockdev-snapshot-sync". (json-string) > ' > > > That's not the only type, now -- all the others listed above are valid > too, so this section could use a brush-up as well.
Good find, John. I missed that detail. Despite _testing_ multiple array types myself earlier :-) ----- $ ./qmp-shell -v /tmp/qmp-sock (QEMU) transaction( TRANS> blockdev-snapshot-internal-sync device=drive-ide0-0-0 name=snapshot5 TRANS> block-dirty-bitmap-add node=drive-ide0-0-0 name=bitmap1 TRANS> block-dirty-bitmap-clear node=drive-ide0-0-0 name=bitmap0 TRANS> drive-backup device=drive-ide0-0-0 bitmap=bitmap1 sync=dirty-bitmap target=./incremental.0.img mode=existing format=qcow2 TRANS> ) {"execute": "transaction", "arguments": {"actions": [{"data": {"device": "drive-ide0-0-0", "name": "snapshot5"}, "type": "blockdev-snapshot-internal-sync"}, {"data": {"node": "drive-ide0-0-0", "name": "bitmap1"}, "type": "block-dirty-bitmap-add"}, {"data": {"node": "drive-ide0-0-0", "name": "bitmap0"}, "type": "block-dirty-bitmap-clear"}, {"data": {"target": "./incremental.0.img", "format": "qcow2", "sync": "dirty-bitmap", "bitmap": "bitmap1", "mode": "existing", "device": "drive-ide0-0-0"}, "type": "drive-backup"}]}} {"return": {}} (QEMU) ----- Will send an updated patch. -- /kashyap