[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 07/30] qmp-commands: move 'transaction' doc to schem
From: |
Marc-André Lureau |
Subject: |
[Qemu-devel] [PATCH 07/30] qmp-commands: move 'transaction' doc to schema |
Date: |
Thu, 22 Sep 2016 13:22:42 +0400 |
Signed-off-by: Marc-André Lureau <address@hidden>
---
docs/qmp-commands.txt | 86 ---------------------------------------------------
qapi-schema.json | 45 +++++++++++++++++++++++++++
2 files changed, 45 insertions(+), 86 deletions(-)
diff --git a/docs/qmp-commands.txt b/docs/qmp-commands.txt
index dadcc20..6d43415 100644
--- a/docs/qmp-commands.txt
+++ b/docs/qmp-commands.txt
@@ -685,92 +685,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
diff --git a/qapi-schema.json b/qapi-schema.json
index a8383bf..b2d00dc 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -2383,6 +2383,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.
#
@@ -2391,6 +2413,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
@@ -2398,6 +2421,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' ],
--
2.10.0
- [Qemu-devel] [PATCH 00/30] Move qapi documentation to schema (part 2/5), Marc-André Lureau, 2016/09/22
- [Qemu-devel] [PATCH 01/30] qmp-commands: move 'pmemsave' doc to schema, Marc-André Lureau, 2016/09/22
- [Qemu-devel] [PATCH 02/30] qmp-commands: move 'cont' doc to schema, Marc-André Lureau, 2016/09/22
- [Qemu-devel] [PATCH 03/30] qmp-commands: move 'system_wakeup' doc to schema, Marc-André Lureau, 2016/09/22
- [Qemu-devel] [PATCH 04/30] qmp-commands: move 'inject-nmi' doc to schema, Marc-André Lureau, 2016/09/22
- [Qemu-devel] [PATCH 05/30] qmp-commands: move 'set_link' doc to schema, Marc-André Lureau, 2016/09/22
- [Qemu-devel] [PATCH 06/30] qmp-commands: move 'balloon' doc to schema, Marc-André Lureau, 2016/09/22
- [Qemu-devel] [PATCH 07/30] qmp-commands: move 'transaction' doc to schema,
Marc-André Lureau <=
- [Qemu-devel] [PATCH 08/30] qmp-commands: move 'human-monitor-command' doc to schema, Marc-André Lureau, 2016/09/22
- [Qemu-devel] [PATCH 09/30] qmp-commands: move 'migrate_cancel' doc to schema, Marc-André Lureau, 2016/09/22
- [Qemu-devel] [PATCH 10/30] qmp-commands: move 'migrate_set_downtime' doc to schema, Marc-André Lureau, 2016/09/22
- [Qemu-devel] [PATCH 11/30] qmp-commands: move 'migrate_set_speed' doc to schema, Marc-André Lureau, 2016/09/22
- [Qemu-devel] [PATCH 12/30] qmp-commands: move 'query-migrate-cache-size' doc to schema, Marc-André Lureau, 2016/09/22
- [Qemu-devel] [PATCH 13/30] qmp-commands: move 'set_password' doc to schema, Marc-André Lureau, 2016/09/22
- [Qemu-devel] [PATCH 14/30] qmp-commands: move 'expire_password' doc to schema, Marc-André Lureau, 2016/09/22
- [Qemu-devel] [PATCH 15/30] qmp-commands: move 'change' doc to schema, Marc-André Lureau, 2016/09/22
- [Qemu-devel] [PATCH 16/30] qmp-commands: move 'migrate' doc to schema, Marc-André Lureau, 2016/09/22
- [Qemu-devel] [PATCH 17/30] qmp-commands: move 'migrate-incoming' doc to schema, Marc-André Lureau, 2016/09/22