From fa16f2b68603be04cb5f4e915625181ac6c119eb Mon Sep 17 00:00:00 2001 From: Jay Pipes Date: Wed, 26 Dec 2012 14:53:53 -0500 Subject: Remove improper NotFound except block in list servers Added a couple tests to verify that NotFound was actually never raised when no results are returned from list servers or list servers details, and then removed the except blocks from the controller. Change-Id: I36856066b9e4c4e3f7b85ddf8facb35204034838 fixes: lp bug #1089385 --- nova/api/openstack/compute/servers.py | 6 ------ nova/tests/api/openstack/compute/test_servers.py | 24 ++++++++++++++++++++++++ 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/nova/api/openstack/compute/servers.py b/nova/api/openstack/compute/servers.py index a62740681..c36d53993 100644 --- a/nova/api/openstack/compute/servers.py +++ b/nova/api/openstack/compute/servers.py @@ -452,9 +452,6 @@ class Controller(wsgi.Controller): servers = self._get_servers(req, is_detail=False) except exception.Invalid as err: raise exc.HTTPBadRequest(explanation=str(err)) - except exception.NotFound: - msg = _("Instance could not be found") - raise exc.HTTPNotFound(explanation=msg) return servers @wsgi.serializers(xml=ServersTemplate) @@ -464,9 +461,6 @@ class Controller(wsgi.Controller): servers = self._get_servers(req, is_detail=True) except exception.Invalid as err: raise exc.HTTPBadRequest(explanation=str(err)) - except exception.NotFound as err: - msg = _("Instance could not be found") - raise exc.HTTPNotFound(explanation=msg) return servers def _add_instance_faults(self, ctxt, instances): diff --git a/nova/tests/api/openstack/compute/test_servers.py b/nova/tests/api/openstack/compute/test_servers.py index 15be74d15..38954ec43 100644 --- a/nova/tests/api/openstack/compute/test_servers.py +++ b/nova/tests/api/openstack/compute/test_servers.py @@ -77,6 +77,10 @@ def return_servers_by_reservation(context, reservation_id=""): reservation_id=reservation_id) for i in xrange(5)] +def return_servers_empty(context, *args, **kwargs): + return [] + + def return_servers_by_reservation_empty(context, reservation_id=""): return [] @@ -527,6 +531,16 @@ class ServersControllerTest(test.TestCase): self.assertRaises(webob.exc.HTTPNotFound, self.ips_controller.index, req, server_id) + def test_get_server_list_empty(self): + self.stubs.Set(db, 'instance_get_all_by_filters', + return_servers_empty) + + req = fakes.HTTPRequest.blank('/v2/fake/servers') + res_dict = self.controller.index(req) + + num_servers = len(res_dict['servers']) + self.assertEqual(0, num_servers) + def test_get_server_list_with_reservation_id(self): self.stubs.Set(db, 'instance_get_all_by_reservation', return_servers_by_reservation) @@ -610,6 +624,16 @@ class ServersControllerTest(test.TestCase): self.assertRaises(webob.exc.HTTPBadRequest, self.controller.index, req) + def test_get_server_details_empty(self): + self.stubs.Set(db, 'instance_get_all_by_filters', + return_servers_empty) + + req = fakes.HTTPRequest.blank('/v2/fake/servers/detail') + res_dict = self.controller.index(req) + + num_servers = len(res_dict['servers']) + self.assertEqual(0, num_servers) + def test_get_server_details_with_limit(self): req = fakes.HTTPRequest.blank('/v2/fake/servers/detail?limit=3') res = self.controller.detail(req) -- cgit