[PATCH 13/21] util: virqemu: Introduce virQEMUBuildNetdevCommandlineFromJSON
Eric Blake
eblake at redhat.com
Mon May 18 15:07:25 UTC 2020
On 5/15/20 10:27 AM, Peter Krempa wrote:
> In preparation for converting the generator of -netdev to generate JSON
> which will be used to do the command line rather than the other way
> around we need to introduce a convertor which properly configures
> virQEMUBuildCommandLineJSON for the quirks of -netdev.
>
> Signed-off-by: Peter Krempa <pkrempa at redhat.com>
> ---
> src/libvirt_private.syms | 1 +
> src/util/virqemu.c | 22 ++++++++++++++++++++++
> src/util/virqemu.h | 3 +++
> 3 files changed, 26 insertions(+)
>
> +/**
> + * virQEMUBuildNetdevCommandlineFromJSON:
> + * @props: JSON properties describing a netdev
> + *
> + * Converts @props into arguments for -netdev including all the quirks and
> + * differences between the monitor and command line syntax.
> + */
> +char *
> +virQEMUBuildNetdevCommandlineFromJSON(virJSONValuePtr props)
> +{
> + const char *type = virJSONValueObjectGetString(props, "type");
> + g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER;
> +
> + virBufferAsprintf(&buf, "%s,", type);
> +
> + if (virQEMUBuildCommandLineJSON(props, &buf, "type", true, NULL) < 0)
> + return NULL;
Do we actually have to special-case "type"?
> +
> + return virBufferContentAndReset(&buf);
> +}
> +
> +
> static int
> virQEMUBuildObjectCommandlineFromJSONInternal(virBufferPtr buf,
> const char *type,
> diff --git a/src/util/virqemu.h b/src/util/virqemu.h
> index 67a5711613..22f47851df 100644
> --- a/src/util/virqemu.h
> +++ b/src/util/virqemu.h
> @@ -49,6 +49,9 @@ int virQEMUBuildCommandLineJSON(virJSONValuePtr value,
> bool onOff,
> virQEMUBuildCommandLineJSONArrayFormatFunc array);
>
> +char *
> +virQEMUBuildNetdevCommandlineFromJSON(virJSONValuePtr props);
> +
> int virQEMUBuildObjectCommandlineFromJSON(virBufferPtr buf,
> virJSONValuePtr objprops);
>
Reviewed-by: Eric Blake <eblake at redhat.com>
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3226
Virtualization: qemu.org | libvirt.org
More information about the libvir-list
mailing list