qemu/qapi
John Snow e8af5686ff blockjobs: add waiting status
For jobs that are stuck waiting on others in a transaction, it would
be nice to know that they are no longer "running" in that sense, but
instead are waiting on other jobs in the transaction.

Jobs that are "waiting" in this sense cannot be meaningfully altered
any longer as they have left their running loop. The only meaningful
user verb for jobs in this state is "cancel," which will cancel the
whole transaction, too.

Transitions:
Running -> Waiting:   Normal transition.
Ready   -> Waiting:   Normal transition.
Waiting -> Aborting:  Transactional cancellation.
Waiting -> Concluded: Normal transition.

Removed Transitions:
Running -> Concluded: Jobs must go to WAITING first.
Ready   -> Concluded: Jobs must go to WAITING first.

Verbs:
Cancel: Can be applied to WAITING jobs.

             +---------+
             |UNDEFINED|
             +--+------+
                |
             +--v----+
   +---------+CREATED+-----------------+
   |         +--+----+                 |
   |            |                      |
   |         +--v----+     +------+    |
   +---------+RUNNING<----->PAUSED|    |
   |         +--+-+--+     +------+    |
   |            | |                    |
   |            | +------------------+ |
   |            |                    | |
   |         +--v--+       +-------+ | |
   +---------+READY<------->STANDBY| | |
   |         +--+--+       +-------+ | |
   |            |                    | |
   |         +--v----+               | |
   +---------+WAITING<---------------+ |
   |         +--+----+                 |
   |            |                      |
+--v-----+   +--v------+               |
|ABORTING+--->CONCLUDED|               |
+--------+   +--+------+               |
                |                      |
             +--v-+                    |
             |NULL<--------------------+
             +----+

Signed-off-by: John Snow <jsnow@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2018-03-19 12:01:24 +01:00
..
block-core.json blockjobs: add waiting status 2018-03-19 12:01:24 +01:00
block.json qapi: add nbd-server-remove 2018-01-26 09:37:20 -06:00
char.json qapi-schema: Collect char device stuff in qapi/char.json 2017-09-04 13:09:12 +02:00
common.json qapi: Create DEFINE_PROP_OFF_AUTO_PCIBAR 2018-02-06 11:08:26 -07:00
crypto.json qapi-schema: Improve section headings 2017-09-04 13:09:12 +02:00
introspect.json qapi-schema: Introspection doc is in the wrong section, fix 2017-09-04 13:09:12 +02:00
Makefile.objs qapi: rename *qmp-*-visitor* to *qobject-*-visitor* 2016-10-25 16:25:48 +02:00
migration.json qapi: add dirty-bitmaps migration capability 2018-03-13 17:05:45 -04:00
misc.json sev/i386: qmp: add query-sev-capabilities command 2018-03-13 17:36:05 +01:00
net.json net: Remove the deprecated way of dumping network packets 2018-03-05 10:30:15 +08:00
opts-visitor.c qapi: Fix QemuOpts visitor regression on unvisited input 2017-03-22 19:24:34 +01:00
qapi-clone-visitor.c qapi/qnull: Add own header 2017-11-17 18:21:30 +01:00
qapi-dealloc-visitor.c qdict qlist: Make most helper macros functions 2018-02-09 13:52:15 +01:00
qapi-schema.json qapi: Move qapi-schema.json to qapi/, rename generated files 2018-03-02 13:45:57 -06:00
qapi-util.c qapi: Change data type of the FOO_lookup generated for enum FOO 2017-09-04 13:09:13 +02:00
qapi-visit-core.c Include qapi/qmp/qobject.h exactly where needed 2018-02-09 13:52:15 +01:00
qmp-dispatch.c Include qapi/qmp/qdict.h exactly where needed 2018-02-09 13:52:15 +01:00
qmp-event.c Include qapi/qmp/qdict.h exactly where needed 2018-02-09 13:52:15 +01:00
qmp-registry.c qapi: Support multiple command registries per program 2017-03-05 09:12:25 +01:00
qobject-input-visitor.c Include qapi/qmp/qstring.h exactly where needed 2018-02-09 13:52:15 +01:00
qobject-output-visitor.c Include qapi/qmp/qdict.h exactly where needed 2018-02-09 13:52:15 +01:00
rocker.json qapi: The #optional tag is redundant, drop 2017-03-16 07:13:02 +01:00
run-state.json watchdog: Consolidate QAPI into single file 2018-03-02 13:14:10 -06:00
sockets.json sockets: allow SocketAddress 'fd' to reference numeric file descriptors 2018-03-13 18:06:06 +00:00
string-input-visitor.c qapi/qnull: Add own header 2017-11-17 18:21:30 +01:00
string-output-visitor.c qapi: Use QNull for a more regular visit_type_null() 2017-07-24 13:35:11 +02:00
tpm.json tpm: add CRB device 2018-01-29 14:22:50 -05:00
trace-events qapi: Use QNull for a more regular visit_type_null() 2017-07-24 13:35:11 +02:00
trace.json qapi-schema: Improve section headings 2017-09-04 13:09:12 +02:00
transaction.json qapi-schema: Collect transaction stuff in qapi/transaction.json 2017-09-04 13:09:12 +02:00
ui.json qapi: Add device ID and head parameters to screendump 2018-03-12 09:03:15 +01:00