** Changed in: nova
Status: Fix Committed => Fix Released
** Changed in: nova
Milestone: None => juno-1
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1264220
Title:
An internal error happens if passing invalid parameter to "create
flavor_extraspecs" API
Status in OpenStack Compute (Nova):
Fix Released
Bug description:
If passing invalid parameter to "create flavor_extraspecs" API, an internal
error happens and Traceback is written in log file.
Nova should return BadRequest response instead of internal error.
$ curl -i
'http://10.21.42.109:8774/v2/fd283c7ef47b4f46899403e9ebb1e2ed/flavors/6e05eb08-ef1a-4183-9eb9-5c175060247a/os-extra_specs'
[..] -d '{"foo": {"key01": "value01"}}'
HTTP/1.1 500 Internal Server Error
Content-Length: 128
Content-Type: application/json; charset=UTF-8
X-Compute-Request-Id: req-e8b5120c-e585-4095-a387-d3eed52b7415
Date: Thu, 26 Dec 2013 11:06:46 GMT
{"computeFault": {"message": "The server has either erred or is incapable of
performing the requested operation.", "code": 500}}
$
** The log of nova-api **
2013-12-26 20:06:46.026 ERROR nova.api.openstack
[req-e8b5120c-e585-4095-a387-d3eed52b7415 admin demo] Caught error: 'NoneType'
object has no attribute 'keys'
2013-12-26 20:06:46.026 TRACE nova.api.openstack Traceback (most recent call
last):
2013-12-26 20:06:46.026 TRACE nova.api.openstack File
"/opt/stack/nova/nova/api/openstack/__init__.py", line 121, in __call__
2013-12-26 20:06:46.026 TRACE nova.api.openstack return
req.get_response(self.application)
2013-12-26 20:06:46.026 TRACE nova.api.openstack File
"/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1296, in send
2013-12-26 20:06:46.026 TRACE nova.api.openstack application,
catch_exc_info=False)
2013-12-26 20:06:46.026 TRACE nova.api.openstack File
"/usr/local/lib/python2.7/dist-packages/webob/request.py", line 1260, in
call_application
2013-12-26 20:06:46.026 TRACE nova.api.openstack app_iter =
application(self.environ, start_response)
2013-12-26 20:06:46.026 TRACE nova.api.openstack File
"/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2013-12-26 20:06:46.026 TRACE nova.api.openstack return resp(environ,
start_response)
2013-12-26 20:06:46.026 TRACE nova.api.openstack File
"/opt/stack/python-keystoneclient/keystoneclient/middleware/auth_token.py",
line 581, in __call__
2013-12-26 20:06:46.026 TRACE nova.api.openstack return self.app(env,
start_response)
2013-12-26 20:06:46.026 TRACE nova.api.openstack File
"/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2013-12-26 20:06:46.026 TRACE nova.api.openstack return resp(environ,
start_response)
2013-12-26 20:06:46.026 TRACE nova.api.openstack File
"/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2013-12-26 20:06:46.026 TRACE nova.api.openstack return resp(environ,
start_response)
2013-12-26 20:06:46.026 TRACE nova.api.openstack File
"/usr/lib/python2.7/dist-packages/routes/middleware.py", line 131, in __call__
2013-12-26 20:06:46.026 TRACE nova.api.openstack response =
self.app(environ, start_response)
2013-12-26 20:06:46.026 TRACE nova.api.openstack File
"/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
2013-12-26 20:06:46.026 TRACE nova.api.openstack return resp(environ,
start_response)
2013-12-26 20:06:46.026 TRACE nova.api.openstack File
"/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
2013-12-26 20:06:46.026 TRACE nova.api.openstack resp =
self.call_func(req, *args, **self.kwargs)
2013-12-26 20:06:46.026 TRACE nova.api.openstack File
"/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
2013-12-26 20:06:46.026 TRACE nova.api.openstack return self.func(req,
*args, **kwargs)
2013-12-26 20:06:46.026 TRACE nova.api.openstack File
"/opt/stack/nova/nova/api/openstack/wsgi.py", line 930, in __call__
2013-12-26 20:06:46.026 TRACE nova.api.openstack content_type, body,
accept)
2013-12-26 20:06:46.026 TRACE nova.api.openstack File
"/opt/stack/nova/nova/api/openstack/wsgi.py", line 992, in _process_stack
2013-12-26 20:06:46.026 TRACE nova.api.openstack action_result =
self.dispatch(meth, request, action_args)
2013-12-26 20:06:46.026 TRACE nova.api.openstack File
"/opt/stack/nova/nova/api/openstack/wsgi.py", line 1073, in dispatch
2013-12-26 20:06:46.026 TRACE nova.api.openstack return
method(req=request, **action_args)
2013-12-26 20:06:46.026 TRACE nova.api.openstack File
"/opt/stack/nova/nova/api/openstack/compute/contrib/flavorextraspecs.py", line
76, in create
2013-12-26 20:06:46.026 TRACE nova.api.openstack specs)
2013-12-26 20:06:46.026 TRACE nova.api.openstack File
"/opt/stack/nova/nova/db/api.py", line 1487, in
flavor_extra_specs_update_or_create
2013-12-26 20:06:46.026 TRACE nova.api.openstack extra_specs)
2013-12-26 20:06:46.026 TRACE nova.api.openstack File
"/opt/stack/nova/nova/db/sqlalchemy/api.py", line 130, in wrapper
2013-12-26 20:06:46.026 TRACE nova.api.openstack return f(*args, **kwargs)
2013-12-26 20:06:46.026 TRACE nova.api.openstack File
"/opt/stack/nova/nova/db/sqlalchemy/api.py", line 4483, in
flavor_extra_specs_update_or_create
2013-12-26 20:06:46.026 TRACE nova.api.openstack
filter(models.InstanceTypeExtraSpecs.key.in_(specs.keys())).\
2013-12-26 20:06:46.026 TRACE nova.api.openstack AttributeError: 'NoneType'
object has no attribute 'keys'
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1264220/+subscriptions
--
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to : [email protected]
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help : https://help.launchpad.net/ListHelp