diff mbox

qmp-commands.hx: Update the supported 'transaction' operations

Message ID 1443787955-19823-1-git-send-email-kchamart@redhat.com
State New
Headers show

Commit Message

Kashyap Chamarthy Oct. 2, 2015, 12:12 p.m. UTC
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

Also update the possible values for the "type" action array.

Signed-off-by: Kashyap Chamarthy <kchamart@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
---
In v8 ("v8" because Fam included this as part of a series that is
in its "v7" edition):
 - Update the possible values for supported 'type' of operation
---
 qmp-commands.hx | 29 ++++++++++++++++++++++-------
 1 file changed, 22 insertions(+), 7 deletions(-)

Comments

Eric Blake Oct. 2, 2015, 12:40 p.m. UTC | #1
On 10/02/2015 06:12 AM, Kashyap Chamarthy wrote:
> 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
> 
> Also update the possible values for the "type" action array.
> 
> Signed-off-by: Kashyap Chamarthy <kchamart@redhat.com>
> Reviewed-by: Eric Blake <eblake@redhat.com>

Significant enough changes that I would have dropped R-b before posting
to ensure it gets looked at. But fortunately, you did a good job, so you
can still keep my R-b.
Kashyap Chamarthy Oct. 2, 2015, 12:51 p.m. UTC | #2
On Fri, Oct 02, 2015 at 06:40:28AM -0600, Eric Blake wrote:
> On 10/02/2015 06:12 AM, Kashyap Chamarthy wrote:
> > 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
> > 
> > Also update the possible values for the "type" action array.
> > 
> > Signed-off-by: Kashyap Chamarthy <kchamart@redhat.com>
> > Reviewed-by: Eric Blake <eblake@redhat.com>
> 
> Significant enough changes that I would have dropped R-b before posting
> to ensure it gets looked at. 

Yes, I was wary of this and thought I included a blurb "Removing Eric's
R-b as this change involves more edits."  My bad, seems to have missed
it while message composition.  And, your reminder doesn't hurt.

> But fortunately, you did a good job, so you can still keep my R-b.

Thanks.
Max Reitz Oct. 2, 2015, 5:59 p.m. UTC | #3
On 02.10.2015 14:12, Kashyap Chamarthy wrote:
> 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
> 
> Also update the possible values for the "type" action array.
> 
> Signed-off-by: Kashyap Chamarthy <kchamart@redhat.com>
> Reviewed-by: Eric Blake <eblake@redhat.com>
> ---
> In v8 ("v8" because Fam included this as part of a series that is
> in its "v7" edition):
>  - Update the possible values for supported 'type' of operation
> ---
>  qmp-commands.hx | 29 ++++++++++++++++++++++-------
>  1 file changed, 22 insertions(+), 7 deletions(-)
> 
> diff --git a/qmp-commands.hx b/qmp-commands.hx
> index d2ba800d5effaddcae4c437452ef1f67c0aaaaa9..2b52980cfc2f80904a3c7375a382b638e8a51161 100644
> --- a/qmp-commands.hx
> +++ b/qmp-commands.hx
> @@ -1270,11 +1270,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
> @@ -1301,8 +1312,12 @@ it later with qemu-img or other command.
>  Arguments:
>  
>  actions array:
> -    - "type": the operation to perform.  The only supported
> -      value is "blockdev-snapshot-sync". (json-string)
> +    - "type": the operation to perform (json-string).  Possible
> +              values: "drive-backup", "blockdev-backup",
> +                      "blockdev-snapshot-sync",
> +                      "blockdev-snapshot-internal-sync",
> +                      "abort", "block-dirty-bitmap-add",
> +                      "block-dirty-bitmap-clear"
>      - "data": a dictionary.  The contents depend on the value
>        of "type".  When "type" is "blockdev-snapshot-sync":
>        - "device": device name to snapshot (json-string)
> 

Do you want to extend this list, too? Right now it only contains
parameter information for blockdev-snapshot-sync and
blockdev-snapshot-internal-sync.

Max
Kashyap Chamarthy Oct. 12, 2015, 11:04 a.m. UTC | #4
[Sorry, I noticed your question only just now, as I was briefly away
from this list.]

On Fri, Oct 02, 2015 at 07:59:48PM +0200, Max Reitz wrote:
> On 02.10.2015 14:12, Kashyap Chamarthy wrote:
> > 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
> > 
> > Also update the possible values for the "type" action array.
> > 
> > Signed-off-by: Kashyap Chamarthy <kchamart@redhat.com>
> > Reviewed-by: Eric Blake <eblake@redhat.com>
> > ---
> > In v8 ("v8" because Fam included this as part of a series that is
> > in its "v7" edition):
> >  - Update the possible values for supported 'type' of operation
> > ---
> >  qmp-commands.hx | 29 ++++++++++++++++++++++-------
> >  1 file changed, 22 insertions(+), 7 deletions(-)
> > 
> > diff --git a/qmp-commands.hx b/qmp-commands.hx
> > index d2ba800d5effaddcae4c437452ef1f67c0aaaaa9..2b52980cfc2f80904a3c7375a382b638e8a51161 100644
> > --- a/qmp-commands.hx
> > +++ b/qmp-commands.hx
> > @@ -1270,11 +1270,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
> > @@ -1301,8 +1312,12 @@ it later with qemu-img or other command.
> >  Arguments:
> >  
> >  actions array:
> > -    - "type": the operation to perform.  The only supported
> > -      value is "blockdev-snapshot-sync". (json-string)
> > +    - "type": the operation to perform (json-string).  Possible
> > +              values: "drive-backup", "blockdev-backup",
> > +                      "blockdev-snapshot-sync",
> > +                      "blockdev-snapshot-internal-sync",
> > +                      "abort", "block-dirty-bitmap-add",
> > +                      "block-dirty-bitmap-clear"
> >      - "data": a dictionary.  The contents depend on the value
> >        of "type".  When "type" is "blockdev-snapshot-sync":
> >        - "device": device name to snapshot (json-string)
> > 
> 
> Do you want to extend this list, too? Right now it only contains
> parameter information for blockdev-snapshot-sync and
> blockdev-snapshot-internal-sync.

You mean, all the parameters for rest of the transactionable commands
that one can possibly add (taking block-core.json)?

E.g. for 'drive-backup' command, all the possible data ('device',
target', 'format', 'sync', etc) one can provide (which are enumerated in
the DriveBackup struct):


    $ less qapi/block-core.json
    [...]
    { 'struct': 'DriveBackup',
      'data': { 'device': 'str', 'target': 'str', '*format': 'str',
                'sync': 'MirrorSyncMode', '*mode': 'NewImageMode',
                '*speed': 'int', '*bitmap': 'str',
                '*on-source-error': 'BlockdevOnError',
                '*on-target-error': 'BlockdevOnError' } }
    [...]

And, data provided by 'BlockdevBackup' struct for 'blockdev-backup', so
on.

If so, I can do try that if that's the preferred way, but maybe it can
be done as a separate commit, since it's been that way for a while?
Kevin Wolf Oct. 12, 2015, 11:30 a.m. UTC | #5
Am 02.10.2015 um 14:12 hat Kashyap Chamarthy geschrieben:
> 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
> 
> Also update the possible values for the "type" action array.
> 
> Signed-off-by: Kashyap Chamarthy <kchamart@redhat.com>
> Reviewed-by: Eric Blake <eblake@redhat.com>

Thanks, applied to the block branch.

Kevin
Eric Blake Oct. 12, 2015, 1:54 p.m. UTC | #6
On 10/12/2015 05:04 AM, Kashyap Chamarthy wrote:
> [Sorry, I noticed your question only just now, as I was briefly away
> from this list.]
> 
> On Fri, Oct 02, 2015 at 07:59:48PM +0200, Max Reitz wrote:
>> On 02.10.2015 14:12, Kashyap Chamarthy wrote:
>>> 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:
>>>

>>>  actions array:
>>> -    - "type": the operation to perform.  The only supported
>>> -      value is "blockdev-snapshot-sync". (json-string)
>>> +    - "type": the operation to perform (json-string).  Possible
>>> +              values: "drive-backup", "blockdev-backup",
>>> +                      "blockdev-snapshot-sync",
>>> +                      "blockdev-snapshot-internal-sync",
>>> +                      "abort", "block-dirty-bitmap-add",
>>> +                      "block-dirty-bitmap-clear"
>>>      - "data": a dictionary.  The contents depend on the value
>>>        of "type".  When "type" is "blockdev-snapshot-sync":
>>>        - "device": device name to snapshot (json-string)
>>>
>>
>> Do you want to extend this list, too? Right now it only contains
>> parameter information for blockdev-snapshot-sync and
>> blockdev-snapshot-internal-sync.
> 
> You mean, all the parameters for rest of the transactionable commands
> that one can possibly add (taking block-core.json)?

Or conversely, we could drop the action-specific arguments, and just say
something like "see the documentation for specific additional fields
appropriate for that action"


> If so, I can do try that if that's the preferred way, but maybe it can
> be done as a separate commit, since it's been that way for a while?  

Yes, at this point, a separate commit for any further cleanups is fine.
John Snow Oct. 12, 2015, 3:31 p.m. UTC | #7
On 10/12/2015 09:54 AM, Eric Blake wrote:
> On 10/12/2015 05:04 AM, Kashyap Chamarthy wrote:
>> [Sorry, I noticed your question only just now, as I was briefly away
>> from this list.]
>>
>> On Fri, Oct 02, 2015 at 07:59:48PM +0200, Max Reitz wrote:
>>> On 02.10.2015 14:12, Kashyap Chamarthy wrote:
>>>> 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:
>>>>
> 
>>>>  actions array:
>>>> -    - "type": the operation to perform.  The only supported
>>>> -      value is "blockdev-snapshot-sync". (json-string)
>>>> +    - "type": the operation to perform (json-string).  Possible
>>>> +              values: "drive-backup", "blockdev-backup",
>>>> +                      "blockdev-snapshot-sync",
>>>> +                      "blockdev-snapshot-internal-sync",
>>>> +                      "abort", "block-dirty-bitmap-add",
>>>> +                      "block-dirty-bitmap-clear"
>>>>      - "data": a dictionary.  The contents depend on the value
>>>>        of "type".  When "type" is "blockdev-snapshot-sync":
>>>>        - "device": device name to snapshot (json-string)
>>>>
>>>
>>> Do you want to extend this list, too? Right now it only contains
>>> parameter information for blockdev-snapshot-sync and
>>> blockdev-snapshot-internal-sync.
>>
>> You mean, all the parameters for rest of the transactionable commands
>> that one can possibly add (taking block-core.json)?
> 
> Or conversely, we could drop the action-specific arguments, and just say
> something like "see the documentation for specific additional fields
> appropriate for that action"
> 

This is the approach that's most flexible. As it stands upstream right
now, all of the various actions simply have an identical command layout
to their respective QMP versions, so it'd be easiest to just point to
the various singlet commands.

We'll prevent desync and bad documentation that way. If we ever add
extra arguments per-transaction (like this patchset proposes,) we can
always just document the difference.

> 
>> If so, I can do try that if that's the preferred way, but maybe it can
>> be done as a separate commit, since it's been that way for a while?  
> 
> Yes, at this point, a separate commit for any further cleanups is fine.
>
Marc-André Lureau Nov. 23, 2015, 6:58 p.m. UTC | #8
Hi

On Fri, Oct 2, 2015 at 2:12 PM, Kashyap Chamarthy <kchamart@redhat.com> wrote:
> 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
>
> Also update the possible values for the "type" action array.

Isn't the actions limited by the TransactionAction in qapi-schema.json?

 { 'union': 'TransactionAction',
   'data': {
        'blockdev-snapshot-sync': 'BlockdevSnapshot',
        'drive-backup': 'DriveBackup',
+       'blockdev-backup': 'BlockdevBackup',
        'abort': 'Abort',
        'blockdev-snapshot-internal-sync': 'BlockdevSnapshotInternal'
    } }

It looks like block-dirty-bitmap-add/clear isn't in the list.

Thanks

>
> Signed-off-by: Kashyap Chamarthy <kchamart@redhat.com>
> Reviewed-by: Eric Blake <eblake@redhat.com>
> ---
> In v8 ("v8" because Fam included this as part of a series that is
> in its "v7" edition):
>  - Update the possible values for supported 'type' of operation
> ---
>  qmp-commands.hx | 29 ++++++++++++++++++++++-------
>  1 file changed, 22 insertions(+), 7 deletions(-)
>
> diff --git a/qmp-commands.hx b/qmp-commands.hx
> index d2ba800d5effaddcae4c437452ef1f67c0aaaaa9..2b52980cfc2f80904a3c7375a382b638e8a51161 100644
> --- a/qmp-commands.hx
> +++ b/qmp-commands.hx
> @@ -1270,11 +1270,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
> @@ -1301,8 +1312,12 @@ it later with qemu-img or other command.
>  Arguments:
>
>  actions array:
> -    - "type": the operation to perform.  The only supported
> -      value is "blockdev-snapshot-sync". (json-string)
> +    - "type": the operation to perform (json-string).  Possible
> +              values: "drive-backup", "blockdev-backup",
> +                      "blockdev-snapshot-sync",
> +                      "blockdev-snapshot-internal-sync",
> +                      "abort", "block-dirty-bitmap-add",
> +                      "block-dirty-bitmap-clear"
>      - "data": a dictionary.  The contents depend on the value
>        of "type".  When "type" is "blockdev-snapshot-sync":
>        - "device": device name to snapshot (json-string)
> --
> 2.4.3
>
>
Marc-André Lureau Nov. 23, 2015, 6:59 p.m. UTC | #9
Hi

On Mon, Nov 23, 2015 at 7:58 PM, Marc-André Lureau
<marcandre.lureau@gmail.com> wrote:
> Isn't the actions limited by the TransactionAction in qapi-schema.json?
>
>  { 'union': 'TransactionAction',
>    'data': {
>         'blockdev-snapshot-sync': 'BlockdevSnapshot',
>         'drive-backup': 'DriveBackup',
> +       'blockdev-backup': 'BlockdevBackup',
>         'abort': 'Abort',
>         'blockdev-snapshot-internal-sync': 'BlockdevSnapshotInternal'
>     } }
>
> It looks like block-dirty-bitmap-add/clear isn't in the list.


my bad, I was looking at older version,
John Snow Nov. 23, 2015, 7:02 p.m. UTC | #10
On 11/23/2015 01:58 PM, Marc-André Lureau wrote:
> Hi
> 
> On Fri, Oct 2, 2015 at 2:12 PM, Kashyap Chamarthy <kchamart@redhat.com> wrote:
>> 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
>>
>> Also update the possible values for the "type" action array.
> 
> Isn't the actions limited by the TransactionAction in qapi-schema.json?
> 
>  { 'union': 'TransactionAction',
>    'data': {
>         'blockdev-snapshot-sync': 'BlockdevSnapshot',
>         'drive-backup': 'DriveBackup',
> +       'blockdev-backup': 'BlockdevBackup',
>         'abort': 'Abort',
>         'blockdev-snapshot-internal-sync': 'BlockdevSnapshotInternal'
>     } }
> 
> It looks like block-dirty-bitmap-add/clear isn't in the list.
> 
> Thanks
> 

Maybe at the time. Your codebase is outdated.

##
# @TransactionAction
#
# A discriminated record of operations that can be performed with
# @transaction.
#
# Since 1.1
#
# drive-backup since 1.6
# abort since 1.6
# blockdev-snapshot-internal-sync since 1.7
# blockdev-backup since 2.3
# blockdev-snapshot since 2.5
# block-dirty-bitmap-add since 2.5
# block-dirty-bitmap-clear since 2.5
##
{ 'union': 'TransactionAction',
  'data': {
       'blockdev-snapshot': 'BlockdevSnapshot',
       'blockdev-snapshot-sync': 'BlockdevSnapshotSync',
       'drive-backup': 'DriveBackup',
       'blockdev-backup': 'BlockdevBackup',
       'abort': 'Abort',
       'blockdev-snapshot-internal-sync': 'BlockdevSnapshotInternal',
       'block-dirty-bitmap-add': 'BlockDirtyBitmapAdd',
       'block-dirty-bitmap-clear': 'BlockDirtyBitmap'
   } }

>>
>> Signed-off-by: Kashyap Chamarthy <kchamart@redhat.com>
>> Reviewed-by: Eric Blake <eblake@redhat.com>
>> ---
>> In v8 ("v8" because Fam included this as part of a series that is
>> in its "v7" edition):
>>  - Update the possible values for supported 'type' of operation
>> ---
>>  qmp-commands.hx | 29 ++++++++++++++++++++++-------
>>  1 file changed, 22 insertions(+), 7 deletions(-)
>>
>> diff --git a/qmp-commands.hx b/qmp-commands.hx
>> index d2ba800d5effaddcae4c437452ef1f67c0aaaaa9..2b52980cfc2f80904a3c7375a382b638e8a51161 100644
>> --- a/qmp-commands.hx
>> +++ b/qmp-commands.hx
>> @@ -1270,11 +1270,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
>> @@ -1301,8 +1312,12 @@ it later with qemu-img or other command.
>>  Arguments:
>>
>>  actions array:
>> -    - "type": the operation to perform.  The only supported
>> -      value is "blockdev-snapshot-sync". (json-string)
>> +    - "type": the operation to perform (json-string).  Possible
>> +              values: "drive-backup", "blockdev-backup",
>> +                      "blockdev-snapshot-sync",
>> +                      "blockdev-snapshot-internal-sync",
>> +                      "abort", "block-dirty-bitmap-add",
>> +                      "block-dirty-bitmap-clear"
>>      - "data": a dictionary.  The contents depend on the value
>>        of "type".  When "type" is "blockdev-snapshot-sync":
>>        - "device": device name to snapshot (json-string)
>> --
>> 2.4.3
>>
>>
> 
> 
>
diff mbox

Patch

diff --git a/qmp-commands.hx b/qmp-commands.hx
index d2ba800d5effaddcae4c437452ef1f67c0aaaaa9..2b52980cfc2f80904a3c7375a382b638e8a51161 100644
--- a/qmp-commands.hx
+++ b/qmp-commands.hx
@@ -1270,11 +1270,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
@@ -1301,8 +1312,12 @@  it later with qemu-img or other command.
 Arguments:
 
 actions array:
-    - "type": the operation to perform.  The only supported
-      value is "blockdev-snapshot-sync". (json-string)
+    - "type": the operation to perform (json-string).  Possible
+              values: "drive-backup", "blockdev-backup",
+                      "blockdev-snapshot-sync",
+                      "blockdev-snapshot-internal-sync",
+                      "abort", "block-dirty-bitmap-add",
+                      "block-dirty-bitmap-clear"
     - "data": a dictionary.  The contents depend on the value
       of "type".  When "type" is "blockdev-snapshot-sync":
       - "device": device name to snapshot (json-string)