[openstack-dev] [devstack] Problem logging into Horizon as non-admin?
Paul Michali
pcm at cisco.com
Wed Feb 20 21:15:43 UTC 2013
Hi,
I'm not sure how I got into this situation, but I have a VM based setup with Devstack, where I stopped and started it a few times. Currently, I see the following issue:
- Start Devstack
- Login as admin and create a project
- Create a user and add as a MEMBER to the project.
- Log out
- Try to log in as the user.
At this point, I get a traceback on the browser (shown at end of this e-mail). The odd thing is that it says the user does not have admin privileges (true), for the project page. I'm logging in at the main URL, and it is jumping to /project for some reason.
I have another VM and this works fine. A coworker is having the same issue, again, not sure how he hit this either. If I check as admin, the user is there. I've tried using a different browser (FF vs Chrome), rebooting the system and retrying, and I get the same results.
Any idea as to what could have happened?
Why is it redirecting to a /project page?
Any ideas on how to diagnose?
Thanks:
Forbidden at /project/
User does not have admin privileges (HTTP 403) (Request-ID: req-981a0ae9-e9dd-43d5-8946-ec9b27811a25)
Request Method: GET
Request URL: http://172.16.6.141/project/
Django Version: 1.4.3
Exception Type: Forbidden
Exception Value:
User does not have admin privileges (HTTP 403) (Request-ID: req-981a0ae9-e9dd-43d5-8946-ec9b27811a25)
Exception Location: /opt/stack/python-novaclient/novaclient/client.py in request, line 194
Python Executable: /usr/bin/python
Python Version: 2.7.3
Python Path:
['/opt/stack/horizon/openstack_dashboard/wsgi/../..',
'/opt/stack/python-keystoneclient',
'/opt/stack/python-novaclient',
'/opt/stack/python-openstackclient',
'/opt/stack/keystone',
'/opt/stack/glance',
'/opt/stack/python-glanceclient/setuptools_git-1.0b1-py2.7.egg',
'/opt/stack/python-glanceclient',
'/opt/stack/nova',
'/opt/stack/horizon',
'/opt/stack/quantum',
'/opt/stack/cinder',
'/opt/stack/python-cinderclient',
'/usr/local/lib/python2.7/dist-packages/ropemode-0.2-py2.7.egg',
'/usr/local/lib/python2.7/dist-packages/rope-0.9.4-py2.7.egg',
'/usr/local/lib/python2.7/dist-packages/ropemacs-0.7-py2.7.egg',
'/usr/local/lib/python2.7/dist-packages',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-linux2',
'/usr/lib/python2.7/lib-tk',
'/usr/lib/python2.7/lib-old',
'/usr/lib/python2.7/lib-dynload',
'/usr/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages/PIL',
'/usr/lib/python2.7/dist-packages/gst-0.10',
'/usr/lib/python2.7/dist-packages/gtk-2.0',
'/usr/lib/pymodules/python2.7',
'/usr/lib/python2.7/dist-packages/ubuntu-sso-client',
'/usr/lib/python2.7/dist-packages/ubuntuone-client',
'/usr/lib/python2.7/dist-packages/ubuntuone-control-panel',
'/usr/lib/python2.7/dist-packages/ubuntuone-couch',
'/usr/lib/python2.7/dist-packages/ubuntuone-installer',
'/usr/lib/python2.7/dist-packages/ubuntuone-storage-protocol',
'/opt/stack/horizon/openstack_dashboard']
Server time: Wed, 20 Feb 2013 21:03:25 +0000
Traceback Switch to copy-and-paste view
/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py in get_response
response = callback(request, *callback_args, **callback_kwargs) ...
▶ Local vars
/opt/stack/horizon/openstack_dashboard/wsgi/../../horizon/decorators.py in dec
return view_func(request, *args, **kwargs) ...
▶ Local vars
/opt/stack/horizon/openstack_dashboard/wsgi/../../horizon/decorators.py in dec
return view_func(request, *args, **kwargs) ...
▶ Local vars
/opt/stack/horizon/openstack_dashboard/wsgi/../../horizon/decorators.py in dec
return view_func(request, *args, **kwargs) ...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/django/views/generic/base.py in view
return self.dispatch(request, *args, **kwargs) ...
▶ Local vars
/usr/local/lib/python2.7/dist-packages/django/views/generic/base.py in dispatch
return handler(request, *args, **kwargs) ...
▶ Local vars
/opt/stack/horizon/openstack_dashboard/wsgi/../../horizon/tables/views.py in get
handled = self.construct_tables() ...
▶ Local vars
/opt/stack/horizon/openstack_dashboard/wsgi/../../horizon/tables/views.py in construct_tables
handled = self.handle_table(table) ...
▶ Local vars
/opt/stack/horizon/openstack_dashboard/wsgi/../../horizon/tables/views.py in handle_table
data = self._get_data_dict() ...
▶ Local vars
/opt/stack/horizon/openstack_dashboard/wsgi/../../horizon/tables/views.py in _get_data_dict
self._data = {self.table_class._meta.name: self.get_data()} ...
▶ Local vars
/opt/stack/horizon/openstack_dashboard/wsgi/../../openstack_dashboard/dashboards/project/overview/views.py in get_data
super(ProjectOverview, self).get_data() ...
▶ Local vars
/opt/stack/horizon/openstack_dashboard/wsgi/../../openstack_dashboard/usage/views.py in get_data
self.usage.summarize(*self.usage.get_date_range()) ...
▶ Local vars
/opt/stack/horizon/openstack_dashboard/wsgi/../../openstack_dashboard/usage/base.py in summarize
_('Unable to retrieve usage information.')) ...
▶ Local vars
/opt/stack/horizon/openstack_dashboard/wsgi/../../openstack_dashboard/usage/base.py in summarize
self.usage_list = self.get_usage_list(start, end) ...
▶ Local vars
/opt/stack/horizon/openstack_dashboard/wsgi/../../openstack_dashboard/usage/base.py in get_usage_list
usage = api.nova.usage_get(self.request, self.tenant_id, start, end) ...
▶ Local vars
/opt/stack/horizon/openstack_dashboard/wsgi/../../openstack_dashboard/api/nova.py in usage_get
return NovaUsage(novaclient(request).usage.get(tenant_id, start, end)) ...
▶ Local vars
/opt/stack/python-novaclient/novaclient/v1_1/usage.py in get
"tenant_usage") ...
▶ Local vars
/opt/stack/python-novaclient/novaclient/base.py in _get
_resp, body = self.api.client.get(url) ...
▶ Local vars
/opt/stack/python-novaclient/novaclient/client.py in get
return self._cs_request(url, 'GET', **kwargs) ...
▶ Local vars
/opt/stack/python-novaclient/novaclient/client.py in _cs_request
**kwargs) ...
▶ Local vars
/opt/stack/python-novaclient/novaclient/client.py in _time_request
resp, body = self.request(url, method, **kwargs) ...
▶ Local vars
/opt/stack/python-novaclient/novaclient/client.py in request
raise exceptions.from_response(resp, body, url, method) ...
▶ Local vars
PCM (Paul Michali)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 495 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20130220/b19d00d9/attachment-0001.pgp>
More information about the OpenStack-dev
mailing list