From 481d4a767e324e956af4afcb510eac802a9efa7a Mon Sep 17 00:00:00 2001 From: Boris Pavlovic Date: Wed, 24 Apr 2013 00:41:42 +0400 Subject: Fix bug in db.instance_type_destroy Fix db.instance_type_destroy() Corresponding instance_type_projects weren't deleted Fix db.instance_type_acces_get_by_flavor_id method Return [] list if there is no such instance_type instead of AttributeError Fixes bug 1172153 Change-Id: Ib1a9a23aa6e26711c198bf4a5059797044c44426 --- nova/tests/test_db_api.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'nova/tests') diff --git a/nova/tests/test_db_api.py b/nova/tests/test_db_api.py index d834d03f9..3faa26e3b 100644 --- a/nova/tests/test_db_api.py +++ b/nova/tests/test_db_api.py @@ -2307,6 +2307,26 @@ class InstanceTypeAccessTestCase(BaseInstanceTypeTestCase): db.instance_type_access_remove, self.ctxt, inst_type['flavorid'], 'p2') + def test_instance_type_access_removed_after_instance_type_destroy(self): + inst_type1 = self._create_inst_type({'flavorid': 'f1', 'name': 'n1'}) + inst_type2 = self._create_inst_type({'flavorid': 'f2', 'name': 'n2'}) + values = [ + (inst_type1['flavorid'], 'p1'), + (inst_type1['flavorid'], 'p2'), + (inst_type2['flavorid'], 'p3') + ] + for v in values: + self._create_inst_type_access(*v) + + db.instance_type_destroy(self.ctxt, inst_type1['name']) + + p = (self.ctxt, inst_type1['flavorid']) + self.assertEqual(0, len(db.instance_type_access_get_by_flavor_id(*p))) + p = (self.ctxt, inst_type2['flavorid']) + self.assertEqual(1, len(db.instance_type_access_get_by_flavor_id(*p))) + db.instance_type_destroy(self.ctxt, inst_type2['name']) + self.assertEqual(0, len(db.instance_type_access_get_by_flavor_id(*p))) + class FixedIPTestCase(BaseInstanceTypeTestCase): def _timeout_test(self, ctxt, timeout, multi_host): -- cgit