summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--nova/compute/instance_types.py2
-rw-r--r--nova/tests/test_instance_types.py16
2 files changed, 17 insertions, 1 deletions
diff --git a/nova/compute/instance_types.py b/nova/compute/instance_types.py
index c4a6f66f9..66c73c624 100644
--- a/nova/compute/instance_types.py
+++ b/nova/compute/instance_types.py
@@ -144,5 +144,5 @@ def get_instance_type_by_flavor_id(flavorid):
:raises: FlavorNotFound
"""
- ctxt = context.get_admin_context()
+ ctxt = context.get_admin_context(read_deleted="yes")
return db.instance_type_get_by_flavor_id(ctxt, flavorid)
diff --git a/nova/tests/test_instance_types.py b/nova/tests/test_instance_types.py
index 0baeee770..ab4af3bc1 100644
--- a/nova/tests/test_instance_types.py
+++ b/nova/tests/test_instance_types.py
@@ -201,6 +201,22 @@ class InstanceTypeTestCase(test.TestCase):
fetched = instance_types.get_instance_type_by_flavor_id(flavorid)
self.assertEqual(default_instance_type, fetched)
+ def test_can_read_deleted_types_using_flavor_id(self):
+ """Ensure deleted instance types can be read when querying flavor_id"""
+ inst_type_name = "test"
+ inst_type_flavor_id = "test1"
+
+ inst_type = instance_types.create(inst_type_name, 256, 1, 120, 100,
+ inst_type_flavor_id)
+ self.assertEqual(inst_type_name, inst_type["name"])
+
+ # NOTE(jk0): The deleted flavor will show up here because the context
+ # in get_instance_type_by_flavor_id() is set to use read_deleted.
+ instance_types.destroy(inst_type["name"])
+ deleted_inst_type = instance_types.get_instance_type_by_flavor_id(
+ inst_type_flavor_id)
+ self.assertEqual(inst_type_name, deleted_inst_type["name"])
+
def test_will_list_deleted_type_for_active_instance(self):
"""Ensure deleted instance types with active instances can be read"""
ctxt = context.get_admin_context()