On 03/11/2014 11:34 AM, Chen Hanxiao wrote: > > On 03/11/2014 08:26 PM, Cole Robinson wrote: >> On 03/11/2014 03:12 AM, Chen Hanxiao wrote: >>> We should catch KeyError in interface_selected, >>> for that error could happen when >>> singal on_interface_list_changed comes. >>> >>> How to reproduce: >>> 1. create 3 bridge by Edit->Connection Details->Network Interface >>> 2. delete them >>> 3. We would get a KeyError >>> >>> Signed-off-by: Chen Hanxiao <chenhanxiao@xxxxxxxxxxxxxx> >>> --- >>> virtManager/host.py | 9 +++++++++ >>> 1 file changed, 9 insertions(+) >>> >>> diff --git a/virtManager/host.py b/virtManager/host.py >>> index c8d7ee0..97a4f74 100644 >>> --- a/virtManager/host.py >>> +++ b/virtManager/host.py >>> @@ -1098,6 +1098,15 @@ class vmmHost(vmmGObjectUI): >>> name = model[treeiter][0] >>> try: >>> + self.conn.get_interface(name) >>> + except KeyError: >>> + self.widget("interface-apply").set_sensitive(False) >>> + return >>> + except Exception, e: >>> + logging.exception(e) >>> + self.set_interface_error_page(_("Error selecting interface: >>> %s") % >>> + e) >>> + try: >>> self.populate_interface_state(name) >>> except Exception, e: >>> logging.exception(e) >>> >> If an interface is removed, vmmConnection should emit interface-removed, which >> calls host.py:repopulate_interfaces and should remove the missing interface >> from the list before the user has a chance to select anything. If that's not >> working we should figure out why that is. >> >> - Cole > When we delete interface by UI, interface list will be changed, > signal "on_interface_list_changed" will be raised and it will also > invoke interface_selected. > I think that caused this issue. Does this reproduce with the test driver? I couldn't reproduce. Does this issue affect storage pools or virtual networks? If so, can we find a general solution (since they all use the same pattern). If not, what is different about the interface bits here? Generally any change like this in host.py should take a look at the other object handling as well, since storage/network/interface handling is near identical. - Cole _______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list