Re: [PATCH 08/19] virsh: Add interface mac completion to iface-name command

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 11/2/20 9:26 AM, Lin Ma wrote:
Signed-off-by: Lin Ma <lma@xxxxxxxx>
---
  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




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux