On 08/06/2018 08:10 AM, Lin Ma wrote:
Hi all,
I want to write patches to show ip addresses in virt-manager, I post
the idea here to get some suggestions and ideas. The below are my
thoughts.
I'd like to define a function in class vmmDomain in
virtManager/domain.py. The function name is 'interface_addresses', It
has one parameter which name is 'source', The range of the
parameter's value is:
libvirt.VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_LEASE or
libvirt.VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_AGENT or
libvirt.VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_ARP
In the function, it calls _backend.interfaceAddresses to get domain
interfaces's ip addresses.
Makes sense so far.
Though I wish libvirt had a smarter 'hey just give me the iface address'
flag that tried best effort to cycle through the methods, skipping the
ones it knows aren't relevant
I'd like to add a button in domain interface page of details page.
The click handler calls function interface_addresses to get domain
interfaces's whole ip information dictionary, then parses the result,
only outputs the ipv4 address which matching the mac.
Is it necessary for showing ipv6 address as well?
If it's there, then yeah I think we should show it, as long as its not a
link local address (fe80:...)
About the way to obtaining ip information: * If the type of the
domain's interface is 'network', The preferred function
interface_addresses's parameter is source=lease, If it doesn't return
information by some reasons, say static ip settings in domain, Then
we will fallback to call interface_addresses with source=agent, if
the result is still negative, then fallback to source=arp.
* If the type of domain's interface is not 'network', - If the domain
doesn't have org.qemu.guest_agent.0 channel, we will try source=arp
only, And add a GtkImage with tooltip text to suggest users to add a
org.qemu.guest_agent.0 channel.
I wouldn't bother with the image+tooltip. Most VMs if created correctly
should have the guest agent connected, trying to describe how to set it
up is non-trivial especially if its a windows VM or the agent isn't
installed in the VM. If it's an actual pain point in practice we can
revisit this but let's wait for real user complaints
- if it has org.qemu.guest_agent.0
channel but the channel's state isn't connected, we will try
source=arp only, And add a GtkImage with tooltip text to remind
users to install qemu guest agent package inside domain. _ if it has
org.qemu.guest_agent.0 channel and the channel's state is connected
(see commit 4484f47), We will try source=agent only.
Probably I missed some thing, Any suggestions will be much
appreciated.
Sounds pretty good to me. The issue I've always had with thinking about
exposing the IP address is how to do it in a performant way, since we
can't poll it for it all the time. Requiring the user to manually press
a 'refresh' style button is a good way to side step the problem for now,
and we can make it smarter later if desired.
There was also a bit of discussion and some patches in the past, though
they have a different focus. At least it's something to look at:
https://www.redhat.com/archives/virt-tools-list/2018-March/msg00008.html
Thanks,
Cole
_______________________________________________
virt-tools-list mailing list
virt-tools-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/virt-tools-list