[libvirt PATCH v3 2/5] virsh: add interface information to guestinfo command

zhanglei zhanglei at smartx.com
Tue Sep 14 11:47:07 UTC 2021


The new parameter group returns information about network interfaces

Signed-off-by: zhanglei <zhanglei at smartx.com>
---
 docs/manpages/virsh.rst | 12 ++++++++++--
 src/libvirt-domain.c    |  2 +-
 tools/virsh-domain.c    |  6 ++++++
 3 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/docs/manpages/virsh.rst b/docs/manpages/virsh.rst
index 9561b3f59d..5310baab10 100644
--- a/docs/manpages/virsh.rst
+++ b/docs/manpages/virsh.rst
@@ -2700,7 +2700,7 @@ guestinfo
 ::
 
    guestinfo domain [--user] [--os] [--timezone] [--hostname] [--filesystem]
-      [--disk]
+      [--disk] [--interface]
 
 Print information about the guest from the point of view of the guest agent.
 Note that this command requires a guest agent to be configured and running in
@@ -2711,7 +2711,7 @@ are supported by the guest agent. You can limit the types of information that
 are returned by specifying one or more flags.  If a requested information
 type is not supported, the processes will provide an exit code of 1.
 Available information types flags are *--user*, *--os*,
-*--timezone*, *--hostname*, *--filesystem* and *--disk*.
+*--timezone*, *--hostname*, *--filesystem*, *--disk* and *--interface*.
 
 Note that depending on the hypervisor type and the version of the guest agent
 running within the domain, not all of the following information may be
@@ -2779,6 +2779,14 @@ returned:
 * ``disk.<num>.alias`` - the device alias of the disk (e.g. sda)
 * ``disk.<num>.guest_alias`` - optional alias assigned to the disk
 
+*--interface* returns:
+* ``if.count`` - the number of interfaces defined on this domain
+* ``if.<num>.name`` - name in the guest (e.g. ``eth0``) for interface <num>
+* ``if.<num>.hwaddr`` - hardware address in the guest for interface <num>
+* ``if.<num>.addr.count`` - the number of IP addresses of interface <num>
+* ``if.<num>.addr.<num1>.type`` - the IP address type of addr <num1> (e.g. ipv4)
+* ``if.<num>.addr.<num1>.addr`` - the IP address of addr <num1>
+* ``if.<num>.addr.<num1>.prefix`` - the prefix of IP address of addr <num1>
 
 guestvcpus
 ----------
diff --git a/src/libvirt-domain.c b/src/libvirt-domain.c
index fdc0780ae0..ce7cafde36 100644
--- a/src/libvirt-domain.c
+++ b/src/libvirt-domain.c
@@ -12580,7 +12580,7 @@ virDomainSetVcpu(virDomainPtr domain,
  *      "hostname" - the hostname of the domain
  *
  * VIR_DOMAIN_GUEST_INFO_INTERFACES:
- *  Returns information about the interfaces within the domain. the typed
+ *  Returns information about the interfaces within the domain. The typed
  *  parameter keys are in this format:
  *
  *      "if.count" - the number of interfaces defined on this domain
diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
index e5bd1fdd75..5ba5bd6b8c 100644
--- a/tools/virsh-domain.c
+++ b/tools/virsh-domain.c
@@ -13829,6 +13829,10 @@ static const vshCmdOptDef opts_guestinfo[] = {
      .type = VSH_OT_BOOL,
      .help = N_("report disk information"),
     },
+    {.name = "interface",
+     .type = VSH_OT_BOOL,
+     .help = N_("report interface information"),
+    },
     {.name = NULL}
 };
 
@@ -13854,6 +13858,8 @@ cmdGuestInfo(vshControl *ctl, const vshCmd *cmd)
         types |= VIR_DOMAIN_GUEST_INFO_FILESYSTEM;
     if (vshCommandOptBool(cmd, "disk"))
         types |= VIR_DOMAIN_GUEST_INFO_DISKS;
+    if (vshCommandOptBool(cmd, "interface"))
+        types |= VIR_DOMAIN_GUEST_INFO_INTERFACES;
 
     if (!(dom = virshCommandOptDomain(ctl, cmd, NULL)))
         return false;
-- 
2.31.1




More information about the libvir-list mailing list