Public bug reported: When I ran 'nova net xxx' to show a network's details, I got a 500 error if the network_uuid does not exist. This is because the NeutronClientException exception is not caught by nova api.
$ nova net xxx ERROR: The server has either erred or is incapable of performing the requested operation. (HTTP 500) (Request-ID: req-e744c9ae-b8ad-4c39 -a77c-44e8bb05577c) 2014-03-01 02:37:25.764 ERROR nova.api.openstack [req-35d8246e-d414-4b62-b759-ab2c4bf86082 demo demo] Caught error: 404 Not Found The resource could not be found. 2014-03-01 02:37:25.764 TRACE nova.api.openstack Traceback (most recent call last): 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/opt/stack/nova/nova/api/openstack/__init__.py", line 125, in __call__ 2014-03-01 02:37:25.764 TRACE nova.api.openstack return req.get_response(self.application) 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/usr/local/lib/python2.7/dist-packages/webob/request.py", l ine 1296, in send 2014-03-01 02:37:25.764 TRACE nova.api.openstack application, catch_exc_info=False) 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/usr/local/lib/python2.7/dist-packages/webob/request.py", l ine 1260, in call_application 2014-03-01 02:37:25.764 TRACE nova.api.openstack app_iter = application(self.environ, start_response) 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__ 2014-03-01 02:37:25.764 TRACE nova.api.openstack return resp(environ, start_response) 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/opt/stack/python-keystoneclient/keystoneclient/middleware/ auth_token.py", line 598, in __call__ 2014-03-01 02:37:25.764 TRACE nova.api.openstack return self.app(env, start_response) 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__ 2014-03-01 02:37:25.764 TRACE nova.api.openstack return resp(environ, start_response) 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__ 2014-03-01 02:37:25.764 TRACE nova.api.openstack return resp(environ, start_response) 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__ 2014-03-01 02:37:25.764 TRACE nova.api.openstack resp = self.call_func(req, *args, **self.kwargs) 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func 2014-03-01 02:37:25.764 TRACE nova.api.openstack return self.func(req, *args, **kwargs) 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/opt/stack/nova/nova/api/openstack/wsgi.py", line 929, in __call__ 2014-03-01 02:37:25.764 TRACE nova.api.openstack content_type, body, accept) 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/opt/stack/nova/nova/api/openstack/wsgi.py", line 991, in _process_stack 2014-03-01 02:37:25.764 TRACE nova.api.openstack action_result = self.dispatch(meth, request, action_args) 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/opt/stack/nova/nova/api/openstack/wsgi.py", line 1078, in dispatch 2014-03-01 02:37:25.764 TRACE nova.api.openstack return method(req=request, **action_args) 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/opt/stack/nova/nova/api/openstack/compute/contrib/os_tenant_networks.py", line 108, in show 2014-03-01 02:37:25.764 TRACE nova.api.openstack network = self.network_api.get(context, id) 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/opt/stack/nova/nova/network/neutronv2/api.py", line 689, in get 2014-03-01 02:37:25.764 TRACE nova.api.openstack try: 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/opt/stack/python-neutronclient/neutronclient/v2_0/client.py", line 112, in with_params 2014-03-01 02:37:25.764 TRACE nova.api.openstack ret = self.function(instance, *args, **kwargs) 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/opt/stack/python-neutronclient/neutronclient/v2_0/client.py", line 339, in show_network 2014-03-01 02:37:25.764 TRACE nova.api.openstack return self.get(self.network_path % (network), params=_params) 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/opt/stack/python-neutronclient/neutronclient/v2_0/client.py", line 1237, in get 2014-03-01 02:37:25.764 TRACE nova.api.openstack print ("body: ", body) 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/opt/stack/python-neutronclient/neutronclient/v2_0/client.py", line 1222, in retry_request 2014-03-01 02:37:25.764 TRACE nova.api.openstack headers=headers, params=params) 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/opt/stack/python-neutronclient/neutronclient/v2_0/client.py", line 1165, in do_request 2014-03-01 02:37:25.764 TRACE nova.api.openstack self._handle_fault_response(status_code, replybody) 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/opt/stack/python-neutronclient/neutronclient/v2_0/client.py", line 1135, in _handle_fault_response 2014-03-01 02:37:25.764 TRACE nova.api.openstack exception_handler_v20(status_code, des_error_body) 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/opt/stack/python-neutronclient/neutronclient/v2_0/client.py", line 92, in exception_handler_v20 2014-03-01 02:37:25.764 TRACE nova.api.openstack message=message) 2014-03-01 02:37:25.764 TRACE nova.api.openstack NeutronClientException: 404 Not Found 2014-03-01 02:37:25.764 TRACE nova.api.openstack 2014-03-01 02:37:25.764 TRACE nova.api.openstack The resource could not be found. ** Affects: nova Importance: Undecided Assignee: Haiwei Xu (xu-haiwei) Status: In Progress ** Changed in: nova Assignee: (unassigned) => Haiwei Xu (xu-haiwei) -- 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/1286969 Title: NeutronClientException exception isn't handled when showing a network Status in OpenStack Compute (Nova): In Progress Bug description: When I ran 'nova net xxx' to show a network's details, I got a 500 error if the network_uuid does not exist. This is because the NeutronClientException exception is not caught by nova api. $ nova net xxx ERROR: The server has either erred or is incapable of performing the requested operation. (HTTP 500) (Request-ID: req-e744c9ae-b8ad-4c39 -a77c-44e8bb05577c) 2014-03-01 02:37:25.764 ERROR nova.api.openstack [req-35d8246e-d414-4b62-b759-ab2c4bf86082 demo demo] Caught error: 404 Not Found The resource could not be found. 2014-03-01 02:37:25.764 TRACE nova.api.openstack Traceback (most recent call last): 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/opt/stack/nova/nova/api/openstack/__init__.py", line 125, in __call__ 2014-03-01 02:37:25.764 TRACE nova.api.openstack return req.get_response(self.application) 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/usr/local/lib/python2.7/dist-packages/webob/request.py", l ine 1296, in send 2014-03-01 02:37:25.764 TRACE nova.api.openstack application, catch_exc_info=False) 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/usr/local/lib/python2.7/dist-packages/webob/request.py", l ine 1260, in call_application 2014-03-01 02:37:25.764 TRACE nova.api.openstack app_iter = application(self.environ, start_response) 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__ 2014-03-01 02:37:25.764 TRACE nova.api.openstack return resp(environ, start_response) 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/opt/stack/python-keystoneclient/keystoneclient/middleware/ auth_token.py", line 598, in __call__ 2014-03-01 02:37:25.764 TRACE nova.api.openstack return self.app(env, start_response) 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__ 2014-03-01 02:37:25.764 TRACE nova.api.openstack return resp(environ, start_response) 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 144, in __call__ 2014-03-01 02:37:25.764 TRACE nova.api.openstack return resp(environ, start_response) 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in __call__ 2014-03-01 02:37:25.764 TRACE nova.api.openstack resp = self.call_func(req, *args, **self.kwargs) 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in call_func 2014-03-01 02:37:25.764 TRACE nova.api.openstack return self.func(req, *args, **kwargs) 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/opt/stack/nova/nova/api/openstack/wsgi.py", line 929, in __call__ 2014-03-01 02:37:25.764 TRACE nova.api.openstack content_type, body, accept) 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/opt/stack/nova/nova/api/openstack/wsgi.py", line 991, in _process_stack 2014-03-01 02:37:25.764 TRACE nova.api.openstack action_result = self.dispatch(meth, request, action_args) 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/opt/stack/nova/nova/api/openstack/wsgi.py", line 1078, in dispatch 2014-03-01 02:37:25.764 TRACE nova.api.openstack return method(req=request, **action_args) 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/opt/stack/nova/nova/api/openstack/compute/contrib/os_tenant_networks.py", line 108, in show 2014-03-01 02:37:25.764 TRACE nova.api.openstack network = self.network_api.get(context, id) 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/opt/stack/nova/nova/network/neutronv2/api.py", line 689, in get 2014-03-01 02:37:25.764 TRACE nova.api.openstack try: 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/opt/stack/python-neutronclient/neutronclient/v2_0/client.py", line 112, in with_params 2014-03-01 02:37:25.764 TRACE nova.api.openstack ret = self.function(instance, *args, **kwargs) 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/opt/stack/python-neutronclient/neutronclient/v2_0/client.py", line 339, in show_network 2014-03-01 02:37:25.764 TRACE nova.api.openstack return self.get(self.network_path % (network), params=_params) 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/opt/stack/python-neutronclient/neutronclient/v2_0/client.py", line 1237, in get 2014-03-01 02:37:25.764 TRACE nova.api.openstack print ("body: ", body) 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/opt/stack/python-neutronclient/neutronclient/v2_0/client.py", line 1222, in retry_request 2014-03-01 02:37:25.764 TRACE nova.api.openstack headers=headers, params=params) 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/opt/stack/python-neutronclient/neutronclient/v2_0/client.py", line 1165, in do_request 2014-03-01 02:37:25.764 TRACE nova.api.openstack self._handle_fault_response(status_code, replybody) 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/opt/stack/python-neutronclient/neutronclient/v2_0/client.py", line 1135, in _handle_fault_response 2014-03-01 02:37:25.764 TRACE nova.api.openstack exception_handler_v20(status_code, des_error_body) 2014-03-01 02:37:25.764 TRACE nova.api.openstack File "/opt/stack/python-neutronclient/neutronclient/v2_0/client.py", line 92, in exception_handler_v20 2014-03-01 02:37:25.764 TRACE nova.api.openstack message=message) 2014-03-01 02:37:25.764 TRACE nova.api.openstack NeutronClientException: 404 Not Found 2014-03-01 02:37:25.764 TRACE nova.api.openstack 2014-03-01 02:37:25.764 TRACE nova.api.openstack The resource could not be found. To manage notifications about this bug go to: https://bugs.launchpad.net/nova/+bug/1286969/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp