From 37163629eacbf4b2255ea8edb255051eda276842 Mon Sep 17 00:00:00 2001 From: Rick Harris Date: Wed, 21 Sep 2011 03:33:31 +0000 Subject: [PATCH 1/3] Refactoring instance_type_get_all --- nova/tests/vmwareapi/db_fakes.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nova/tests/vmwareapi/db_fakes.py b/nova/tests/vmwareapi/db_fakes.py index 0d896239a..130868b63 100644 --- a/nova/tests/vmwareapi/db_fakes.py +++ b/nova/tests/vmwareapi/db_fakes.py @@ -100,7 +100,7 @@ def stub_out_db_instance_api(stubs): return '10.10.10.10' def fake_instance_type_get_all(context, inactive=0): - return INSTANCE_TYPES + return INSTANCE_TYPES.values() def fake_instance_type_get_by_name(context, name): return INSTANCE_TYPES[name] From 4a38a19e29aab740c980761882cf1a57723f8a79 Mon Sep 17 00:00:00 2001 From: Rick Harris Date: Wed, 21 Sep 2011 16:29:36 +0000 Subject: [PATCH 2/3] Adding flavor filtering --- nova/tests/test_instance_types.py | 37 +++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/nova/tests/test_instance_types.py b/nova/tests/test_instance_types.py index 09f532239..1ed34fba3 100644 --- a/nova/tests/test_instance_types.py +++ b/nova/tests/test_instance_types.py @@ -161,3 +161,40 @@ class InstanceTypeTestCase(test.TestCase): self.assertRaises(exception.InstanceTypeNotFound, instance_types.get_instance_type_by_name, self._nonexistent_flavor_id()) + + +class InstanceTypeFilteringTest(test.TestCase): + """Test cases for the filter option available for instance_type_get_all""" + def setUp(self): + super(InstanceTypeFilteringTest, self).setUp() + self.context = context.get_admin_context() + + def assertFilterResults(self, filters, expected): + inst_types = db.api.instance_type_get_all( + self.context, filters=filters) + inst_names = [i['name'] for i in inst_types] + self.assertEqual(inst_names, expected) + + def test_no_filters(self): + filters = None + expected = ['m1.large', 'm1.medium', 'm1.small', 'm1.tiny', + 'm1.xlarge'] + self.assertFilterResults(filters, expected) + + def test_min_memory_mb_filter(self): + """Exclude tiny instance which is 512 MB""" + filters = dict(min_memory_mb=513) + expected = ['m1.large', 'm1.medium', 'm1.small', 'm1.xlarge'] + self.assertFilterResults(filters, expected) + + def test_min_local_gb_filter(self): + """Exclude everything but large and xlarge which have >= 80 GB""" + filters = dict(min_local_gb=80) + expected = ['m1.large', 'm1.xlarge'] + self.assertFilterResults(filters, expected) + + def test_min_memory_mb_AND_local_gb_filter(self): + """Exclude everything but large and xlarge which have >= 80 GB""" + filters = dict(min_memory_mb=16384, min_local_gb=80) + expected = ['m1.xlarge'] + self.assertFilterResults(filters, expected) From 08768d4c7cb8703428781b8b13bf1372755a729d Mon Sep 17 00:00:00 2001 From: Rick Harris Date: Wed, 21 Sep 2011 16:43:45 +0000 Subject: [PATCH 3/3] Fixing tests --- nova/tests/vmwareapi/db_fakes.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nova/tests/vmwareapi/db_fakes.py b/nova/tests/vmwareapi/db_fakes.py index 130868b63..575109f90 100644 --- a/nova/tests/vmwareapi/db_fakes.py +++ b/nova/tests/vmwareapi/db_fakes.py @@ -99,7 +99,7 @@ def stub_out_db_instance_api(stubs): """Stubs out the db.instance_get_fixed_address method.""" return '10.10.10.10' - def fake_instance_type_get_all(context, inactive=0): + def fake_instance_type_get_all(context, inactive=0, filters=None): return INSTANCE_TYPES.values() def fake_instance_type_get_by_name(context, name):