Horizon 14.0.2 (rocky)
If a security group without any rules exists the listing of security groups fails with a KeyError.
Traceback (most recent call last):
File "/usr/share/openstack-dashboard/openstack_dashboard/api/rest/utils.py", line 127, in _wrapped
data = function(self, request, *args, **kw)
File "/usr/share/openstack-dashboard/openstack_dashboard/api/rest/network.py", line 44, in get
security_groups = api.neutron.security_group_list(request)
File "/usr/lib/python2.7/site-packages/horizon/utils/memoized.py", line 95, in wrapped
value = cache[key] = func(*args, **kwargs)
File "/usr/share/openstack-dashboard/openstack_dashboard/api/neutron.py", line 1641, in security_group_list
return SecurityGroupManager(request).list(**params)
File "/usr/share/openstack-dashboard/openstack_dashboard/api/neutron.py", line 372, in list
return self._list(**params)
File "/usr/share/openstack-dashboard/openstack_dashboard/api/neutron.py", line 359, in _list
return [SecurityGroup(sg) for sg in secgroups.get('security_groups')]
File "/usr/share/openstack-dashboard/openstack_dashboard/api/neutron.py", line 240, in __init__
for rule in sg['security_group_rules']]
KeyError: 'security_group_rules'
Horizon 14.0.2 (rocky)
If a security group without any rules exists the listing of security groups fails with a KeyError.
Traceback (most recent call last): openstack- dashboard/ openstack_ dashboard/ api/rest/ utils.py" , line 127, in _wrapped openstack- dashboard/ openstack_ dashboard/ api/rest/ network. py", line 44, in get security_ group_list( request) python2. 7/site- packages/ horizon/ utils/memoized. py", line 95, in wrapped openstack- dashboard/ openstack_ dashboard/ api/neutron. py", line 1641, in security_group_list nager(request) .list(* *params) openstack- dashboard/ openstack_ dashboard/ api/neutron. py", line 372, in list **params) openstack- dashboard/ openstack_ dashboard/ api/neutron. py", line 359, in _list get('security_ groups' )] openstack- dashboard/ openstack_ dashboard/ api/neutron. py", line 240, in __init__ group_rules' ]] group_rules'
File "/usr/share/
data = function(self, request, *args, **kw)
File "/usr/share/
security_groups = api.neutron.
File "/usr/lib/
value = cache[key] = func(*args, **kwargs)
File "/usr/share/
return SecurityGroupMa
File "/usr/share/
return self._list(
File "/usr/share/
return [SecurityGroup(sg) for sg in secgroups.
File "/usr/share/
for rule in sg['security_
KeyError: 'security_