** Changed in: nova/grizzly
       Status: Fix Committed => Fix Released

-- 
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/1160309

Title:
  Nova API floating IP error code inconsistent between Nova-Net and
  Quantum

Status in OpenStack Compute (Nova):
  Fix Released
Status in OpenStack Compute (nova) grizzly series:
  Fix Released
Status in Tempest:
  Fix Released

Bug description:
  If you ask for details of a floating IP address (GET    .../os-
  floating-ips/<id>)   that is not allocated to you, then on a system
  with Nova-networking the error code is 404 itemNotFound,  whereas on a
  system with Quantum the error code is 500 computeFault.

  
  The Nova Floating IP API code (api/openstack/compute/contrib/floating_ips.py) 
 traps the NotFound exception raised by Nova-Net, but the quantum networking 
raises a QuantumClientException.

  Not clear to me if the network/quantumv2/api code can just trap that
  exception in this case and translate it to NotFound. or if we need a
  seperate exception from the quantum client


  Devstack with Nova-Net:
  ====================

  $ curl -k -i 
http://10.2.1.79:8774/v2/7ac11f64dbf84c548f4161cf408b9799/os-floating-ips/1 -X 
GET -H "X-Auth-Project-Id: demo" -H "User-Agent: python-novaclient" -H "Accept: 
application/json" -H "X-Auth-Token: ...."
  HTTP/1.1 200 OK
  X-Compute-Request-Id: req-c16fdbbe-dcda-4c3b-be46-d70a4fdade5d
  Content-Type: application/json
  Content-Length: 103
  Date: Tue, 26 Mar 2013 10:45:04 GMT

  {"floating_ip": {"instance_id": null, "ip": "172.24.4.225",
  "fixed_ip": null, "id": 1, "pool": "nova"}}

  $ nova floating-ip-delete 172.24.4.225

  $ curl -k -i 
http://10.2.1.79:8774/v2/7ac11f64dbf84c548f4161cf408b9799/os-floating-ips/1 -X 
GET -H "X-Auth-Project-Id: demo" -H "User-Agent: python-novaclient" -H "Accept: 
application/json" -H "X-Auth-Token:  ..,."TTP/1.1 404 Not Found
  Content-Length: 76
  Content-Type: application/json; charset=UTF-8
  X-Compute-Request-Id: req-61125f73-8989-4f00-9799-2d22e0ec4d51
  Date: Tue, 26 Mar 2013 10:45:28 GMT

  {"itemNotFound": {"message": "Floating ip not found for id 1", "code":
  404}}ubuntu@server-1357841265-az-3-region-a-geo-1:/mnt/devstack$


  DevStack with Quantum:
  ====================
  $ curl -k -i 
http://10.2.2.114:8774/v2/18b18e535c6149b0bf71a42b46f2ab39/os-floating-ips/c7a3a81e-28c8-4b15-94f4-6ca55e9c437b
 -X GET -H "X-Auth-Project-Id: demo" -H "User-Agent: python-novaclient" -H 
"Accept: application/json" -H "X-Auth-Token: ..."HTTP/1.1 200 OK
  X-Compute-Request-Id: req-77b52904-6cd9-402d-93a2-124cfdcc86b2
  Content-Type: application/json
  Content-Length: 180
  Date: Tue, 26 Mar 2013 10:36:16 GMT

  {"floating_ip": {"instance_id": "09ffe9c9-0138-4f2f-b11b-
  c92e8d099b63", "ip": "172.24.4.227", "fixed_ip": "10.0.0.5", "id":
  "c7a3a81e-28c8-4b15-94f4-6ca55e9c437b", "pool": "nova"}}

  
  $ nova floating-ip-delete 172.24.4.227

  $ curl -k -i
  http://10.2.2.114:8774/v2/18b18e535c6149b0bf71a42b46f2ab39/os-
  floating-ips/c7a3a81e-28c8-4b15-94f4-6ca55e9c437b -X GET -H "X-Auth-
  Project-Id: demo" -H "User-Agent: python-novaclient" -H "Accept:
  application/json" -H "X-Auth-Token: ..."

  HTTP/1.1 500 Internal Server Error
  Content-Length: 128
  Content-Type: application/json; charset=UTF-8
  X-Compute-Request-Id: req-720eb948-ae3a-4837-ab95-958d70132aa5
  Date: Tue, 26 Mar 2013 10:39:09 GMT

  {"computeFault": {"message": "The server has either erred or is
  incapable of performing the requested operation.", "code": 500}}


  From the API log:
  2013-03-25 19:11:00.377 DEBUG nova.api.openstack.wsgi 
[req-eda934a2-549d-4954-99b9-9dac74df01db 64090786631639 40099433467163] 
Calling method <bound method FloatingIPController.show of 
<nova.api.openstack.compute.contrib.floating_ips.FloatingIPController object at 
0x45c4ed0>> _process_stack 
/usr/lib/python2.7/dist-packages/nova/api/openstack/wsgi.py:924
  2013-03-25 19:11:00.510 ERROR nova.api.openstack 
[req-eda934a2-549d-4954-99b9-9dac74df01db 64090786631639 40099433467163] Caught 
error: Floating IP 8e9a5dfb-90f5-4fce-a82b-d814fe461d7b could not be found
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack Traceback (most recent 
call last):
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack   File 
"/usr/lib/python2.7/dist-packages/nova/api/openstack/__init__.py", line 81, in 
__call__
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack     return 
req.get_response(self.application)
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack   File 
"/usr/lib/python2.7/dist-packages/webob/request.py", line 1296, in send
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack     application, 
catch_exc_info=False)
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack   File 
"/usr/lib/python2.7/dist-packages/webob/request.py", line 1260, in 
call_application
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack     app_iter = 
application(self.environ, start_response)
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack   File 
"/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack     return 
resp(environ, start_response)
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack   File 
"/usr/lib/python2.7/dist-packages/hp/middleware/cs_auth_token.py", line 137, in 
__call__
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack     return 
super(CsAuthProtocol, self).__call__(env, start_response)
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack   File 
"/usr/lib/python2.7/dist-packages/keystoneclient/middleware/auth_token.py", 
line 348, in __call__
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack     return 
self.app(env, start_response)
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack   File 
"/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack     return 
resp(environ, start_response)
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack   File 
"/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack     return 
resp(environ, start_response)
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack   File 
"/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack     return 
resp(environ, start_response)
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack   File 
"/usr/lib/python2.7/dist-packages/routes/middleware.py", line 131, in __call__
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack     response = 
self.app(environ, start_response)
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack   File 
"/usr/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack     return 
resp(environ, start_response)
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack   File 
"/usr/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack     resp = 
self.call_func(req, *args, **self.kwargs)
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack   File 
"/usr/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack     return 
self.func(req, *args, **kwargs)
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack   File 
"/usr/lib/python2.7/dist-packages/nova/api/openstack/wsgi.py", line 895, in 
__call__
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack     content_type, 
body, accept)
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack   File 
"/usr/lib/python2.7/dist-packages/nova/api/openstack/wsgi.py", line 955, in 
_process_stack
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack     action_result = 
self.dispatch(meth, request, action_args)
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack   File 
"/usr/lib/python2.7/dist-packages/nova/api/openstack/wsgi.py", line 1035, in 
dispatch
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack     return 
method(req=request, **action_args)
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack   File 
"/usr/lib/python2.7/dist-packages/nova/api/openstack/compute/contrib/floating_ips.py",
 line 130, in show
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack     floating_ip = 
self.network_api.get_floating_ip(context, id)
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack   File 
"/usr/lib/python2.7/dist-packages/nova/network/quantumv2/api.py", line 600, in 
get_floating_ip
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack     fip = 
client.show_floatingip(id)['floatingip']
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack   File 
"/usr/lib/python2.7/dist-packages/quantumclient/v2_0/client.py", line 105, in 
with_params
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack     ret = 
self.function(instance, *args, **kwargs)
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack   File 
"/usr/lib/python2.7/dist-packages/quantumclient/v2_0/client.py", line 409, in 
show_floatingip
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack     return 
self.get(self.floatingip_path % (floatingip), params=_params)
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack   File 
"/usr/lib/python2.7/dist-packages/quantumclient/v2_0/client.py", line 772, in 
get
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack     headers=headers, 
params=params)
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack   File 
"/usr/lib/python2.7/dist-packages/quantumclient/v2_0/client.py", line 757, in 
retry_request
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack     headers=headers, 
params=params)
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack   File 
"/usr/lib/python2.7/dist-packages/quantumclient/v2_0/client.py", line 702, in 
do_request
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack     
self._handle_fault_response(status_code, replybody)
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack   File 
"/usr/lib/python2.7/dist-packages/quantumclient/v2_0/client.py", line 683, in 
_handle_fault_response
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack     
exception_handler_v20(status_code, des_error_body)
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack   File 
"/usr/lib/python2.7/dist-packages/quantumclient/v2_0/client.py", line 78, in 
exception_handler_v20
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack     message=error_dict)
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack 
QuantumClientException: Floating IP 8e9a5dfb-90f5-4fce-a82b-d814fe461d7b could 
not be found
  2013-03-25 19:11:00.510 65276 TRACE nova.api.openstack
  2013-03-25 19:11:00.515 INFO nova.api.openstack 
[req-eda934a2-549d-4954-99b9-9dac74df01db 64090786631639 40099433467163] 
http://compute.systestb.hpcloud.net/v1.1/40099433467163/os-floating-ips/8e9a5dfb-90f5-4fce-a82b-d814fe461d7b
 returned with HTTP 500

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1160309/+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

Reply via email to