[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