[virt-tools-list] [virt-manager PATCH] create: fix a TypeError issue when detecting OS info
chenhanxiao at cn.fujitsu.com
chenhanxiao at cn.fujitsu.com
Wed Apr 30 02:53:10 UTC 2014
> -----Original Message-----
> From: Cole Robinson [mailto:crobinso at redhat.com]
> Sent: Tuesday, April 29, 2014 10:52 PM
> To: Chen, Hanxiao/陈 晗霄; virt-tools-list at redhat.com
> Subject: Re: [virt-tools-list] [virt-manager PATCH] create: fix a TypeError issue
> when detecting OS info
>
> On 04/26/2014 02:49 AM, Chen Hanxiao wrote:
> > How to reproduce:
> > 1) New VM -> Use ISO image
> > 2) Choose a WINDOWS IMG
> >
> > Then debug log shows:
> > Traceback (most recent call last):
> > File "/home/virt-manager/virtManager/create.py", line 1218, in
> change_os_version
> > if os_type_model[idx][0] == type_row[0]:
> > File "/usr/lib64/python2.7/site-packages/gi/overrides/Gtk.py", line 1064, in
> __getitem__
> > return self.model.get_value(self.iter, key)
> > TypeError: unknown type (null)
> >
> > Signed-off-by: Chen Hanxiao <chenhanxiao at cn.fujitsu.com>
>
> Hmm, I can't reproduce, but maybe I'm doing something differently. Are you
> selecting a windows ISO?
>
Yes , WinXP ISO, a little old though :)
And I did more tests:
Other Windows ISO(win98, win2000), we can’t get its OS and version,
but no TypeError thrown.
Win7 works fine.
Fedora 20, RHEL 7, Ubuntu 13 works fine too.
> What is the list selection in the UI when this triggers?
OS: Windows
Version: Unknown
>
> If this isn't a bug we can fix elsewhere, then we should at least move the
> TypeError check to _selected_os_row so other users benefit as well.
>
> - Cole
I did a test with code like:
def _selected_os_row(self):
- return uiutil.get_list_selection(
+ row = uiutil.get_list_selection(
self.widget("install-os-type"), None)
+ if row:
+ try:
+ row[0]
+ except TypeError:
+ return None
+ return row
+ else:
+ return None
We still got error message:
[Wed, 30 Apr 2014 10:41:37 virt-manager 876] DEBUG (cli:182) Uncaught exception:
Traceback (most recent call last):
File "/home/virt-manager/virtManager/create.py", line 1225, in change_os_version
if os_type_model[idx][0] == type_row[0]:
File "/usr/lib64/python2.7/site-packages/gi/overrides/Gtk.py", line 1064, in __getitem__
return self.model.get_value(self.iter, key)
TypeError: unknown type (null)
Traceback (most recent call last):
File "/home/virt-manager/virtManager/create.py", line 1225, in change_os_version
if os_type_model[idx][0] == type_row[0]:
File "/usr/lib64/python2.7/site-packages/gi/overrides/Gtk.py", line 1064, in __getitem__
return self.model.get_value(self.iter, key)
TypeError: unknown type (null)
With my patch, it works fine though.....
Currently, only change_os_version need check self._selected_os_row()[0].
Thanks,
- Chen
More information about the virt-tools-list
mailing list