Instances "Image Name" filter fails if image without a name exist
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Dashboard (Horizon) |
Fix Released
|
Low
|
Stanislav Dmitriev |
Bug Description
Horizon breaks if "Instances page" "Image Name" filter is invoked and there is an image without name exists.
How to reproduce:
1. Create an image without a name
image list --project 66ae0f36c4184e3
+------
| Name |
+------
| None |
| bionic-server |
+------
2. Go to Instances tab
3. Put random value to "Image Name" field and press Filter
Error trace:
[Thu Jan 05 19:07:29.668641 2023] [:error] [pid 31] Traceback (most recent call last):
[Thu Jan 05 19:07:29.668647 2023] [:error] [pid 31] File "/usr/lib/
[Thu Jan 05 19:07:29.668651 2023] [:error] [pid 31] response = get_response(
[Thu Jan 05 19:07:29.668656 2023] [:error] [pid 31] File "/usr/lib/
[Thu Jan 05 19:07:29.668664 2023] [:error] [pid 31] response = self.process_
[Thu Jan 05 19:07:29.668669 2023] [:error] [pid 31] File "/usr/lib/
[Thu Jan 05 19:07:29.668695 2023] [:error] [pid 31] response = wrapped_
[Thu Jan 05 19:07:29.668699 2023] [:error] [pid 31] File "/usr/lib/
[Thu Jan 05 19:07:29.668705 2023] [:error] [pid 31] return view_func(request, *args, **kwargs)
[Thu Jan 05 19:07:29.668708 2023] [:error] [pid 31] File "/usr/lib/
[Thu Jan 05 19:07:29.668722 2023] [:error] [pid 31] return view_func(request, *args, **kwargs)
[Thu Jan 05 19:07:29.668725 2023] [:error] [pid 31] File "/usr/lib/
[Thu Jan 05 19:07:29.668735 2023] [:error] [pid 31] return view_func(request, *args, **kwargs)
[Thu Jan 05 19:07:29.668749 2023] [:error] [pid 31] File "/usr/lib/
[Thu Jan 05 19:07:29.668758 2023] [:error] [pid 31] return view_func(request, *args, **kwargs)
[Thu Jan 05 19:07:29.668762 2023] [:error] [pid 31] File "/usr/lib/
[Thu Jan 05 19:07:29.668765 2023] [:error] [pid 31] return view_func(request, *args, **kwargs)
[Thu Jan 05 19:07:29.668775 2023] [:error] [pid 31] File "/usr/lib/
[Thu Jan 05 19:07:29.668778 2023] [:error] [pid 31] return self.dispatch(
[Thu Jan 05 19:07:29.668785 2023] [:error] [pid 31] File "/usr/lib/
[Thu Jan 05 19:07:29.668795 2023] [:error] [pid 31] return handler(request, *args, **kwargs)
[Thu Jan 05 19:07:29.668799 2023] [:error] [pid 31] File "/usr/lib/
[Thu Jan 05 19:07:29.668802 2023] [:error] [pid 31] handled = self.construct_
[Thu Jan 05 19:07:29.668806 2023] [:error] [pid 31] File "/usr/lib/
[Thu Jan 05 19:07:29.668817 2023] [:error] [pid 31] handled = self.handle_
[Thu Jan 05 19:07:29.668826 2023] [:error] [pid 31] File "/usr/lib/
[Thu Jan 05 19:07:29.668830 2023] [:error] [pid 31] data = self._get_
[Thu Jan 05 19:07:29.668836 2023] [:error] [pid 31] File "/usr/lib/
[Thu Jan 05 19:07:29.668844 2023] [:error] [pid 31] self._data = {self.table_
[Thu Jan 05 19:07:29.668848 2023] [:error] [pid 31] File "/usr/share/
[Thu Jan 05 19:07:29.668854 2023] [:error] [pid 31] if not process_
[Thu Jan 05 19:07:29.668863 2023] [:error] [pid 31] File "/usr/share/
[Thu Jan 05 19:07:29.668867 2023] [:error] [pid 31] if not _swap_filter(
[Thu Jan 05 19:07:29.668872 2023] [:error] [pid 31] File "/usr/share/
[Thu Jan 05 19:07:29.668886 2023] [:error] [pid 31] if resource.
[Thu Jan 05 19:07:29.668896 2023] [:error] [pid 31] AttributeError: 'NoneType' object has no attribute 'lower'
Changed in horizon: | |
importance: | Undecided → Low |
Obviously problem occurs in this condition: /github. com/openstack/ horizon/ blob/master/ openstack_ dashboard/ dashboards/ project/ instances/ views.py# L256
https:/
matched = [resource for resource in resources name.lower( ) == filter_ string. lower() ]
if resource.
where lower() method is invoked for None (image without a name)
Looks pretty much similar to https:/ /bugs.launchpad .net/horizon/ +bug/1581667
I guess the solution might be the same