From dad188ca07b84278fc3afb3a65879b7015db672c Mon Sep 17 00:00:00 2001 From: Maru Newby Date: Thu, 2 Feb 2012 12:52:10 -0800 Subject: [PATCH] Raise ApiError in response to InstanceTypeNotFound * Updates methods in nova.compute.instance_types to catch InstanceTypeNotFound exceptions and re-raise them as ApiError. - Previously, the methods in instance_types were raising ApiError in response to DBError, but the underlying db calls have since been updated to detect empty results and throw more specific exceptions. * Updates get_instance_type_by_flavor_id to not try to catch DBError, as the underlying db call only ever raises FlavorNotFound. get_instance_type_by_flavor_id should not raise ApiError, as callers expect the FlavorNotFound exception and know how to handle it. * Fixes bug 872618 Change-Id: I8652f04889adb448017afd253ecdcc840fbb660f --- Authors | 1 + nova/tests/test_instance_types.py | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Authors b/Authors index 574a34f3..85cd5d75 100644 --- a/Authors +++ b/Authors @@ -107,6 +107,7 @@ Lvov Maxim Mandell Degerness Mark McLoughlin Mark Washenberger +Maru Newby Masanori Itoh Matt Dietz Matthew Hooker diff --git a/nova/tests/test_instance_types.py b/nova/tests/test_instance_types.py index b0613c75..29b812a2 100644 --- a/nova/tests/test_instance_types.py +++ b/nova/tests/test_instance_types.py @@ -174,7 +174,7 @@ class InstanceTypeTestCase(test.TestCase): def test_will_not_get_bad_default_instance_type(self): """ensures error raised on bad default instance type""" FLAGS.default_instance_type = 'unknown_flavor' - self.assertRaises(exception.InstanceTypeNotFoundByName, + self.assertRaises(exception.ApiError, instance_types.get_default_instance_type) def test_will_get_instance_type_by_id(self): @@ -185,12 +185,12 @@ class InstanceTypeTestCase(test.TestCase): def test_will_not_get_instance_type_by_unknown_id(self): """Ensure get by name returns default flavor with no name""" - self.assertRaises(exception.InstanceTypeNotFound, + self.assertRaises(exception.ApiError, instance_types.get_instance_type, 10000) def test_will_not_get_instance_type_with_bad_id(self): """Ensure get by name returns default flavor with bad name""" - self.assertRaises(exception.InstanceTypeNotFound, + self.assertRaises(exception.ApiError, instance_types.get_instance_type, 'asdf') def test_instance_type_get_by_None_name_returns_default(self): @@ -201,7 +201,7 @@ class InstanceTypeTestCase(test.TestCase): def test_will_not_get_instance_type_with_bad_name(self): """Ensure get by name returns default flavor with bad name""" - self.assertRaises(exception.InstanceTypeNotFoundByName, + self.assertRaises(exception.ApiError, instance_types.get_instance_type_by_name, 10000) def test_will_not_get_instance_by_unknown_flavor_id(self):