PUT Request body:
{
"quota_set" :
{
"snapshots_dm-crypt": "test"
}
}
Actual Response: {"computeFault": {"message": "The server has either erred or is incapable of performing the requested operation.", "code": 500}}
Expected Response: 400, Bad request with an appropriate error message.
c-api stacktrace:
2013-08-22 00:41:11.778 ERROR cinder.api.middleware.fault [req-fcc46cd8-3153-47e0-9036-797f54699714 a86ef7e18288428899e66c937adb53b0 bfa255a07d394bee849f8922ee6b7c3d] Caught error: invalid literal for int() with base 10: 'test'
2013-08-22 00:41:11.778 TRACE cinder.api.middleware.fault Traceback (most recent call last):
2013-08-22 00:41:11.778 TRACE cinder.api.middleware.fault File "/opt/stack/cinder/cinder/api/middleware/fault.py", line 73, in __call__
2013-08-22 00:41:11.778 TRACE cinder.api.middleware.fault return req.get_response(self.application)
2013-08-22 00:41:11.778 TRACE cinder.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1296, in send
2013-08-22 00:41:11.778 TRACE cinder.api.middleware.fault application, catch_exc_info=False)
2013-08-22 00:41:11.778 TRACE cinder.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1260, in call_application
2013-08-22 00:41:11.778 TRACE cinder.api.middleware.fault app_iter = application(self.environ, start_response)
2013-08-22 00:41:11.778 TRACE cinder.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2013-08-22 00:41:11.778 TRACE cinder.api.middleware.fault return resp(environ, start_response)
2013-08-22 00:41:11.778 TRACE cinder.api.middleware.fault File "/opt/stack/python-keystoneclient/keystoneclient/middleware/auth_token.py", line 539, in __call__
2013-08-22 00:41:11.778 TRACE cinder.api.middleware.fault return self.app(env, start_response)
2013-08-22 00:41:11.778 TRACE cinder.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2013-08-22 00:41:11.778 TRACE cinder.api.middleware.fault return resp(environ, start_response)
2013-08-22 00:41:11.778 TRACE cinder.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2013-08-22 00:41:11.778 TRACE cinder.api.middleware.fault return resp(environ, start_response)
2013-08-22 00:41:11.778 TRACE cinder.api.middleware.fault File "/usr/lib/python2.7/dist-packages/routes/middleware.py", line 131, in __call__
2013-08-22 00:41:11.778 TRACE cinder.api.middleware.fault response = self.app(environ, start_response)
2013-08-22 00:41:11.778 TRACE cinder.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2013-08-22 00:41:11.778 TRACE cinder.api.middleware.fault return resp(environ, start_response)
2013-08-22 00:41:11.778 TRACE cinder.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
2013-08-22 00:41:11.778 TRACE cinder.api.middleware.fault resp = self.call_func(req, *args, **self.kwargs)
2013-08-22 00:41:11.778 TRACE cinder.api.middleware.fault File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
2013-08-22 00:41:11.778 TRACE cinder.api.middleware.fault return self.func(req, *args, **kwargs)
2013-08-22 00:41:11.778 TRACE cinder.api.middleware.fault File "/opt/stack/cinder/cinder/api/openstack/wsgi.py", line 820, in __call__
2013-08-22 00:41:11.778 TRACE cinder.api.middleware.fault content_type, body, accept)
2013-08-22 00:41:11.778 TRACE cinder.api.middleware.fault File "/opt/stack/cinder/cinder/api/openstack/wsgi.py", line 868, in _process_stack
2013-08-22 00:41:11.778 TRACE cinder.api.middleware.fault action_result = self.dispatch(meth, request, action_args)
2013-08-22 00:41:11.778 TRACE cinder.api.middleware.fault File "/opt/stack/cinder/cinder/api/openstack/wsgi.py", line 944, in dispatch
2013-08-22 00:41:11.778 TRACE cinder.api.middleware.fault return method(req=request, **action_args)
2013-08-22 00:41:11.778 TRACE cinder.api.middleware.fault File "/opt/stack/cinder/cinder/api/contrib/quotas.py", line 92, in update
2013-08-22 00:41:11.778 TRACE cinder.api.middleware.fault value = int(body['quota_set'][key])
2013-08-22 00:41:11.778 TRACE cinder.api.middleware.fault ValueError: invalid literal for int() with base 10: 'test'
2013-08-22 00:41:11.778 TRACE cinder.api.middleware.fault
2013-08-22 00:41:11.785 INFO cinder.api.middleware.fault [req-fcc46cd8-3153-47e0-9036-797f54699714 a86ef7e18288428899e66c937adb53b0 bfa255a07d394bee849f8922ee6b7c3d] http://10.2.3.102:8776/v2/bfa255a07d394bee849f8922ee6b7c3d/os-quota-sets/bfa255a07d394bee849f8922ee6b7c3d returned with HTTP 500
Fix proposed to branch: master /review. openstack. org/43836
Review: https:/