Fix 500 error for showing deleted flavor details

Displaying deleted flavor details throws 500 internal server error.
Added 404 HttpNotFound status code in "@extension.expected_errors".

APIImpact: Return 404 status code for list extra specs
for a deleted flavor.

Closes-Bug: #1538896

Change-Id: Iba33296c28c3c3d6ba60052fe434107ac9c00c61
This commit is contained in:
bhagyashris 2016-02-04 01:21:49 -08:00
parent d98ec2e4b7
commit 4184f98501
2 changed files with 9 additions and 1 deletions

View File

@ -52,7 +52,7 @@ class FlavorExtraSpecsController(wsgi.Controller):
raise webob.exc.HTTPBadRequest( raise webob.exc.HTTPBadRequest(
explanation=error.format_message()) explanation=error.format_message())
@extensions.expected_errors(()) @extensions.expected_errors(404)
def index(self, req, flavor_id): def index(self, req, flavor_id):
"""Returns the list of extra specs for a given flavor.""" """Returns the list of extra specs for a given flavor."""
context = req.environ['nova.context'] context = req.environ['nova.context']

View File

@ -90,6 +90,14 @@ class FlavorsExtraSpecsTestV21(test.TestCase):
self.assertEqual(0, len(res_dict['extra_specs'])) self.assertEqual(0, len(res_dict['extra_specs']))
def test_index_flavor_not_found(self):
req = self._get_request('1/os-extra_specs',
use_admin_context=True)
with mock.patch('nova.db.flavor_get_by_flavor_id') as mock_get:
mock_get.side_effect = exception.FlavorNotFound(flavor_id='1')
self.assertRaises(webob.exc.HTTPNotFound, self.controller.index,
req, 1)
def test_show(self): def test_show(self):
flavor = dict(test_flavor.fake_flavor, flavor = dict(test_flavor.fake_flavor,
extra_specs={'key5': 'value5'}) extra_specs={'key5': 'value5'})