qmp-commands: move 'transaction' doc to schema
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
This commit is contained in:
		
							parent
							
								
									7b338db7ef
								
							
						
					
					
						commit
						5c82b0f198
					
				| 
						 | 
				
			
			@ -699,92 +699,6 @@ Example:
 | 
			
		|||
                                                  "target": "tgt-id" } }
 | 
			
		||||
<- { "return": {} }
 | 
			
		||||
 | 
			
		||||
transaction
 | 
			
		||||
-----------
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
qcow2.
 | 
			
		||||
 | 
			
		||||
Each new snapshot defaults to being created by QEMU (wiping any
 | 
			
		||||
contents if the file already exists), but it is also possible to reuse
 | 
			
		||||
an externally-created file.  In the latter case, you should ensure that
 | 
			
		||||
the new image file has the same contents as the current one; QEMU cannot
 | 
			
		||||
perform any meaningful check.  Typically this is achieved by using the
 | 
			
		||||
current image file as the backing file for the new image.
 | 
			
		||||
 | 
			
		||||
On failure, the original disks pre-snapshot attempt will be used.
 | 
			
		||||
 | 
			
		||||
For internal snapshots, the dictionary contains the device and the snapshot's
 | 
			
		||||
name.  If an internal snapshot matching name already exists, the request will
 | 
			
		||||
be rejected.  Only some image formats support it, for example, qcow2, rbd,
 | 
			
		||||
and sheepdog.
 | 
			
		||||
 | 
			
		||||
On failure, qemu will try delete the newly created internal snapshot in the
 | 
			
		||||
transaction.  When an I/O error occurs during deletion, the user needs to fix
 | 
			
		||||
it later with qemu-img or other command.
 | 
			
		||||
 | 
			
		||||
Arguments:
 | 
			
		||||
 | 
			
		||||
actions array:
 | 
			
		||||
    - "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)
 | 
			
		||||
      - "node-name": graph node name to snapshot (json-string)
 | 
			
		||||
      - "snapshot-file": name of new image file (json-string)
 | 
			
		||||
      - "snapshot-node-name": graph node name of the new snapshot (json-string)
 | 
			
		||||
      - "format": format of new image (json-string, optional)
 | 
			
		||||
      - "mode": whether and how QEMU should create the snapshot file
 | 
			
		||||
        (NewImageMode, optional, default "absolute-paths")
 | 
			
		||||
      When "type" is "blockdev-snapshot-internal-sync":
 | 
			
		||||
      - "device": the device name or node-name of a root node to snapshot
 | 
			
		||||
                  (json-string)
 | 
			
		||||
      - "name": name of the new snapshot (json-string)
 | 
			
		||||
 | 
			
		||||
Example:
 | 
			
		||||
 | 
			
		||||
-> { "execute": "transaction",
 | 
			
		||||
     "arguments": { "actions": [
 | 
			
		||||
         { "type": "blockdev-snapshot-sync", "data" : { "device": "ide-hd0",
 | 
			
		||||
                                         "snapshot-file": "/some/place/my-image",
 | 
			
		||||
                                         "format": "qcow2" } },
 | 
			
		||||
         { "type": "blockdev-snapshot-sync", "data" : { "node-name": "myfile",
 | 
			
		||||
                                         "snapshot-file": "/some/place/my-image2",
 | 
			
		||||
                                         "snapshot-node-name": "node3432",
 | 
			
		||||
                                         "mode": "existing",
 | 
			
		||||
                                         "format": "qcow2" } },
 | 
			
		||||
         { "type": "blockdev-snapshot-sync", "data" : { "device": "ide-hd1",
 | 
			
		||||
                                         "snapshot-file": "/some/place/my-image2",
 | 
			
		||||
                                         "mode": "existing",
 | 
			
		||||
                                         "format": "qcow2" } },
 | 
			
		||||
         { "type": "blockdev-snapshot-internal-sync", "data" : {
 | 
			
		||||
                                         "device": "ide-hd2",
 | 
			
		||||
                                         "name": "snapshot0" } } ] } }
 | 
			
		||||
<- { "return": {} }
 | 
			
		||||
 | 
			
		||||
block-dirty-bitmap-add
 | 
			
		||||
----------------------
 | 
			
		||||
Since 2.4
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2471,6 +2471,28 @@
 | 
			
		|||
# operation fails, then the entire set of actions will be abandoned and the
 | 
			
		||||
# appropriate error returned.
 | 
			
		||||
#
 | 
			
		||||
# 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
 | 
			
		||||
# qcow2.
 | 
			
		||||
#
 | 
			
		||||
# Each new snapshot defaults to being created by QEMU (wiping any
 | 
			
		||||
# contents if the file already exists), but it is also possible to reuse
 | 
			
		||||
# an externally-created file.  In the latter case, you should ensure that
 | 
			
		||||
# the new image file has the same contents as the current one; QEMU cannot
 | 
			
		||||
# perform any meaningful check.  Typically this is achieved by using the
 | 
			
		||||
# current image file as the backing file for the new image.
 | 
			
		||||
#
 | 
			
		||||
# On failure, the original disks pre-snapshot attempt will be used.
 | 
			
		||||
#
 | 
			
		||||
# For internal snapshots, the dictionary contains the device and the snapshot's
 | 
			
		||||
# name.  If an internal snapshot matching name already exists, the request will
 | 
			
		||||
# be rejected.  Only some image formats support it, for example, qcow2, rbd,
 | 
			
		||||
# and sheepdog.
 | 
			
		||||
#
 | 
			
		||||
# On failure, qemu will try delete the newly created internal snapshot in the
 | 
			
		||||
# transaction.  When an I/O error occurs during deletion, the user needs to fix
 | 
			
		||||
# it later with qemu-img or other command.
 | 
			
		||||
#
 | 
			
		||||
# @actions: List of @TransactionAction;
 | 
			
		||||
#           information needed for the respective operations.
 | 
			
		||||
#
 | 
			
		||||
| 
						 | 
				
			
			@ -2479,6 +2501,7 @@
 | 
			
		|||
#              for additional detail.
 | 
			
		||||
#
 | 
			
		||||
# Returns: nothing on success
 | 
			
		||||
#
 | 
			
		||||
#          Errors depend on the operations of the transaction
 | 
			
		||||
#
 | 
			
		||||
# Note: The transaction aborts on the first failure.  Therefore, there will be
 | 
			
		||||
| 
						 | 
				
			
			@ -2486,6 +2509,28 @@
 | 
			
		|||
# subsequent actions will not have been attempted.
 | 
			
		||||
#
 | 
			
		||||
# Since: 1.1
 | 
			
		||||
#
 | 
			
		||||
# Example:
 | 
			
		||||
#
 | 
			
		||||
# -> { "execute": "transaction",
 | 
			
		||||
#      "arguments": { "actions": [
 | 
			
		||||
#          { "type": "blockdev-snapshot-sync", "data" : { "device": "ide-hd0",
 | 
			
		||||
#                                      "snapshot-file": "/some/place/my-image",
 | 
			
		||||
#                                      "format": "qcow2" } },
 | 
			
		||||
#          { "type": "blockdev-snapshot-sync", "data" : { "node-name": "myfile",
 | 
			
		||||
#                                      "snapshot-file": "/some/place/my-image2",
 | 
			
		||||
#                                      "snapshot-node-name": "node3432",
 | 
			
		||||
#                                      "mode": "existing",
 | 
			
		||||
#                                      "format": "qcow2" } },
 | 
			
		||||
#          { "type": "blockdev-snapshot-sync", "data" : { "device": "ide-hd1",
 | 
			
		||||
#                                      "snapshot-file": "/some/place/my-image2",
 | 
			
		||||
#                                      "mode": "existing",
 | 
			
		||||
#                                      "format": "qcow2" } },
 | 
			
		||||
#          { "type": "blockdev-snapshot-internal-sync", "data" : {
 | 
			
		||||
#                                      "device": "ide-hd2",
 | 
			
		||||
#                                      "name": "snapshot0" } } ] } }
 | 
			
		||||
# <- { "return": {} }
 | 
			
		||||
#
 | 
			
		||||
##
 | 
			
		||||
{ 'command': 'transaction',
 | 
			
		||||
  'data': { 'actions': [ 'TransactionAction' ],
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue