Nova's fault wrap hiding real error status code from Neutron (and maybe others)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
As a user I expect something that would produce a 404 to return a 404. Such as:
$ nova net-delete some_garbage
REQ: curl -i 'http://
RESP: [500] CaseInsensitive
RESP BODY: {"computeFault": {"message": "The server has either erred or is incapable of performing the requested operation.", "code": 500}}
DEBUG (shell:802) The server has either erred or is incapable of performing the requested operation. (HTTP 500) (Request-ID: req-9f02f305-
Traceback (most recent call last):
File "/opt/stack/
OpenStackCo
File "/opt/stack/
args.
File "/opt/stack/
cs.
File "/opt/stack/
self.
File "/opt/stack/
_resp, _body = self.api.
File "/opt/stack/
return self._cs_
File "/opt/stack/
**kwargs)
File "/opt/stack/
resp, body = self.request(url, method, **kwargs)
File "/opt/stack/
raise exceptions.
InternalServerE
ERROR (InternalServer
When it is not implemented that makes sense. On my cloud installation I also receive this from neutron:
2014-07-14 16:39:08.200 29740 INFO neutron.wsgi [-] 10.23.245.
404 176 0.010104
I believe nova.api.
affects: | cinder → nova |
tags: | added: api |
tags: | added: network |
tags: | added: neutron |
Changed in nova: | |
milestone: | none → juno-rc1 |
status: | Fix Committed → Fix Released |
Changed in nova: | |
milestone: | juno-rc1 → 2014.2 |
I tried this on my devstack environment, with neutron as my networking service, and got:
$ nova net-delete <uuid> 9d1e-41cb- b55f-bb9fdea303 a0)
ERROR (ClientException): The server has either erred or is incapable of performing the requested operation. (HTTP 500) (Request-ID: req-a7c2f648-
Trace: nova/nova/ api/openstack/ compute/ contrib/ os_tenant_ networks. py", line 135, in delete api.delete( context, id) nova/nova/ network/ neutronv2/ api.py" , line 872, in delete rror()
2014-08-12 10:43:27.597 21183 TRACE nova.api.openstack File "/opt/stack/
2014-08-12 10:43:27.597 21183 TRACE nova.api.openstack self.network_
2014-08-12 10:43:27.597 21183 TRACE nova.api.openstack File "/opt/stack/
2014-08-12 10:43:27.597 21183 TRACE nova.api.openstack raise NotImplementedE
2014-08-12 10:43:27.597 21183 TRACE nova.api.openstack NotImplementedError
The error (HTTP500) appears correct. Looking at the code, nova/network/ neutronv2/ api.py, delete() is raising a NotImplementedError exception. I am not sure why that part of the code is left unimplemented, but using the neutron CLI works fine.