[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