[Openstack] Essex Dashboard: KeyError at /nova/instances_and_volumes/

Gabriel Hurley Gabriel.Hurley at nebula.com
Mon Nov 12 19:26:03 UTC 2012


That is actually the manifestation of a bug in Nova that was addressed very late in Folsom. The short version is that Nova inconsistently scoped the ownership of volumes vs. instances so it was possible for an admin user to view a mixed set of resources which could lead to the scenario you hit where things are in one list but not the other. I'm not sure if there's any plans to backport the fixes from Nova. A patch could probably be worked up for the stable/essex Horizon branch that would avoid the keyerror (see the state of that code in Folsom: https://github.com/openstack/horizon/blob/stable/folsom/horizon/dashboards/nova/volumes/views.py#L68 ), but it would be papering over what is inherently a broken situation in Nova.

My advice from back in the Essex days was that you should be wary of using an "admin" user in the "Project" dashboard since the underlying APIs didn't handle it correctly.

Alternatively, the Folsom Horizon release is actually backwards-compatible to an Essex stack, so you could try running Folsom Horizon which is less subject to many issues.

Hope one of these suggestions helps!


-          Gabriel

From: openstack-bounces+gabriel.hurley=nebula.com at lists.launchpad.net [mailto:openstack-bounces+gabriel.hurley=nebula.com at lists.launchpad.net] On Behalf Of Christian Parpart
Sent: Monday, November 12, 2012 3:37 AM
To: <openstack at lists.launchpad.net>
Subject: [Openstack] Essex Dashboard: KeyError at /nova/instances_and_volumes/

Hey all,

since quite some weeks I am getting an error page instead of the "Instances and Volumes" page in the
Essex Horizon Dashboard with the above title and the below detailed error output:

Environment:

Request Method: GET
Request URL: http://controller.rz.dawanda.com/nova/instances_and_volumes/

Django Version: 1.3.1
Python Version: 2.7.3
Installed Applications:
['openstack_dashboard',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'django_nose',
 'horizon',
 'horizon.dashboards.nova',
 'horizon.dashboards.syspanel',
 'horizon.dashboards.settings']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'openstack_dashboard.middleware.DashboardLogUnhandledExceptionsMiddleware',
 'horizon.middleware.HorizonMiddleware',
 'django.middleware.doc.XViewMiddleware',
 'django.middleware.locale.LocaleMiddleware')


Traceback:
File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response
  111.                         response = callback(request, *callback_args, **callback_kwargs)
File "/usr/lib/python2.7/dist-packages/horizon/decorators.py" in dec
  40.         return view_func(request, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/horizon/decorators.py" in dec
  55.             return view_func(request, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/horizon/decorators.py" in dec
  40.         return view_func(request, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/django/views/generic/base.py" in view
  47.             return self.dispatch(request, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/django/views/generic/base.py" in dispatch
  68.         return handler(request, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/horizon/tables/views.py" in get
  105.         handled = self.construct_tables()
File "/usr/lib/python2.7/dist-packages/horizon/tables/views.py" in construct_tables
  96.             handled = self.handle_table(table)
File "/usr/lib/python2.7/dist-packages/horizon/tables/views.py" in handle_table
  68.         data = self._get_data_dict()
File "/usr/lib/python2.7/dist-packages/horizon/tables/views.py" in _get_data_dict
  37.                 self._data[table._meta.name<http://meta.name>] = data_func()
File "/usr/lib/python2.7/dist-packages/horizon/dashboards/nova/instances_and_volumes/views.py" in get_volumes_data
  74.                     att['instance'] = instances[att['server_id']]

Exception Type: KeyError at /nova/instances_and_volumes/
Exception Value: u'8aa2989e-85ea-4975-b81b-04d06dbf8013'
----------------------------------------------------------------------------------------------------------------------------

now I wonder in how far that is a bug in the software and/or whether I have an invalid entry in my nova database that
I can fix by hand.

if so, does anyone know how to actually work around this? I do really need this (now not working) page :-)

Regards,
Christian Parpart.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack/attachments/20121112/2f1896e2/attachment.html>


More information about the Openstack mailing list