Hi all!
The series aims to reach feature parity between job-* and block-job-*
APIs and finally deprecate block-job-* APIs.
01: new type-based unions for QAPI
02-07: rework block-job-change and add similar job-change command
08: support set-speed in new API (as an option to job-change)
09: support soft-cancelling ready mirror job in new API (as an
option to job-complete)
10-14: prepare query-jobs to substitute query-block-jobs
15: finally, deprecate old APIs
RFC: the series are untested. I plan to move tests to using new APIs
instead of deprecated ones in v2.
Vladimir Sementsov-Ogievskiy (15):
scripts/qapi: support type-based unions
qapi: rename BlockJobChangeOptions to JobChangeOptions
blockjob: block_job_change_locked(): check job type
qapi: block-job-change: make copy-mode parameter optional
qapi: JobChangeOptions: make type member optional and deprecated
blockjob: move change action implementation to job from block-job
qapi: add job-change
qapi: job-change: support speed parameter
qapi: job-complete: introduce no-block-replace option for mirror
qapi: query-jobs: add information specific for job type
job-qmp: job_query_single_locked: add assertion on job ret
qapi: rename BlockDeviceIoStatus to IoStatus
qapi: move IoStatus to common.json
qapi: query-job: add block-job specific information
qapi/block-core: derpecate block-job- APIs
block/backup.c | 14 ++
block/block-backend.c | 14 +-
block/commit.c | 16 ++-
block/mirror.c | 98 +++++++++-----
block/monitor/block-hmp-cmds.c | 4 +-
block/stream.c | 14 ++
blockdev.c | 4 +-
blockjob.c | 39 +++---
docs/about/deprecated.rst | 75 +++++++++++
include/block/blockjob.h | 26 ++--
include/block/blockjob_int.h | 7 -
include/qemu/job.h | 25 +++-
include/sysemu/block-backend-global-state.h | 2 +-
job-qmp.c | 55 +++++++-
job.c | 35 ++++-
qapi/block-core.json | 136 +++++++++++++++-----
qapi/common.json | 16 +++
qapi/job.json | 69 +++++++++-
scripts/qapi/introspect.py | 5 +-
scripts/qapi/schema.py | 50 ++++---
scripts/qapi/types.py | 3 +-
scripts/qapi/visit.py | 43 ++++++-
stubs/meson.build | 1 +
stubs/qapi-jobchangeoptions-mapper.c | 13 ++
tests/unit/test-bdrv-drain.c | 2 +-
tests/unit/test-block-iothread.c | 2 +-
tests/unit/test-blockjob.c | 2 +-
27 files changed, 616 insertions(+), 154 deletions(-)
create mode 100644 stubs/qapi-jobchangeoptions-mapper.c
--
2.34.1