summaryrefslogtreecommitdiff
path: root/qapi
diff options
context:
space:
mode:
authorJohn Snow <jsnow@redhat.com>2018-03-10 03:27:33 -0500
committerKevin Wolf <kwolf@redhat.com>2018-03-19 12:01:24 +0100
commit10a3fbb0f7c07dea4b964410d8be578bbc5902dc (patch)
tree61e773e6ada724e71c36f8684cadcfbe49fbf5fe /qapi
parent0ec4dfb8d60d0fe9872b3bdd00a1beeadd3de0de (diff)
downloadqemu-10a3fbb0f7c07dea4b964410d8be578bbc5902dc.tar.gz
blockjobs: add ABORTING state
Add a new state ABORTING. This makes transitions from normative states to error states explicit in the STM, and serves as a disambiguation for which states may complete normally when normal end-states (CONCLUDED) are added in future commits. Notably, Paused/Standby jobs do not transition directly to aborting, as they must wake up first and cooperate in their cancellation. Transitions: Created -> Aborting: can be cancelled (by the system) Running -> Aborting: can be cancelled or encounter an error Ready -> Aborting: can be cancelled or encounter an error Verbs: None. The job must finish cleaning itself up and report its final status. +---------+ |UNDEFINED| +--+------+ | +--v----+ +---------+CREATED| | +--+----+ | | | +--v----+ +------+ +---------+RUNNING<----->PAUSED| | +--+----+ +------+ | | | +--v--+ +-------+ +---------+READY<------->STANDBY| | +-----+ +-------+ | +--v-----+ |ABORTING| +--------+ Signed-off-by: John Snow <jsnow@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'qapi')
-rw-r--r--qapi/block-core.json7
1 files changed, 6 insertions, 1 deletions
diff --git a/qapi/block-core.json b/qapi/block-core.json
index ecd24ce5b7..568962d5ff 100644
--- a/qapi/block-core.json
+++ b/qapi/block-core.json
@@ -999,10 +999,15 @@
# @standby: The job is ready, but paused. This is nearly identical to @paused.
# The job may return to @ready or otherwise be canceled.
#
+# @aborting: The job is in the process of being aborted, and will finish with
+# an error.
+# This status may not be visible to the management process.
+#
# Since: 2.12
##
{ 'enum': 'BlockJobStatus',
- 'data': ['undefined', 'created', 'running', 'paused', 'ready', 'standby'] }
+ 'data': ['undefined', 'created', 'running', 'paused', 'ready', 'standby',
+ 'aborting' ] }
##
# @BlockJobInfo: