This patch series convert these commands into qapi and introduce QMP commands vm-snapshot-save, vm-snapshot-load, vm-snapshot-delete and query-vm-snapshots. It also rewrite error report for functions used by these commands.
Last patch introduce new functionality of savevm and vm-snapshot-save that you cannot override existing snapshot without using 'force' parameter and for QMP you have to always provide name parameter. We should also merge functionality of migrations and vm-snapshots and make some clean-ups of this code. I could do it as another patch. With this rewrite we could make vm-snapshots asynchronous. Pavel Hrdina (17): error: introduce handle_error block: add error parameter to bdrv_snapshot_create() and related functions block: add error parameter to bdrv_snapshot_goto() and related functions block: add error parameter to bdrv_snapshot_delete() and related functions block: add error parameter to bdrv_snapshot_list() and related functions block: add error parameter to bdrv_snapshot_find() block: add error parameter to del_existing_snapshots() savevm: add error parameter to qemu_savevm_state_begin() savevm: add error parameter to qemu_savevm_state_iterate() savevm: add error parameter to qemu_savevm_state_complete() savevm: add error parameter to qemu_savevm_state() savevm: add error parameter to qemu_loadvm_state() qapi: Convert savevm qapi: Convert loadvm qapi: Convert delvm qapi: Convert info snapshots vm-snapshot-save: add force parameter block.c | 106 ++++++++++++------ block.h | 13 ++- block/qcow2-snapshot.c | 41 ++++++- block/qcow2.h | 16 ++- block/rbd.c | 33 ++++-- block/sheepdog.c | 45 +++++--- block_int.h | 13 ++- error.c | 8 ++ error.h | 6 + hmp-commands.hx | 24 ++-- hmp.c | 84 ++++++++++++++ hmp.h | 4 + migration.c | 14 +-- monitor.c | 14 +-- qapi-schema.json | 64 +++++++++++ qemu-img.c | 28 ++--- qmp-commands.hx | 115 +++++++++++++++++++ savevm.c | 297 +++++++++++++++++++++++++------------------------ sysemu.h | 17 ++- vl.c | 6 +- 20 files changed, 663 insertions(+), 285 deletions(-) -- 1.8.0.2