[libvirt] [PATCH 5/8] qemu: monitor: Add API to help creating 'transaction' arguments
Ján Tomko
jtomko at redhat.com
Thu Jul 12 14:40:20 UTC 2018
On Tue, Jul 03, 2018 at 02:33:03PM +0200, Peter Krempa wrote:
>Add a new helper that will be solely used to create arguments for the
>transaction command. Later on this will make it possible to remove the
>overloading which was caused by the fact that snapshots were created
>without transaction and also will help in blockdevizing of snapshots.
Have you considered 'blockdevification' or 'make blockdevable'?
>
>Signed-off-by: Peter Krempa <pkrempa at redhat.com>
>---
> src/qemu/qemu_monitor_json.c | 46 ++++++++++++++++++++++++++++++++++++++++++++
> src/qemu/qemu_monitor_json.h | 4 ++++
> 2 files changed, 50 insertions(+)
>
>diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
>index 3e90279b71..54fefcb612 100644
>--- a/src/qemu/qemu_monitor_json.c
>+++ b/src/qemu/qemu_monitor_json.c
>@@ -464,6 +464,52 @@ qemuMonitorJSONHasError(virJSONValuePtr reply,
> }
>
>
>+/**
>+ * qemuMonitorJSONTransactionAdd:
>+ * @actions: array of actions for the 'transaction' command
>+ * @cmdname: command to add to @actions
>+ * @...: arguments for @cmdname (see virJSONValueObjectAddVArgs for formatting)
>+ *
>+ * Add a new command with arguments to the existing ones. The resulting array
>+ * is used as argument for the 'transaction' command.
"is intended to be used" or "can be used"?
>+ *
>+ * Returns 0 on success and -1 on error.
>+ */
>+int
>+qemuMonitorJSONTransactionAdd(virJSONValuePtr actions,
>+ const char *cmdname,
>+ ...)
>+{
>+ virJSONValuePtr entry = NULL;
>+ virJSONValuePtr data = NULL;
>+ va_list args;
>+ int ret = -1;
>+
>+ va_start(args, cmdname);
>+
>+ if (virJSONValueObjectCreateVArgs(&data, args) < 0)
>+ goto cleanup;
>+
>+ if (virJSONValueObjectCreate(&entry,
>+ "s:type", cmdname,
>+ "A:data", &data, NULL) < 0)
>+ goto cleanup;
>+
>+ if (virJSONValueArrayAppend(actions, entry) < 0)
>+ goto cleanup;
>+
>+ entry = NULL;
>+ ret = 0;
>+
>+ cleanup:
>+ virJSONValueFree(entry);
>+ virJSONValueFree(data);
>+ va_end(args);
>+
I'm not a fan of this empty line.
>+ return ret;
>+}
>+
>+
Reviewed-by: Ján Tomko <jtomko at redhat.com>
Jano
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20180712/83bd2fdb/attachment-0001.sig>
More information about the libvir-list
mailing list