161
161
self.assertRaises(exception.InstanceTypeNotFound,
162
162
instance_types.get_instance_type_by_name,
163
163
self._nonexistent_flavor_id())
166
class InstanceTypeFilteringTest(test.TestCase):
167
"""Test cases for the filter option available for instance_type_get_all"""
169
super(InstanceTypeFilteringTest, self).setUp()
170
self.context = context.get_admin_context()
172
def assertFilterResults(self, filters, expected):
173
inst_types = db.api.instance_type_get_all(
174
self.context, filters=filters)
175
inst_names = [i['name'] for i in inst_types]
176
self.assertEqual(inst_names, expected)
178
def test_no_filters(self):
180
expected = ['m1.large', 'm1.medium', 'm1.small', 'm1.tiny',
182
self.assertFilterResults(filters, expected)
184
def test_min_memory_mb_filter(self):
185
"""Exclude tiny instance which is 512 MB"""
186
filters = dict(min_memory_mb=513)
187
expected = ['m1.large', 'm1.medium', 'm1.small', 'm1.xlarge']
188
self.assertFilterResults(filters, expected)
190
def test_min_local_gb_filter(self):
191
"""Exclude everything but large and xlarge which have >= 80 GB"""
192
filters = dict(min_local_gb=80)
193
expected = ['m1.large', 'm1.xlarge']
194
self.assertFilterResults(filters, expected)
196
def test_min_memory_mb_AND_local_gb_filter(self):
197
"""Exclude everything but large and xlarge which have >= 80 GB"""
198
filters = dict(min_memory_mb=16384, min_local_gb=80)
199
expected = ['m1.xlarge']
200
self.assertFilterResults(filters, expected)