[libvirt] [PATCH 08/19] virsh: Add interface mac completion to iface-name command
Michal Privoznik
mprivozn at redhat.com
Mon Nov 2 19:40:56 UTC 2020
On 11/2/20 9:26 AM, Lin Ma wrote:
> Signed-off-by: Lin Ma <lma at suse.com>
> ---
> tools/virsh-completer-interface.c | 13 +++++++++----
> tools/virsh-completer-interface.h | 4 ++++
> tools/virsh-interface.c | 8 +++-----
> 3 files changed, 16 insertions(+), 9 deletions(-)
>
> diff --git a/tools/virsh-completer-interface.c b/tools/virsh-completer-interface.c
> index 777bb22b0b..c24a2cea6c 100644
> --- a/tools/virsh-completer-interface.c
> +++ b/tools/virsh-completer-interface.c
> @@ -38,7 +38,8 @@ virshInterfaceCompleter(vshControl *ctl,
> VIR_AUTOSTRINGLIST tmp = NULL;
>
> virCheckFlags(VIR_CONNECT_LIST_INTERFACES_ACTIVE |
> - VIR_CONNECT_LIST_INTERFACES_INACTIVE,
> + VIR_CONNECT_LIST_INTERFACES_INACTIVE |
> + VIRSH_INTERFACE_COMPLETER_MAC,
> NULL);
>
> if (!priv->conn || virConnectIsAlive(priv->conn) <= 0)
> @@ -50,9 +51,13 @@ virshInterfaceCompleter(vshControl *ctl,
> tmp = g_new0(char *, nifaces + 1);
>
> for (i = 0; i < nifaces; i++) {
> - const char *name = virInterfaceGetName(ifaces[i]);
> -
> - tmp[i] = g_strdup(name);
> + if (!(flags & VIRSH_INTERFACE_COMPLETER_MAC)) {
> + const char *name = virInterfaceGetName(ifaces[i]);
> + tmp[i] = g_strdup(name);
> + } else {
> + const char *mac = virInterfaceGetMACString(ifaces[i]);
> + tmp[i] = g_strdup(mac);
> + }
> }
>
> ret = g_steal_pointer(&tmp);
> diff --git a/tools/virsh-completer-interface.h b/tools/virsh-completer-interface.h
> index 2b382222d7..71bc44c4b9 100644
> --- a/tools/virsh-completer-interface.h
> +++ b/tools/virsh-completer-interface.h
> @@ -22,6 +22,10 @@
>
> #include "vsh.h"
>
> +enum {
> + VIRSH_INTERFACE_COMPLETER_MAC = 1 << 0,
> +};
This is not correct. VIRSH_INTERFACE_COMPLETER_MAC has value of 1 after
this. But so does VIR_CONNECT_LIST_INTERFACES_INACTIVE and therefore
there is no way to differentiate the two. After this commit 'virsh
iface-start --interface' starts printing MAC addresses instead of names.
If you accept my advice in 04/19 you can avoid this new flag completely.
Michal
More information about the libvir-list
mailing list