From 5cf0a3752f823b8d3e0d9e1aa790ae082817ffda Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Thu, 26 Sep 2019 16:03:46 +0200 Subject: [PATCH] qemu: monitor: Add transaction generators for snapshot APIs Unify with other code that generates parameters for the 'transaction' command. Signed-off-by: Peter Krempa Reviewed-by: Eric Blake --- src/qemu/qemu_monitor.c | 21 +++++++++++++++++++++ src/qemu/qemu_monitor.h | 11 +++++++++++ src/qemu/qemu_monitor_json.c | 35 +++++++++++++++++++++++++++++++++++ src/qemu/qemu_monitor_json.h | 11 +++++++++++ 4 files changed, 78 insertions(+) diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index 2c19e60c94..2d46f5cfa7 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -4539,3 +4539,24 @@ qemuMonitorTransactionBitmapMerge(virJSONValuePtr actions, { return qemuMonitorJSONTransactionBitmapMerge(actions, node, target, sources); } + + +int +qemuMonitorTransactionSnapshotLegacy(virJSONValuePtr actions, + const char *device, + const char *path, + const char *format, + bool existing) +{ + return qemuMonitorJSONTransactionSnapshotLegacy(actions, device, path, + format, existing); +} + + +int +qemuMonitorTransactionSnapshotBlockdev(virJSONValuePtr actions, + const char *node, + const char *overlay) +{ + return qemuMonitorJSONTransactionSnapshotBlockdev(actions, node, overlay); +} diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h index 44ce139a9b..b42bdfbea8 100644 --- a/src/qemu/qemu_monitor.h +++ b/src/qemu/qemu_monitor.h @@ -1361,3 +1361,14 @@ qemuMonitorTransactionBitmapMerge(virJSONValuePtr actions, const char *node, const char *target, virJSONValuePtr *sources); + +int +qemuMonitorTransactionSnapshotLegacy(virJSONValuePtr actions, + const char *device, + const char *path, + const char *format, + bool existing); +int +qemuMonitorTransactionSnapshotBlockdev(virJSONValuePtr actions, + const char *node, + const char *overlay); diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index bfb6245082..450b5828c5 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -9100,6 +9100,41 @@ qemuMonitorJSONTransactionBitmapMerge(virJSONValuePtr actions, } +int +qemuMonitorJSONTransactionSnapshotLegacy(virJSONValuePtr actions, + const char *device, + const char *path, + const char *format, + bool existing) +{ + const char *mode = NULL; + + if (existing) + mode = "existing"; + + return qemuMonitorJSONTransactionAdd(actions, + "blockdev-snapshot-sync", + "s:device", device, + "s:snapshot-file", path, + "s:format", format, + "S:mode", mode, + NULL); +} + + +int +qemuMonitorJSONTransactionSnapshotBlockdev(virJSONValuePtr actions, + const char *node, + const char *overlay) +{ + return qemuMonitorJSONTransactionAdd(actions, + "blockdev-snapshot", + "s:node", node, + "s:overlay", overlay, + NULL); +} + + static qemuMonitorJobInfoPtr qemuMonitorJSONGetJobInfoOne(virJSONValuePtr data) { diff --git a/src/qemu/qemu_monitor_json.h b/src/qemu/qemu_monitor_json.h index 3915fb45b5..85f07676fa 100644 --- a/src/qemu/qemu_monitor_json.h +++ b/src/qemu/qemu_monitor_json.h @@ -656,3 +656,14 @@ qemuMonitorJSONTransactionBitmapMerge(virJSONValuePtr actions, const char *node, const char *target, virJSONValuePtr *sources); + +int +qemuMonitorJSONTransactionSnapshotLegacy(virJSONValuePtr actions, + const char *device, + const char *path, + const char *format, + bool existing); +int +qemuMonitorJSONTransactionSnapshotBlockdev(virJSONValuePtr actions, + const char *node, + const char *overlay);