diff --git a/nova/api/openstack/compute/contrib/flavormanage.py b/nova/api/openstack/compute/contrib/flavormanage.py index 69d5d6ed9199..e8ac4d522a85 100644 --- a/nova/api/openstack/compute/contrib/flavormanage.py +++ b/nova/api/openstack/compute/contrib/flavormanage.py @@ -73,7 +73,8 @@ class FlavorManageController(wsgi.Controller): root_gb, ephemeral_gb, flavorid, swap, rxtx_factor, is_public) req.cache_db_flavor(flavor) - except exception.InstanceTypeExists as err: + except (exception.InstanceTypeExists, + exception.InstanceTypeIdExists) as err: raise webob.exc.HTTPConflict(explanation=str(err)) return self._view_builder.show(req, flavor) diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py index 3798cade8e54..8ccdfd6a8b11 100644 --- a/nova/db/sqlalchemy/api.py +++ b/nova/db/sqlalchemy/api.py @@ -3869,7 +3869,7 @@ def instance_type_create(context, values): try: instance_type_get_by_flavor_id(context, values['flavorid'], session) - raise exception.InstanceTypeExists(name=values['name']) + raise exception.InstanceTypeIdExists(flavor_id=values['flavorid']) except exception.FlavorNotFound: pass try: diff --git a/nova/exception.py b/nova/exception.py index 28fb1ee0a51b..9b9f9549290f 100644 --- a/nova/exception.py +++ b/nova/exception.py @@ -876,7 +876,11 @@ class InstanceExists(Duplicate): class InstanceTypeExists(Duplicate): - message = _("Instance Type %(name)s already exists.") + message = _("Instance Type with name %(name)s already exists.") + + +class InstanceTypeIdExists(Duplicate): + message = _("Instance Type with ID %(flavor_id)s already exists.") class FlavorAccessExists(Duplicate): diff --git a/nova/tests/test_instance_types.py b/nova/tests/test_instance_types.py index d9d2669a38f4..5059b155a2a9 100644 --- a/nova/tests/test_instance_types.py +++ b/nova/tests/test_instance_types.py @@ -159,7 +159,7 @@ class InstanceTypeTestCase(test.TestCase): """Ensures that flavorid duplicates raise InstanceTypeCreateFailed""" flavorid = 'flavor1' instance_types.create('name one', 256, 1, 120, 200, flavorid) - self.assertRaises(exception.InstanceTypeExists, + self.assertRaises(exception.InstanceTypeIdExists, instance_types.create, 'name two', 256, 1, 120, 200, flavorid)