qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Kashyap Chamarthy <kchamart@redhat.com>
To: John Snow <jsnow@redhat.com>
Cc: Kevin Wolf <kwolf@redhat.com>, Fam Zheng <famz@redhat.com>,
	Jeff Cody <jcody@redhat.com>,
	qemu-devel@nongnu.org, Max Reitz <mreitz@redhat.com>,
	vsementsov@parallels.com, stefanha@redhat.com
Subject: Re: [Qemu-devel] [PATCH v7 13/14] qmp-commands.hx: Update the supported 'transaction' operations
Date: Thu, 1 Oct 2015 12:57:41 +0200	[thread overview]
Message-ID: <20151001105741.GB19972@tesla.redhat.com> (raw)
In-Reply-To: <560C304E.1030401@redhat.com>

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 <kchamart@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 <kchamart@redhat.com>
> > Reviewed-by: Eric Blake <eblake@redhat.com>
> > Reviewed-by: Max Reitz <mreitz@redhat.com>
> > Signed-off-by: John Snow <jsnow@redhat.com>
> > Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> > Signed-off-by: Fam Zheng <famz@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

  reply	other threads:[~2015-10-01 10:57 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-22  2:46 [Qemu-devel] [PATCH v7 00/14] block: incremental backup transactions using BlockJobTxn Fam Zheng
2015-09-22  2:46 ` [Qemu-devel] [PATCH v7 01/14] qapi: Add transaction support to block-dirty-bitmap operations Fam Zheng
2015-09-22  2:46 ` [Qemu-devel] [PATCH v7 02/14] iotests: add transactional incremental backup test Fam Zheng
2015-09-22  2:46 ` [Qemu-devel] [PATCH v7 03/14] block: rename BlkTransactionState and BdrvActionOps Fam Zheng
2015-09-22  2:46 ` [Qemu-devel] [PATCH v7 04/14] backup: Extract dirty bitmap handling as a separate function Fam Zheng
2015-09-22  2:46 ` [Qemu-devel] [PATCH v7 05/14] blockjob: Introduce reference count Fam Zheng
2015-09-22  2:46 ` [Qemu-devel] [PATCH v7 06/14] blockjob: Add .commit and .abort block job actions Fam Zheng
2015-09-22  2:46 ` [Qemu-devel] [PATCH v7 07/14] blockjob: Add "completed" and "ret" in BlockJob Fam Zheng
2015-09-22  2:46 ` [Qemu-devel] [PATCH v7 08/14] blockjob: Simplify block_job_finish_sync Fam Zheng
2015-09-22  2:46 ` [Qemu-devel] [PATCH v7 09/14] block: Add block job transactions Fam Zheng
2015-09-22 19:09   ` John Snow
2015-09-24  8:29     ` Fam Zheng
2015-09-22  2:46 ` [Qemu-devel] [PATCH v7 10/14] blockdev: make BlockJobTxn available to qmp 'transaction' Fam Zheng
2015-09-22 19:13   ` John Snow
2015-09-22  2:46 ` [Qemu-devel] [PATCH v7 11/14] block/backup: support block job transactions Fam Zheng
2015-09-22 16:03   ` Eric Blake
2015-09-22 21:08   ` John Snow
2015-09-22 22:34     ` Eric Blake
2015-09-22 23:27       ` John Snow
2015-09-23 11:09         ` Markus Armbruster
2015-09-23 16:14           ` John Snow
2015-09-24  6:34             ` Markus Armbruster
2015-09-25 16:05               ` John Snow
2015-09-22  2:46 ` [Qemu-devel] [PATCH v7 12/14] iotests: 124 - transactional failure test Fam Zheng
2015-09-22  2:46 ` [Qemu-devel] [PATCH v7 13/14] qmp-commands.hx: Update the supported 'transaction' operations Fam Zheng
2015-09-30 18:56   ` John Snow
2015-10-01 10:57     ` Kashyap Chamarthy [this message]
2015-09-22  2:46 ` [Qemu-devel] [PATCH v7 14/14] tests: add BlockJobTxn unit test Fam Zheng
2015-09-22 23:33   ` John Snow
2015-09-22 20:48 ` [Qemu-devel] [PATCH v7 00/14] block: incremental backup transactions using BlockJobTxn John Snow

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=20151001105741.GB19972@tesla.redhat.com \
    --to=kchamart@redhat.com \
    --cc=famz@redhat.com \
    --cc=jcody@redhat.com \
    --cc=jsnow@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    --cc=vsementsov@parallels.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).