summaryrefslogtreecommitdiffstats
path: root/nova/tests
diff options
context:
space:
mode:
authorJinwoo 'Joseph' Suh <jsuh@isi.edu>2012-07-21 19:51:20 -0400
committerJinwoo 'Joseph' Suh <jsuh@isi.edu>2012-08-14 17:40:47 -0400
commit90f77d71fe5815f08fe12e77e7645c6025ee0191 (patch)
tree02149f3ec91c65a78ae8c7d4ea6af8fbb4cfcf7b /nova/tests
parent3801059632a80a254391ee931e5427c2352ef0c6 (diff)
Added several operators on instance_type_extra_specs.
The following operators on instance_type_extra_specs were added in compute_capabilities_filter.py: = (equal to or greater than as a number; same as vcpus case) == (equal to as a number) != (not equal to as a number) >= (greater than or equal to as a number) <= (less than or equal to as a number) s== (equal to as a string) s!= (not equal to as a string) s>= (greater than or equal to as a string) s> (greater than as a string) s<= (less than or equal to as a string) s< (less than as a string) <in> (substring) <or> (find one of these) If the first word in the instance_type_extra_spec is not one of the keywords above, it is ignored. E.g.: ">= 5", "s== 2.1.0", "<in> gcc", and "<or> fpu <or> gpu" For more information, please refer: blueprint instance-type-extra-specs-extension. Change-Id: Ief23d00449798577c6910aaef85f0cba26323c61
Diffstat (limited to 'nova/tests')
-rw-r--r--nova/tests/scheduler/test_host_filters.py384
1 files changed, 379 insertions, 5 deletions
diff --git a/nova/tests/scheduler/test_host_filters.py b/nova/tests/scheduler/test_host_filters.py
index 57827ac19..ca5ca5366 100644
--- a/nova/tests/scheduler/test_host_filters.py
+++ b/nova/tests/scheduler/test_host_filters.py
@@ -394,11 +394,11 @@ class HostFiltersTestCase(test.TestCase):
'service': service})
self.assertTrue(filt_cls.host_passes(host, filter_properties))
- def test_compute_filter_passes_extra_specs(self):
+ def test_compute_filter_passes_extra_specs_noop(self):
self._stub_service_is_up(True)
filt_cls = self.class_map['ComputeCapabilitiesFilter']()
- extra_specs = {'opt1': 1, 'opt2': 2}
- capabilities = {'enabled': True, 'opt1': 1, 'opt2': 2}
+ extra_specs = {'opt1': '1111', 'opt2': '222'}
+ capabilities = {'enabled': True, 'opt1': '1', 'opt2': '2'}
service = {'disabled': False}
filter_properties = {'instance_type': {'memory_mb': 1024,
'extra_specs': extra_specs}}
@@ -407,10 +407,384 @@ class HostFiltersTestCase(test.TestCase):
'service': service})
self.assertTrue(filt_cls.host_passes(host, filter_properties))
- def test_compute_filter_fails_extra_specs(self):
+ def test_compute_filter_passes_extra_specs_noop2(self):
self._stub_service_is_up(True)
filt_cls = self.class_map['ComputeCapabilitiesFilter']()
- extra_specs = {'opt1': 1, 'opt2': 3}
+ extra_specs = {'opt1': '1111', 'opt2': '222'}
+ capabilities = {'enabled': True, 'opt3': '1', 'opt4': '2'}
+ service = {'disabled': False}
+ filter_properties = {'instance_type': {'memory_mb': 1024,
+ 'extra_specs': extra_specs}}
+ host = fakes.FakeHostState('host1', 'compute',
+ {'free_ram_mb': 1024, 'capabilities': capabilities,
+ 'service': service})
+ self.assertTrue(filt_cls.host_passes(host, filter_properties))
+
+ def test_compute_filter_passes_extra_specs_noop3(self):
+ self._stub_service_is_up(True)
+ filt_cls = self.class_map['ComputeCapabilitiesFilter']()
+ extra_specs = {'opt1': '', 'opt2': ''}
+ capabilities = {'enabled': True, 'opt1': '1', 'opt2': '2'}
+ service = {'disabled': False}
+ filter_properties = {'instance_type': {'memory_mb': 1024,
+ 'extra_specs': extra_specs}}
+ host = fakes.FakeHostState('host1', 'compute',
+ {'free_ram_mb': 1024, 'capabilities': capabilities,
+ 'service': service})
+ self.assertTrue(filt_cls.host_passes(host, filter_properties))
+
+ def test_compute_filter_passes_extra_specs_noop4(self):
+ self._stub_service_is_up(True)
+ filt_cls = self.class_map['ComputeCapabilitiesFilter']()
+ extra_specs = {'opt1': '> 4', 'opt2': '< 3'}
+ capabilities = {'enabled': True, 'opt1': '2', 'opt2': '5'}
+ service = {'disabled': False}
+ filter_properties = {'instance_type': {'memory_mb': 1024,
+ 'extra_specs': extra_specs}}
+ host = fakes.FakeHostState('host1', 'compute',
+ {'free_ram_mb': 1024, 'capabilities': capabilities,
+ 'service': service})
+ self.assertTrue(filt_cls.host_passes(host, filter_properties))
+
+ def test_compute_filter_passes_extra_specs_with_op_eq(self):
+ self._stub_service_is_up(True)
+ filt_cls = self.class_map['ComputeCapabilitiesFilter']()
+ extra_specs = {'opt1': '= 123'}
+ capabilities = {'enabled': True, 'opt1': '123'}
+ service = {'disabled': False}
+ filter_properties = {'instance_type': {'memory_mb': 1024,
+ 'extra_specs': extra_specs}}
+ host = fakes.FakeHostState('host1', 'compute',
+ {'free_ram_mb': 1024, 'capabilities': capabilities,
+ 'service': service})
+ self.assertTrue(filt_cls.host_passes(host, filter_properties))
+
+ def test_compute_filter_passes_extra_specs_with_op_eq2(self):
+ self._stub_service_is_up(True)
+ filt_cls = self.class_map['ComputeCapabilitiesFilter']()
+ extra_specs = {'opt1': '= 123'}
+ capabilities = {'enabled': True, 'opt1': '124'}
+ service = {'disabled': False}
+ filter_properties = {'instance_type': {'memory_mb': 1024,
+ 'extra_specs': extra_specs}}
+ host = fakes.FakeHostState('host1', 'compute',
+ {'free_ram_mb': 1024, 'capabilities': capabilities,
+ 'service': service})
+ self.assertTrue(filt_cls.host_passes(host, filter_properties))
+
+ def test_compute_filter_passes_extra_specs_with_op_eq3(self):
+ self._stub_service_is_up(True)
+ filt_cls = self.class_map['ComputeCapabilitiesFilter']()
+ extra_specs = {'opt1': '= 123', 'opt2': '= 456'}
+ capabilities = {'enabled': True, 'opt1': '124', 'opt2': '456'}
+ service = {'disabled': False}
+ filter_properties = {'instance_type': {'memory_mb': 1024,
+ 'extra_specs': extra_specs}}
+ host = fakes.FakeHostState('host1', 'compute',
+ {'free_ram_mb': 1024, 'capabilities': capabilities,
+ 'service': service})
+ self.assertTrue(filt_cls.host_passes(host, filter_properties))
+
+ def test_compute_filter_fails_extra_specs_with_op_eq(self):
+ self._stub_service_is_up(True)
+ filt_cls = self.class_map['ComputeCapabilitiesFilter']()
+ extra_specs = {'opt2': '= 234'}
+ capabilities = {'enabled': True, 'opt2': '34'}
+ service = {'disabled': False}
+ filter_properties = {'instance_type': {'memory_mb': 1024,
+ 'extra_specs': extra_specs}}
+ host = fakes.FakeHostState('host1', 'compute',
+ {'free_ram_mb': 1024, 'capabilities': capabilities,
+ 'service': service})
+
+ self.assertFalse(filt_cls.host_passes(host, filter_properties))
+
+ def test_compute_filter_fails_extra_specs_with_op_eq2(self):
+ self._stub_service_is_up(True)
+ filt_cls = self.class_map['ComputeCapabilitiesFilter']()
+ extra_specs = {'opt1': '= 123', 'opt2': '= 456'}
+ capabilities = {'enabled': True, 'opt1': '124', 'opt2': '4567'}
+ service = {'disabled': False}
+ filter_properties = {'instance_type': {'memory_mb': 1024,
+ 'extra_specs': extra_specs}}
+ host = fakes.FakeHostState('host1', 'compute',
+ {'free_ram_mb': 1024, 'capabilities': capabilities,
+ 'service': service})
+ self.assertTrue(filt_cls.host_passes(host, filter_properties))
+
+ def test_compute_filter_fails_extra_specs_with_op_eq3(self):
+ self._stub_service_is_up(True)
+ filt_cls = self.class_map['ComputeCapabilitiesFilter']()
+ extra_specs = {'opt1': '='}
+ capabilities = {'enabled': True, 'opt1': '124'}
+ service = {'disabled': False}
+ filter_properties = {'instance_type': {'memory_mb': 1024,
+ 'extra_specs': extra_specs}}
+ host = fakes.FakeHostState('host1', 'compute',
+ {'free_ram_mb': 1024, 'capabilities': capabilities,
+ 'service': service})
+ self.assertFalse(filt_cls.host_passes(host, filter_properties))
+
+ def test_compute_filter_fails_extra_specs_with_op_eq4(self):
+ self._stub_service_is_up(True)
+ filt_cls = self.class_map['ComputeCapabilitiesFilter']()
+ extra_specs = {'opt11': '= 124', 'opt12': '= 456'}
+ capabilities = {'enabled': True, 'opt3': '124', 'opt4': '456'}
+ service = {'disabled': False}
+ filter_properties = {'instance_type': {'memory_mb': 1024,
+ 'extra_specs': extra_specs}}
+ host = fakes.FakeHostState('host1', 'compute',
+ {'free_ram_mb': 1024, 'capabilities': capabilities,
+ 'service': service})
+ self.assertFalse(filt_cls.host_passes(host, filter_properties))
+
+ def test_compute_filter_passes_extra_specs_with_op_seq(self):
+ self._stub_service_is_up(True)
+ filt_cls = self.class_map['ComputeCapabilitiesFilter']()
+ extra_specs = {'opt1': 's== 123'}
+ capabilities = {'enabled': True, 'opt1': '123'}
+ service = {'disabled': False}
+ filter_properties = {'instance_type': {'memory_mb': 1024,
+ 'extra_specs': extra_specs}}
+ host = fakes.FakeHostState('host1', 'compute',
+ {'free_ram_mb': 1024, 'capabilities': capabilities,
+ 'service': service})
+ self.assertTrue(filt_cls.host_passes(host, filter_properties))
+
+ def test_compute_filter_fails_extra_specs_with_op_seq(self):
+ self._stub_service_is_up(True)
+ filt_cls = self.class_map['ComputeCapabilitiesFilter']()
+ extra_specs = {'opt2': 's== 234'}
+ capabilities = {'enabled': True, 'opt2': '2345'}
+ service = {'disabled': False}
+ filter_properties = {'instance_type': {'memory_mb': 1024,
+ 'extra_specs': extra_specs}}
+ host = fakes.FakeHostState('host1', 'compute',
+ {'free_ram_mb': 1024, 'capabilities': capabilities,
+ 'service': service})
+
+ self.assertFalse(filt_cls.host_passes(host, filter_properties))
+
+ def test_compute_filter_passes_extra_specs_with_op_sneq(self):
+ self._stub_service_is_up(True)
+ filt_cls = self.class_map['ComputeCapabilitiesFilter']()
+ extra_specs = {'opt1': 's!= 123'}
+ capabilities = {'enabled': True, 'opt1': '11'}
+ service = {'disabled': False}
+ filter_properties = {'instance_type': {'memory_mb': 1024,
+ 'extra_specs': extra_specs}}
+ host = fakes.FakeHostState('host1', 'compute',
+ {'free_ram_mb': 1024, 'capabilities': capabilities,
+ 'service': service})
+ self.assertTrue(filt_cls.host_passes(host, filter_properties))
+
+ def test_compute_filter_fails_extra_specs_with_op_sneq(self):
+ self._stub_service_is_up(True)
+ filt_cls = self.class_map['ComputeCapabilitiesFilter']()
+ extra_specs = {'opt2': 's!= 234'}
+ capabilities = {'enabled': True, 'opt2': '234'}
+ service = {'disabled': False}
+ filter_properties = {'instance_type': {'memory_mb': 1024,
+ 'extra_specs': extra_specs}}
+ host = fakes.FakeHostState('host1', 'compute',
+ {'free_ram_mb': 1024, 'capabilities': capabilities,
+ 'service': service})
+
+ self.assertFalse(filt_cls.host_passes(host, filter_properties))
+
+ def test_compute_filter_passes_extra_specs_with_op_sgle(self):
+ self._stub_service_is_up(True)
+ filt_cls = self.class_map['ComputeCapabilitiesFilter']()
+ extra_specs = {'opt1': 's<= 123', 'opt2': 's>= 43'}
+ capabilities = {'enabled': True, 'opt1': '11', 'opt2': '543'}
+ service = {'disabled': False}
+ filter_properties = {'instance_type': {'memory_mb': 1024,
+ 'extra_specs': extra_specs}}
+ host = fakes.FakeHostState('host1', 'compute',
+ {'free_ram_mb': 1024, 'capabilities': capabilities,
+ 'service': service})
+ self.assertTrue(filt_cls.host_passes(host, filter_properties))
+
+ def test_compute_filter_fails_extra_specs_with_op_sge(self):
+ self._stub_service_is_up(True)
+ filt_cls = self.class_map['ComputeCapabilitiesFilter']()
+ extra_specs = {'opt2': 's>= 234'}
+ capabilities = {'enabled': True, 'opt2': '1000'}
+ service = {'disabled': False}
+ filter_properties = {'instance_type': {'memory_mb': 1024,
+ 'extra_specs': extra_specs}}
+ host = fakes.FakeHostState('host1', 'compute',
+ {'free_ram_mb': 1024, 'capabilities': capabilities,
+ 'service': service})
+
+ self.assertFalse(filt_cls.host_passes(host, filter_properties))
+
+ def test_compute_filter_fails_extra_specs_with_op_sle(self):
+ self._stub_service_is_up(True)
+ filt_cls = self.class_map['ComputeCapabilitiesFilter']()
+ extra_specs = {'opt2': 's<= 1000'}
+ capabilities = {'enabled': True, 'opt2': '234'}
+ service = {'disabled': False}
+ filter_properties = {'instance_type': {'memory_mb': 1024,
+ 'extra_specs': extra_specs}}
+ host = fakes.FakeHostState('host1', 'compute',
+ {'free_ram_mb': 1024, 'capabilities': capabilities,
+ 'service': service})
+
+ self.assertFalse(filt_cls.host_passes(host, filter_properties))
+
+ def test_compute_filter_passes_extra_specs_with_op_sgl(self):
+ self._stub_service_is_up(True)
+ filt_cls = self.class_map['ComputeCapabilitiesFilter']()
+ extra_specs = {'opt1': 's< 123', 'opt2': 's> 43'}
+ capabilities = {'enabled': True, 'opt1': '11', 'opt2': '543'}
+ service = {'disabled': False}
+ filter_properties = {'instance_type': {'memory_mb': 1024,
+ 'extra_specs': extra_specs}}
+ host = fakes.FakeHostState('host1', 'compute',
+ {'free_ram_mb': 1024, 'capabilities': capabilities,
+ 'service': service})
+ self.assertTrue(filt_cls.host_passes(host, filter_properties))
+
+ def test_compute_filter_fails_extra_specs_with_op_sl(self):
+ self._stub_service_is_up(True)
+ filt_cls = self.class_map['ComputeCapabilitiesFilter']()
+ extra_specs = {'opt2': 's< 12'}
+ capabilities = {'enabled': True, 'opt2': '2'}
+ service = {'disabled': False}
+ filter_properties = {'instance_type': {'memory_mb': 1024,
+ 'extra_specs': extra_specs}}
+ host = fakes.FakeHostState('host1', 'compute',
+ {'free_ram_mb': 1024, 'capabilities': capabilities,
+ 'service': service})
+
+ self.assertFalse(filt_cls.host_passes(host, filter_properties))
+
+ def test_compute_filter_fails_extra_specs_with_op_sg(self):
+ self._stub_service_is_up(True)
+ filt_cls = self.class_map['ComputeCapabilitiesFilter']()
+ extra_specs = {'opt2': 's> 2'}
+ capabilities = {'enabled': True, 'opt2': '12'}
+ service = {'disabled': False}
+ filter_properties = {'instance_type': {'memory_mb': 1024,
+ 'extra_specs': extra_specs}}
+ host = fakes.FakeHostState('host1', 'compute',
+ {'free_ram_mb': 1024, 'capabilities': capabilities,
+ 'service': service})
+
+ self.assertFalse(filt_cls.host_passes(host, filter_properties))
+
+ def test_compute_filter_passes_extra_specs_with_op_in(self):
+ self._stub_service_is_up(True)
+ filt_cls = self.class_map['ComputeCapabilitiesFilter']()
+ extra_specs = {'opt1': '<in> 11'}
+ capabilities = {'enabled': True, 'opt1': '12311321'}
+ service = {'disabled': False}
+ filter_properties = {'instance_type': {'memory_mb': 1024,
+ 'extra_specs': extra_specs}}
+ host = fakes.FakeHostState('host1', 'compute',
+ {'free_ram_mb': 1024, 'capabilities': capabilities,
+ 'service': service})
+ self.assertTrue(filt_cls.host_passes(host, filter_properties))
+
+ def test_compute_filter_passes_extra_specs_with_op_in2(self):
+ self._stub_service_is_up(True)
+ filt_cls = self.class_map['ComputeCapabilitiesFilter']()
+ extra_specs = {'opt1': '<in> 12311321'}
+ capabilities = {'enabled': True, 'opt1': '12311321'}
+ service = {'disabled': False}
+ filter_properties = {'instance_type': {'memory_mb': 1024,
+ 'extra_specs': extra_specs}}
+ host = fakes.FakeHostState('host1', 'compute',
+ {'free_ram_mb': 1024, 'capabilities': capabilities,
+ 'service': service})
+ self.assertTrue(filt_cls.host_passes(host, filter_properties))
+
+ def test_compute_filter_fails_extra_specs_with_op_in(self):
+ self._stub_service_is_up(True)
+ filt_cls = self.class_map['ComputeCapabilitiesFilter']()
+ extra_specs = {'opt1': '<in> 11'}
+ capabilities = {'enabled': True, 'opt1': '12310321'}
+ service = {'disabled': False}
+ filter_properties = {'instance_type': {'memory_mb': 1024,
+ 'extra_specs': extra_specs}}
+ host = fakes.FakeHostState('host1', 'compute',
+ {'free_ram_mb': 1024, 'capabilities': capabilities,
+ 'service': service})
+
+ self.assertFalse(filt_cls.host_passes(host, filter_properties))
+
+ def test_compute_filter_passes_extra_specs_with_op_or(self):
+ self._stub_service_is_up(True)
+ filt_cls = self.class_map['ComputeCapabilitiesFilter']()
+ extra_specs = {'opt1': '<or> 11 <or> 12'}
+ capabilities = {'enabled': True, 'opt1': '12'}
+ service = {'disabled': False}
+ filter_properties = {'instance_type': {'memory_mb': 1024,
+ 'extra_specs': extra_specs}}
+ host = fakes.FakeHostState('host1', 'compute',
+ {'free_ram_mb': 1024, 'capabilities': capabilities,
+ 'service': service})
+ self.assertTrue(filt_cls.host_passes(host, filter_properties))
+
+ def test_compute_filter_fails_extra_specs_with_op_or(self):
+ self._stub_service_is_up(True)
+ filt_cls = self.class_map['ComputeCapabilitiesFilter']()
+ extra_specs = {'opt1': '<or> 11 <or> 12'}
+ capabilities = {'enabled': True, 'opt1': '13'}
+ service = {'disabled': False}
+ filter_properties = {'instance_type': {'memory_mb': 1024,
+ 'extra_specs': extra_specs}}
+ host = fakes.FakeHostState('host1', 'compute',
+ {'free_ram_mb': 1024, 'capabilities': capabilities,
+ 'service': service})
+
+ self.assertFalse(filt_cls.host_passes(host, filter_properties))
+
+ def test_compute_filter_passes_extra_specs_with_op_le(self):
+ self._stub_service_is_up(True)
+ filt_cls = self.class_map['ComputeCapabilitiesFilter']()
+ extra_specs = {'opt1': '<= 10', 'opt2': '<= 20'}
+ capabilities = {'enabled': True, 'opt1': 2, 'opt2': 2}
+ service = {'disabled': False}
+ filter_properties = {'instance_type': {'memory_mb': 1024,
+ 'extra_specs': extra_specs}}
+ host = fakes.FakeHostState('host1', 'compute',
+ {'free_ram_mb': 1024, 'capabilities': capabilities,
+ 'service': service})
+ self.assertTrue(filt_cls.host_passes(host, filter_properties))
+
+ def test_compute_filter_fails_extra_specs_with_op_le(self):
+ self._stub_service_is_up(True)
+ filt_cls = self.class_map['ComputeCapabilitiesFilter']()
+ extra_specs = {'opt1': '<= 2', 'opt2': '<= 2'}
+ capabilities = {'enabled': True, 'opt1': 1, 'opt2': 3}
+ service = {'disabled': False}
+ filter_properties = {'instance_type': {'memory_mb': 1024,
+ 'extra_specs': extra_specs}}
+ host = fakes.FakeHostState('host1', 'compute',
+ {'free_ram_mb': 1024, 'capabilities': capabilities,
+ 'service': service})
+
+ self.assertFalse(filt_cls.host_passes(host, filter_properties))
+
+ def test_compute_filter_passes_extra_specs_with_op_ge(self):
+ self._stub_service_is_up(True)
+ filt_cls = self.class_map['ComputeCapabilitiesFilter']()
+ extra_specs = {'opt1': '>= 1', 'opt2': '>= 2'}
+ capabilities = {'enabled': True, 'opt1': 2, 'opt2': 2}
+ service = {'disabled': False}
+ filter_properties = {'instance_type': {'memory_mb': 1024,
+ 'extra_specs': extra_specs}}
+ host = fakes.FakeHostState('host1', 'compute',
+ {'free_ram_mb': 1024, 'capabilities': capabilities,
+ 'service': service})
+ self.assertTrue(filt_cls.host_passes(host, filter_properties))
+
+ def test_compute_filter_fails_extra_specs_with_op_ge(self):
+ self._stub_service_is_up(True)
+ filt_cls = self.class_map['ComputeCapabilitiesFilter']()
+ extra_specs = {'opt1': '>= 2', 'opt2': '>= 2'}
capabilities = {'enabled': True, 'opt1': 1, 'opt2': 2}
service = {'disabled': False}
filter_properties = {'instance_type': {'memory_mb': 1024,