[virt-tools-list] [virt-manager PATCH 0/2] show ip in details page of domain interface

Cole Robinson crobinso at redhat.com
Thu Sep 6 18:07:22 UTC 2018


On 09/06/2018 03:07 AM, Lin Ma wrote:
> 
> 
> On 09/06/2018 03:13 AM, Cole Robinson wrote:
>> On 08/31/2018 06:37 AM, Lin Ma wrote:
>>> Uses lease, agent and arp to try to get ipv4 and ipv6 address of 
>>> given interface
>>>
>>> Lin Ma (2):
>>>    domain: Add function interface_addresses to return ipv4 and ipv6
>>>    details: Show ipv4 and ipv6 address in details page of interface
>>>
>>>   ui/details.ui          | 79 
>>> ++++++++++++++++++++++++++++++++++++++++++++++++++
>>>   virtManager/details.py | 59 +++++++++++++++++++++++++++++++++++++
>>>   virtManager/domain.py  | 27 +++++++++++++++++
>>>   3 files changed, 165 insertions(+)
>>>
>>
>> Thanks for these! I've pushed them now. I added a commit on top that 
>> aimed to improve a few things: tweak the UI, handle errors, cache 
>> results better, and open it up to work on more hypervisor drivers. 
>> Please give it a try and make sure it still meets your usecases:
>>
>> commit b4b7c7b5203dac9c5583b130bb8808d7a0b528fd (HEAD -> ip)
>> Author: Cole Robinson <crobinso at redhat.com>
>> Date:   Tue Sep 4 19:02:40 2018 -0400
>>
>>     details: IP address fixes/improvements
>>
>>     * Tweak the UI
>>     * Add accelerator for the refresh button
>>     * Make the IP labels selectable
>>     * Drop the IP prefix from the UI, it's not the important bit
>>     * Call DHCPLeases on the network instead to support this for more
>>       drivers, like LXC
>>     * Cache the IP results in the domain/network object wrappers
>>     * Catch and log errors
>>     * Poll for IP address when first visiting the interface page
>>
> The commit is great, It makes code more generic and make more sense!
> 
> It seems that the commit introduces 4 issues:
> 
> *1 If guest no any ip, it causes exception, say:
> summary=Error refreshing hardware page: 'NoneType' object is not iterable
> details=Traceback (most recent call last):
>    File "/home/lin/projects/virt-manager/virtManager/details.py", line 
> 1235, in hw_selected
>      self.refresh_network_page()
>    File "/home/lin/projects/virt-manager/virtManager/details.py", line 
> 2758, in refresh_network_page
>      ipv4, ipv6 = self.vm.get_interface_addresses(net)
>    File "/home/lin/projects/virt-manager/virtManager/domain.py", line 
> 1235, in get_interface_addresses
>      ipv4, ipv6 = extract_dom(ips)
>    File "/home/lin/projects/virt-manager/virtManager/domain.py", line 
> 1213, in extract_dom
>      for addr in addrs["addrs"]:
> TypeError: 'NoneType' object is not iterable
> 
> *2 If guest no ipv4 but ipv6, it causes exception, say:
> [Thu, 06 Sep 2018 13:03:49 virt-manager 9835] DEBUG (error:83) error 
> dialog message:
> summary=Error refreshing hardware page: unsupported operand type(s) for 
> +=: 'NoneType' and 'str'
> details=Traceback (most recent call last):
>    File "/home/lin/projects/virt-manager/virtManager/details.py", line 
> 1235, in hw_selected
>      self.refresh_network_page()
>    File "/home/lin/projects/virt-manager/virtManager/details.py", line 
> 2763, in refresh_network_page
>      label += ipv6
> TypeError: unsupported operand type(s) for +=: 'NoneType' and 'str'
> 
> *3 It looks that the ip information is showed in details network page of 
> vm even though the vm is inactive.
> 
> *4 We know that the ip information onto network card details page only 
> can be updated by refresh_network_page.
>     That means if the virtual nic's ip is changed and users click the 
> refresh button want to see the new ip,
>     the new ip information won't be updated on page until users refresh 
> this virtual nic's details page.
> 
> I'm goint to post patches to fix issue 1 and issue 2.
> moreover, I'd like to modify the code to show the IP address to 
> 'Unknown' if vm is inactive,
> this can reduce the api overhead while we use a slow remote connection 
> and can workaround issue 3.
> 

I replied to your patch series about these points.

> About issue4, I havn't got a proper idea yet to fix it, If you think it 
> is an issue, Could you please fix it?
> 

Good catch, I've fixed it upstream now:

commit 7baa296aeda372aba6fc7f41b11183221d581062 (HEAD -> master)
Author: Cole Robinson <crobinso at redhat.com>
Date:   Thu Sep 6 14:04:00 2018 -0400

     details: Update IP addr UI after refresh_ip call

Thanks,
Cole




More information about the virt-tools-list mailing list