aboutsummaryrefslogtreecommitdiff
path: root/qapi-schema.json
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2012-10-18 16:49:28 +0200
committerKevin Wolf <kwolf@redhat.com>2012-10-24 10:26:22 +0200
commitb952b5589a36114e06201c0d2e82c293dbad2b1f (patch)
treec1ea734e0c3539c345a25a19844fd6bc66e46c7f /qapi-schema.json
parent3bd293c3fdc8b4052b9fc357e0b28cba20e73099 (diff)
mirror: add support for on-source-error/on-target-error
Error management is important for mirroring; otherwise, an error on the target (even something as "innocent" as ENOSPC) requires to start again with a full copy. Similar to on_read_error/on_write_error, two separate knobs are provided for on_source_error (reads) and on_target_error (writes). The default is 'report' for both. The 'ignore' policy will leave the sector dirty, so that it will be retried later. Thus, it will not cause corruption. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'qapi-schema.json')
-rw-r--r--qapi-schema.json11
1 files changed, 10 insertions, 1 deletions
diff --git a/qapi-schema.json b/qapi-schema.json
index a066cd5ca2..6aa443e90e 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -1629,6 +1629,14 @@
# (all the disk, only the sectors allocated in the topmost image, or
# only new I/O).
#
+# @on-source-error: #optional the action to take on an error on the source,
+# default 'report'. 'stop' and 'enospc' can only be used
+# if the block device supports io-status (see BlockInfo).
+#
+# @on-target-error: #optional the action to take on an error on the target,
+# default 'report' (no limitations, since this applies to
+# a different block device than @device).
+#
# Returns: nothing on success
# If @device is not a valid block device, DeviceNotFound
#
@@ -1637,7 +1645,8 @@
{ 'command': 'drive-mirror',
'data': { 'device': 'str', 'target': 'str', '*format': 'str',
'sync': 'MirrorSyncMode', '*mode': 'NewImageMode',
- '*speed': 'int' } }
+ '*speed': 'int', '*on-source-error': 'BlockdevOnError',
+ '*on-target-error': 'BlockdevOnError' } }
##
# @migrate_cancel