Nova calls into Cinder, errors always returned as HTTP 500 errors?

asked 2014-02-10 11:01:55 -0500

caseym gravatar image

It appears that when Nova calls into Cinder, errors are always returned as HTTP 500 errors. Wondering if this is actually the case, and if so, could this be made more explicit, such that we could get more details on the error case. For example, the cinder API initialize_connection is being called from nova and an exception is raised because the disk is no longer accessible for some reason. That is turned into an RPC RemoteError at the cinder RPC layer.  That RemoteError is in turn converted to the default HTTP 500 response by the code.

Have I missed an alternative route that would allow more explicit error messages to be surfaced to Nova?

edit retag flag offensive close merge delete


You can try this from the command line: 'nova --debug volume-list --all-tenants'. This will turn on debugging just for the output of that command. If you are using Cinder for volumes, Nova will have to make a call to the Cinder API.

dtaylor gravatar imagedtaylor ( 2014-02-10 20:37:42 -0500 )edit

Also, are you able to use the python-cinderclient without any HTTP errors? I would double check both Nova and Cinder config files for the right credentials, also make sure your endpoints are set up correctly, and the ports for them are open on your firewall.

dtaylor gravatar imagedtaylor ( 2014-02-10 20:39:23 -0500 )edit

This would be an error case. We know there is a problem and are expecting a failure. We would like the failed call to the Cinder API to return some more meaningful information than a generic HTTP 500 error back to Nova. From what I can tell, we still have that information at the Cinder RPC layer, but the wsgi code is removing it and generating the 500 error to return to Nova.

caseym gravatar imagecaseym ( 2014-02-11 07:35:47 -0500 )edit