When I set the rule in /etc/nova/policy.json.
"compute_extension:keypairs": "",
"compute_extension:keypairs:index": "",
"compute_extension:keypairs:show": "",
"compute_extension:keypairs:create": "rule:admin_api",
"compute_extension:keypairs:delete": "rule:admin_api",
"compute_extension:v3:keypairs:discoverable": "",
"compute_extension:v3:keypairs": "",
"compute_extension:v3:keypairs:index": "",
"compute_extension:v3:keypairs:show": "",
"compute_extension:v3:keypairs:create": "rule:admin_api",
"compute_extension:v3:keypairs:delete": "rule:admin_api",
---------------------------------------------------------------------------------------------------
then login as a member of a project, not admin role, I want to create a keypair in Access & Security Panel of Dashboard.
After input a name of keypair, click button of create keypair, a error page occur , error information is about the /usr/share/openstack-dashboard/openstack_dashboard/dashboards/project/access_and_security/keypairs/views.py , line 78.
I know a little about python but no Django, so I write some statements to prevent this error.
Hope you will correct this bug.
Could reproduce.
Traceback,
Environment:
Request Method: GET localhost/ project/ access_ and_security/ keypairs/ keypair1/ generate/
Request URL: http://
Django Version: 1.5.5 dashboard' , contrib. contenttypes' , contrib. auth', contrib. sessions' , contrib. messages' , contrib. staticfiles' , contrib. humanize' , dashboard. dashboards. project' , dashboard. dashboards. admin', dashboard. dashboards. settings' , dashboard. dashboards. router' , dashboard. dashboards. project' , dashboard. dashboards. admin', dashboard. dashboards. settings' ] middleware. common. CommonMiddlewar e', middleware. csrf.CsrfViewMi ddleware' , contrib. sessions. middleware. SessionMiddlewa re', contrib. auth.middleware .Authentication Middleware' , contrib. messages. middleware. MessageMiddlewa re', middleware. HorizonMiddlewa re', middleware. doc.XViewMiddle ware', middleware. locale. LocaleMiddlewar e', middleware. clickjacking. XFrameOptionsMi ddleware' )
Python Version: 2.7.3
Installed Applications:
['openstack_
'django.
'django.
'django.
'django.
'django.
'django.
'compressor',
'horizon',
'openstack_
'openstack_
'openstack_
'openstack_auth',
'openstack_
'openstack_
'openstack_
'openstack_
Installed Middleware:
('django.
'django.
'django.
'django.
'django.
'horizon.
'django.
'django.
'django.
Traceback: lib/python2. 7/dist- packages/ django/ core/handlers/ base.py" in get_response horizon/ openstack_ dashboard/ wsgi/.. /../horizon/ decorators. py" in dec horizon/ openstack_ dashboard/ wsgi/.. /../horizon/ decorators. py" in dec horizon/ openstack_ dashboard/ wsgi/.. /../horizon/ decorators. py" in dec lib/python2. 7/dist- packages/ django/ views/generic/ base.py" in view request, *args, **kwargs) lib/python2. 7/dist- packages/ django/ views/generic/ base.py" in dispatch horizon/ openstack_ dashboard/ wsgi/.. /../openstack_ dashboard/ dashboards/ project/ access_ and_security/ keypairs/ views.py" in get keypair. name)
File "/usr/local/
115. response = callback(request, *callback_args, **callback_kwargs)
File "/opt/stack/
38. return view_func(request, *args, **kwargs)
File "/opt/stack/
54. return view_func(request, *args, **kwargs)
File "/opt/stack/
38. return view_func(request, *args, **kwargs)
File "/usr/local/
68. return self.dispatch(
File "/usr/local/
86. return handler(request, *args, **kwargs)
File "/opt/stack/
78. 'attachment; filename=%s.pem' % slugify(
Exception Type: UnboundLocalError at /project/ access_ and_security/ keypairs/ keypair1/ generate/
Exception Value: local variable 'keypair' referenced before assignment