[libvirt PATCH v2 3/4] qemu: report guest interface information in 'qemuDomainGetGuestInfo'

Peter Krempa pkrempa at redhat.com
Tue Sep 14 08:46:57 UTC 2021


On Tue, Sep 14, 2021 at 15:56:44 +0800, zhanglei wrote:

Please describe your changes in more detail.

> Signed-off-by: zhanglei <zhanglei at smartx.com>
> ---
>  src/qemu/qemu_agent.c  |  9 +++--
>  src/qemu/qemu_agent.h  |  3 +-
>  src/qemu/qemu_driver.c | 89 +++++++++++++++++++++++++++++++++++++++++-
>  tests/qemuagenttest.c  |  2 +-
>  4 files changed, 96 insertions(+), 7 deletions(-)

[...]

> diff --git a/src/qemu/qemu_agent.h b/src/qemu/qemu_agent.h
> index 81b45b8e5d..94eab9de9f 100644
> --- a/src/qemu/qemu_agent.h
> +++ b/src/qemu/qemu_agent.h
> @@ -151,7 +151,8 @@ int qemuAgentSetTime(qemuAgent *mon,
>                       bool sync);
>  
>  int qemuAgentGetInterfaces(qemuAgent *mon,
> -                           virDomainInterfacePtr **ifaces);
> +                           virDomainInterfacePtr **ifaces,
> +                           bool report_unsupported);

The addition of 'report_unsupported' and the refactor to existing code
to pass it can be split into a separate commit to reduce noise.

> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
> index dfc27572c4..ec5bf0a451 100644
> --- a/src/qemu/qemu_driver.c
> +++ b/src/qemu/qemu_driver.c

[...]

> +static void
> +virDomainInterfaceFormatParams(virDomainInterfacePtr *ifaces,
> +int nifaces,
> +virTypedParameterPtr *params,
> +int *nparams, int * maxparams)

The function header is totally malformated. There are also multiple
other instances of broken alignment below. I'll mark them with '***'

> +{
> +    size_t i, j;

One variable declaration per line please;

> +    const char *type = NULL;
> +
> +    if (virTypedParamsAddUInt(params, nparams, maxparams,
> +                             "if.count", nifaces) < 0)
> +      return;

Checking the return code and not reporting error feels a bit weird, but
I guess you've got the inspiration from the existing code which does the
same, so it's okay for now.

> +
> +    for (i = 0; i < nifaces; i++) {
> +        char param_name[VIR_TYPED_PARAM_FIELD_LENGTH];
> +
> +        g_snprintf(param_name, VIR_TYPED_PARAM_FIELD_LENGTH,
> +                   "if.%zu.name", i);
> +        if (virTypedParamsAddString(params, nparams, maxparams,
> +                                    param_name, ifaces[i]->name) < 0)
> +            return;
> +
> +        g_snprintf(param_name, VIR_TYPED_PARAM_FIELD_LENGTH,
> +                   "if.%zu.hwaddr", i);
> +        if (virTypedParamsAddString(params, nparams, maxparams,
> +                                    param_name, ifaces[i]->hwaddr) < 0)
> +            return;
> +
> +        g_snprintf(param_name, VIR_TYPED_PARAM_FIELD_LENGTH,
> +                   "if.%zu.addr.count", i);
> +        if (virTypedParamsAddUInt(params, nparams, maxparams,
> +                                    param_name, ifaces[i]->naddrs) < 0)

***

> +            return;
> +
> +        for (j = 0; j < ifaces[i]->naddrs; j++) {
> +            switch (ifaces[i]->addrs[j].type) {
> +                case VIR_IP_ADDR_TYPE_IPV4:

***

> +                    type = "ipv4";
> +                    break;
> +                case VIR_IP_ADDR_TYPE_IPV6:
> +                    type = "ipv6";
> +                    break;
> +           }

***

> +
> +           g_snprintf(param_name, VIR_TYPED_PARAM_FIELD_LENGTH,
> +                   "if.%zu.addr.%zu.type", i, j);

***

> +           if (virTypedParamsAddString(params, nparams, maxparams,
> +                                    param_name, type) < 0)

***

> +            return;

***

And many more below. I give up, this function has totally broken
formatting.

> +
> +           g_snprintf(param_name, VIR_TYPED_PARAM_FIELD_LENGTH,
> +                   "if.%zu.addr.%zu.addr", i, j);
> +           if (virTypedParamsAddString(params, nparams, maxparams,
> +                                    param_name, ifaces[i]->addrs[j].addr) < 0)
> +            return;
> +
> +           g_snprintf(param_name, VIR_TYPED_PARAM_FIELD_LENGTH,
> +                   "if.%zu.addr.%zu.prefix", i, j);
> +           if (virTypedParamsAddUInt(params, nparams, maxparams,
> +                                    param_name, ifaces[i]->addrs[j].prefix) < 0)
> +            return;
> +        }
> +    }
> +}




More information about the libvir-list mailing list