Bug 1320332

Summary: Error when changing default quotas in openstack dashboard
Product: Red Hat OpenStack Reporter: Jeremy <jmelvin>
Component: python-django-horizonAssignee: Itxaka <iserrano>
Status: CLOSED INSUFFICIENT_DATA QA Contact: Ido Ovadia <iovadia>
Severity: high Docs Contact:
Priority: high    
Version: 7.0 (Kilo)CC: aortega, apevec, athomas, jmelvin, lhh, mrunge, srevivo, tbarron
Target Milestone: ---Keywords: ZStream
Target Release: 7.0 (Kilo)Flags: iserrano: needinfo? (jmelvin)
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-06-23 10:05:27 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Jeremy 2016-03-22 20:57:02 UTC
Description of problem:
When changing the default quotas in openstack admin dashboard. 
An error occurs :  Danger: There was an error submitting the form. Please try again.

Analyzing the /var/log/horizon.log we can see this error:

2016-03-22 16:29:08,427 54869 ERROR django.request Internal Server Error: /dashboard/admin/defaults/update_defaults
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/django/core/handlers/base.py", line 132, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/usr/lib/python2.7/site-packages/horizon/decorators.py", line 36, in dec
    return view_func(request, *args, **kwargs)
  File "/usr/lib/python2.7/site-packages/horizon/decorators.py", line 84, in dec
    return view_func(request, *args, **kwargs)
  File "/usr/lib/python2.7/site-packages/horizon/decorators.py", line 52, in dec
    return view_func(request, *args, **kwargs)
  File "/usr/lib/python2.7/site-packages/horizon/decorators.py", line 36, in dec
    return view_func(request, *args, **kwargs)
  File "/usr/lib/python2.7/site-packages/django/views/generic/base.py", line 71, in view
    return self.dispatch(request, *args, **kwargs)
  File "/usr/lib/python2.7/site-packages/django/views/generic/base.py", line 89, in dispatch
    return handler(request, *args, **kwargs)
  File "/usr/lib/python2.7/site-packages/horizon/workflows/views.py", line 197, in post
    exceptions.handle(request)
  File "/usr/lib/python2.7/site-packages/horizon/exceptions.py", line 364, in handle
    six.reraise(exc_type, exc_value, exc_traceback)
  File "/usr/lib/python2.7/site-packages/horizon/workflows/views.py", line 192, in post
    success = workflow.finalize()
  File "/usr/lib/python2.7/site-packages/horizon/workflows/base.py", line 802, in finalize
    if not self.handle(self.request, self.context):
  File "/usr/lib/python2.7/site-packages/manila_ui/overrides.py", line 219, in handle
    _('Unable to update default quotas.'))
  File "/usr/lib/python2.7/site-packages/horizon/exceptions.py", line 364, in handle
    six.reraise(exc_type, exc_value, exc_traceback)
  File "/usr/lib/python2.7/site-packages/manila_ui/overrides.py", line 210, in handle
    super(ManilaUpdateDefaultQuotas, self).handle(request, data)
  File "/usr/share/openstack-dashboard/openstack_dashboard/wsgi/../../openstack_dashboard/dashboards/admin/defaults/workflows.py", line 91, in handle
    if key != 'fixed_ips'])
KeyError: 'key_pairs'


Version-Release number of selected component (if applicable):
python-django-1.8.7-1.el7.noarch

How reproducible:
100%

Steps to Reproduce:
1. change quotas in horizon dashboard
2. notice error
3.

Actual results:
fail

Expected results:
succeed

Additional info:

Customer is trying to change:
"Key Pairs" (10) and "Length of Injected File Path" (256) 

key pair default is 100 injected file path default is 255

Comment 1 Matthias Runge 2016-03-30 07:28:38 UTC
please provide more info. I'm quite sure, this works for me.

NB, python-django is not python-django-horizon.

Btw, are you using manila_ui?

File "/usr/lib/python2.7/site-packages/manila_ui/overrides.py",
Looking at the stack trace, that looks involved here.

Updating key pais and length of injected file path works flawlessly here.