The new parameter group returns information about network interfaces
Signed-off-by: zhanglei <zhanglei(a)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