diff --git a/nova/tests/scheduler/test_host_filters.py b/nova/tests/scheduler/test_host_filters.py index 99785cb0b423..293f8cdc10fb 100644 --- a/nova/tests/scheduler/test_host_filters.py +++ b/nova/tests/scheduler/test_host_filters.py @@ -443,11 +443,9 @@ class HostFiltersTestCase(test.NoDBTestCase): self._stub_service_is_up(True) filt_cls = self.class_map['ComputeFilter']() filter_properties = {'instance_type': {'memory_mb': 1024}} - capabilities = {'enabled': True} service = {'disabled': False} host = fakes.FakeHostState('host1', 'node1', - {'free_ram_mb': 1024, 'capabilities': capabilities, - 'service': service}) + {'free_ram_mb': 1024, 'service': service}) self.assertTrue(filt_cls.host_passes(host, filter_properties)) def test_type_filter(self): @@ -459,11 +457,9 @@ class HostFiltersTestCase(test.NoDBTestCase): filter2_properties = {'context': self.context, 'instance_type': {'id': 2}} - capabilities = {'enabled': True} service = {'disabled': False} host = fakes.FakeHostState('fake_host', 'fake_node', - {'capabilities': capabilities, - 'service': service}) + {'service': service}) #True since empty self.assertTrue(filt_cls.host_passes(host, filter_properties)) fakes.FakeInstance(context=self.context, @@ -485,11 +481,9 @@ class HostFiltersTestCase(test.NoDBTestCase): 'instance_type': {'name': 'fake1'}} filter2_properties = {'context': self.context, 'instance_type': {'name': 'fake2'}} - capabilities = {'enabled': True} service = {'disabled': False} host = fakes.FakeHostState('fake_host', 'fake_node', - {'capabilities': capabilities, - 'service': service}) + {'service': service}) #True since no aggregates self.assertTrue(filt_cls.host_passes(host, filter_properties)) #True since type matches aggregate, metadata @@ -504,11 +498,10 @@ class HostFiltersTestCase(test.NoDBTestCase): filt_cls = self.class_map['RamFilter']() self.flags(ram_allocation_ratio=1.0) filter_properties = {'instance_type': {'memory_mb': 1024}} - capabilities = {'enabled': True} service = {'disabled': False} host = fakes.FakeHostState('host1', 'node1', {'free_ram_mb': 1023, 'total_usable_ram_mb': 1024, - 'capabilities': capabilities, 'service': service}) + 'service': service}) self.assertFalse(filt_cls.host_passes(host, filter_properties)) def test_ram_filter_passes(self): @@ -516,11 +509,10 @@ class HostFiltersTestCase(test.NoDBTestCase): filt_cls = self.class_map['RamFilter']() self.flags(ram_allocation_ratio=1.0) filter_properties = {'instance_type': {'memory_mb': 1024}} - capabilities = {'enabled': True} service = {'disabled': False} host = fakes.FakeHostState('host1', 'node1', {'free_ram_mb': 1024, 'total_usable_ram_mb': 1024, - 'capabilities': capabilities, 'service': service}) + 'service': service}) self.assertTrue(filt_cls.host_passes(host, filter_properties)) def test_ram_filter_oversubscribe(self): @@ -528,11 +520,10 @@ class HostFiltersTestCase(test.NoDBTestCase): filt_cls = self.class_map['RamFilter']() self.flags(ram_allocation_ratio=2.0) filter_properties = {'instance_type': {'memory_mb': 1024}} - capabilities = {'enabled': True} service = {'disabled': False} host = fakes.FakeHostState('host1', 'node1', {'free_ram_mb': -1024, 'total_usable_ram_mb': 2048, - 'capabilities': capabilities, 'service': service}) + 'service': service}) self.assertTrue(filt_cls.host_passes(host, filter_properties)) self.assertEqual(2048 * 2.0, host.limits['memory_mb']) @@ -542,11 +533,10 @@ class HostFiltersTestCase(test.NoDBTestCase): self.flags(ram_allocation_ratio=1.0) filter_properties = {'context': self.context, 'instance_type': {'memory_mb': 1024}} - capabilities = {'enabled': True} service = {'disabled': False} host = fakes.FakeHostState('host1', 'node1', {'free_ram_mb': 1024, 'total_usable_ram_mb': 1024, - 'capabilities': capabilities, 'service': service}) + 'service': service}) self._create_aggregate_with_host(name='fake_aggregate', hosts=['host1'], metadata={'ram_allocation_ratio': 'XXX'}) @@ -559,11 +549,10 @@ class HostFiltersTestCase(test.NoDBTestCase): self.flags(ram_allocation_ratio=1.0) filter_properties = {'context': self.context, 'instance_type': {'memory_mb': 1024}} - capabilities = {'enabled': True} service = {'disabled': False} host = fakes.FakeHostState('host1', 'node1', {'free_ram_mb': 1023, 'total_usable_ram_mb': 1024, - 'capabilities': capabilities, 'service': service}) + 'service': service}) # False: fallback to default flag w/o aggregates self.assertFalse(filt_cls.host_passes(host, filter_properties)) self._create_aggregate_with_host(name='fake_aggregate', @@ -579,11 +568,10 @@ class HostFiltersTestCase(test.NoDBTestCase): self.flags(ram_allocation_ratio=1.0) filter_properties = {'context': self.context, 'instance_type': {'memory_mb': 1024}} - capabilities = {'enabled': True} service = {'disabled': False} host = fakes.FakeHostState('host1', 'node1', {'free_ram_mb': 1023, 'total_usable_ram_mb': 1024, - 'capabilities': capabilities, 'service': service}) + 'service': service}) self._create_aggregate_with_host(name='fake_aggregate1', hosts=['host1'], metadata={'ram_allocation_ratio': '1.5'}) @@ -600,11 +588,10 @@ class HostFiltersTestCase(test.NoDBTestCase): self.flags(disk_allocation_ratio=1.0) filter_properties = {'instance_type': {'root_gb': 1, 'ephemeral_gb': 1}} - capabilities = {'enabled': True} service = {'disabled': False} host = fakes.FakeHostState('host1', 'node1', {'free_disk_mb': 11 * 1024, 'total_usable_disk_gb': 13, - 'capabilities': capabilities, 'service': service}) + 'service': service}) self.assertTrue(filt_cls.host_passes(host, filter_properties)) def test_disk_filter_fails(self): @@ -613,11 +600,10 @@ class HostFiltersTestCase(test.NoDBTestCase): self.flags(disk_allocation_ratio=1.0) filter_properties = {'instance_type': {'root_gb': 11, 'ephemeral_gb': 1}} - capabilities = {'enabled': True} service = {'disabled': False} host = fakes.FakeHostState('host1', 'node1', {'free_disk_mb': 11 * 1024, 'total_usable_disk_gb': 13, - 'capabilities': capabilities, 'service': service}) + 'service': service}) self.assertFalse(filt_cls.host_passes(host, filter_properties)) def test_disk_filter_oversubscribe(self): @@ -626,12 +612,11 @@ class HostFiltersTestCase(test.NoDBTestCase): self.flags(disk_allocation_ratio=10.0) filter_properties = {'instance_type': {'root_gb': 100, 'ephemeral_gb': 19}} - capabilities = {'enabled': True} service = {'disabled': False} # 1GB used... so 119GB allowed... host = fakes.FakeHostState('host1', 'node1', {'free_disk_mb': 11 * 1024, 'total_usable_disk_gb': 12, - 'capabilities': capabilities, 'service': service}) + 'service': service}) self.assertTrue(filt_cls.host_passes(host, filter_properties)) self.assertEqual(12 * 10.0, host.limits['disk_gb']) @@ -641,34 +626,29 @@ class HostFiltersTestCase(test.NoDBTestCase): self.flags(disk_allocation_ratio=10.0) filter_properties = {'instance_type': {'root_gb': 100, 'ephemeral_gb': 20}} - capabilities = {'enabled': True} service = {'disabled': False} # 1GB used... so 119GB allowed... host = fakes.FakeHostState('host1', 'node1', {'free_disk_mb': 11 * 1024, 'total_usable_disk_gb': 12, - 'capabilities': capabilities, 'service': service}) + 'service': service}) self.assertFalse(filt_cls.host_passes(host, filter_properties)) def test_compute_filter_fails_on_service_disabled(self): self._stub_service_is_up(True) filt_cls = self.class_map['ComputeFilter']() filter_properties = {'instance_type': {'memory_mb': 1024}} - capabilities = {'enabled': True} service = {'disabled': True} host = fakes.FakeHostState('host1', 'node1', - {'free_ram_mb': 1024, 'capabilities': capabilities, - 'service': service}) + {'free_ram_mb': 1024, 'service': service}) self.assertFalse(filt_cls.host_passes(host, filter_properties)) def test_compute_filter_fails_on_service_down(self): self._stub_service_is_up(False) filt_cls = self.class_map['ComputeFilter']() filter_properties = {'instance_type': {'memory_mb': 1024}} - capabilities = {'enabled': True} service = {'disabled': False} host = fakes.FakeHostState('host1', 'node1', - {'free_ram_mb': 1024, 'capabilities': capabilities, - 'service': service}) + {'free_ram_mb': 1024, 'service': service}) self.assertFalse(filt_cls.host_passes(host, filter_properties)) def test_image_properties_filter_passes_same_inst_props(self): @@ -678,8 +658,7 @@ class HostFiltersTestCase(test.NoDBTestCase): 'hypervisor_type': 'kvm', 'vm_mode': 'hvm'}} filter_properties = {'request_spec': {'image': img_props}} - capabilities = {'enabled': True, - 'supported_instances': [ + capabilities = {'supported_instances': [ ('x86_64', 'kvm', 'hvm')]} host = fakes.FakeHostState('host1', 'node1', {'capabilities': capabilities}) @@ -692,8 +671,7 @@ class HostFiltersTestCase(test.NoDBTestCase): 'hypervisor_type': 'qemu', 'vm_mode': 'hvm'}} filter_properties = {'request_spec': {'image': img_props}} - capabilities = {'enabled': True, - 'supported_instances': [ + capabilities = {'supported_instances': [ ('x86_64', 'kvm', 'hvm')]} host = fakes.FakeHostState('host1', 'node1', {'capabilities': capabilities}) @@ -705,8 +683,7 @@ class HostFiltersTestCase(test.NoDBTestCase): img_props = {'properties': {'architecture': 'x86_64', 'vm_mode': 'hvm'}} filter_properties = {'request_spec': {'image': img_props}} - capabilities = {'enabled': True, - 'supported_instances': [ + capabilities = {'supported_instances': [ ('x86_64', 'kvm', 'hvm')]} host = fakes.FakeHostState('host1', 'node1', {'capabilities': capabilities}) @@ -718,8 +695,7 @@ class HostFiltersTestCase(test.NoDBTestCase): img_props = {'properties': {'architecture': 'x86_64', 'vm_mode': 'hvm'}} filter_properties = {'request_spec': {'image': img_props}} - capabilities = {'enabled': True, - 'supported_instances': [ + capabilities = {'supported_instances': [ ('x86_64', 'xen', 'xen')]} host = fakes.FakeHostState('host1', 'node1', {'capabilities': capabilities}) @@ -729,8 +705,7 @@ class HostFiltersTestCase(test.NoDBTestCase): self._stub_service_is_up(True) filt_cls = self.class_map['ImagePropertiesFilter']() filter_properties = {'request_spec': {}} - capabilities = {'enabled': True, - 'supported_instances': [ + capabilities = {'supported_instances': [ ('x86_64', 'kvm', 'hvm')]} host = fakes.FakeHostState('host1', 'node1', {'capabilities': capabilities}) @@ -743,9 +718,7 @@ class HostFiltersTestCase(test.NoDBTestCase): 'hypervisor_type': 'kvm', 'vm_mode': 'hvm'}} filter_properties = {'request_spec': {'image': img_props}} - capabilities = {'enabled': True} - host = fakes.FakeHostState('host1', 'node1', - {'capabilities': capabilities}) + host = fakes.FakeHostState('host1', 'node1', {}) self.assertFalse(filt_cls.host_passes(host, filter_properties)) def _do_test_compute_filter_extra_specs(self, ecaps, especs, passes): @@ -754,7 +727,7 @@ class HostFiltersTestCase(test.NoDBTestCase): """ self._stub_service_is_up(True) filt_cls = self.class_map['ComputeCapabilitiesFilter']() - capabilities = {'enabled': True} + capabilities = {} capabilities.update(ecaps) service = {'disabled': False} filter_properties = {'instance_type': {'memory_mb': 1024, @@ -808,7 +781,7 @@ class HostFiltersTestCase(test.NoDBTestCase): def test_aggregate_filter_passes_no_extra_specs(self): self._stub_service_is_up(True) filt_cls = self.class_map['AggregateInstanceExtraSpecsFilter']() - capabilities = {'enabled': True, 'opt1': 1, 'opt2': 2} + capabilities = {'opt1': 1, 'opt2': 2} filter_properties = {'context': self.context, 'instance_type': {'memory_mb': 1024}} @@ -944,11 +917,9 @@ class HostFiltersTestCase(test.NoDBTestCase): 'root_gb': 200, 'ephemeral_gb': 0}, 'scheduler_hints': {'query': self.json_query}} - capabilities = {'enabled': True} host = fakes.FakeHostState('host1', 'node1', {'free_ram_mb': 1024, - 'free_disk_mb': 200 * 1024, - 'capabilities': capabilities}) + 'free_disk_mb': 200 * 1024}) self.assertTrue(filt_cls.host_passes(host, filter_properties)) def test_json_filter_passes_with_no_query(self): @@ -956,11 +927,9 @@ class HostFiltersTestCase(test.NoDBTestCase): filter_properties = {'instance_type': {'memory_mb': 1024, 'root_gb': 200, 'ephemeral_gb': 0}} - capabilities = {'enabled': True} host = fakes.FakeHostState('host1', 'node1', {'free_ram_mb': 0, - 'free_disk_mb': 0, - 'capabilities': capabilities}) + 'free_disk_mb': 0}) self.assertTrue(filt_cls.host_passes(host, filter_properties)) def test_json_filter_fails_on_memory(self): @@ -969,11 +938,9 @@ class HostFiltersTestCase(test.NoDBTestCase): 'root_gb': 200, 'ephemeral_gb': 0}, 'scheduler_hints': {'query': self.json_query}} - capabilities = {'enabled': True} host = fakes.FakeHostState('host1', 'node1', {'free_ram_mb': 1023, - 'free_disk_mb': 200 * 1024, - 'capabilities': capabilities}) + 'free_disk_mb': 200 * 1024}) self.assertFalse(filt_cls.host_passes(host, filter_properties)) def test_json_filter_fails_on_disk(self): @@ -982,28 +949,9 @@ class HostFiltersTestCase(test.NoDBTestCase): 'root_gb': 200, 'ephemeral_gb': 0}, 'scheduler_hints': {'query': self.json_query}} - capabilities = {'enabled': True} host = fakes.FakeHostState('host1', 'node1', {'free_ram_mb': 1024, - 'free_disk_mb': (200 * 1024) - 1, - 'capabilities': capabilities}) - self.assertFalse(filt_cls.host_passes(host, filter_properties)) - - def test_json_filter_fails_on_caps_disabled(self): - filt_cls = self.class_map['JsonFilter']() - json_query = jsonutils.dumps( - ['and', ['>=', '$free_ram_mb', 1024], - ['>=', '$free_disk_mb', 200 * 1024], - '$capabilities.enabled']) - filter_properties = {'instance_type': {'memory_mb': 1024, - 'root_gb': 200, - 'ephemeral_gb': 0}, - 'scheduler_hints': {'query': json_query}} - capabilities = {'enabled': False} - host = fakes.FakeHostState('host1', 'node1', - {'free_ram_mb': 1024, - 'free_disk_mb': 200 * 1024, - 'capabilities': capabilities}) + 'free_disk_mb': (200 * 1024) - 1}) self.assertFalse(filt_cls.host_passes(host, filter_properties)) def test_json_filter_fails_on_service_disabled(self): @@ -1015,11 +963,9 @@ class HostFiltersTestCase(test.NoDBTestCase): filter_properties = {'instance_type': {'memory_mb': 1024, 'local_gb': 200}, 'scheduler_hints': {'query': json_query}} - capabilities = {'enabled': True} host = fakes.FakeHostState('host1', 'node1', {'free_ram_mb': 1024, - 'free_disk_mb': 200 * 1024, - 'capabilities': capabilities}) + 'free_disk_mb': 200 * 1024}) self.assertFalse(filt_cls.host_passes(host, filter_properties)) def test_json_filter_happy_day(self): @@ -1042,7 +988,7 @@ class HostFiltersTestCase(test.NoDBTestCase): } # Passes - capabilities = {'enabled': True, 'opt1': 'match'} + capabilities = {'opt1': 'match'} service = {'disabled': False} host = fakes.FakeHostState('host1', 'node1', {'free_ram_mb': 10, @@ -1052,7 +998,7 @@ class HostFiltersTestCase(test.NoDBTestCase): self.assertTrue(filt_cls.host_passes(host, filter_properties)) # Passes - capabilities = {'enabled': True, 'opt1': 'match'} + capabilities = {'opt1': 'match'} service = {'disabled': False} host = fakes.FakeHostState('host1', 'node1', {'free_ram_mb': 40, @@ -1104,7 +1050,7 @@ class HostFiltersTestCase(test.NoDBTestCase): def test_json_filter_basic_operators(self): filt_cls = self.class_map['JsonFilter']() host = fakes.FakeHostState('host1', 'node1', - {'capabilities': {'enabled': True}}) + {}) # (operator, arguments, expected_result) ops_to_test = [ ['=', [1, 1], True], @@ -1173,14 +1119,14 @@ class HostFiltersTestCase(test.NoDBTestCase): }, } host = fakes.FakeHostState('host1', 'node1', - {'capabilities': {'enabled': True}}) + {}) self.assertRaises(KeyError, filt_cls.host_passes, host, filter_properties) def test_json_filter_empty_filters_pass(self): filt_cls = self.class_map['JsonFilter']() host = fakes.FakeHostState('host1', 'node1', - {'capabilities': {'enabled': True}}) + {}) raw = [] filter_properties = { @@ -1200,7 +1146,7 @@ class HostFiltersTestCase(test.NoDBTestCase): def test_json_filter_invalid_num_arguments_fails(self): filt_cls = self.class_map['JsonFilter']() host = fakes.FakeHostState('host1', 'node1', - {'capabilities': {'enabled': True}}) + {}) raw = ['>', ['and', ['or', ['not', ['<', ['>=', ['<=', ['in', ]]]]]]]] filter_properties = { @@ -1221,7 +1167,7 @@ class HostFiltersTestCase(test.NoDBTestCase): def test_json_filter_unknown_variable_ignored(self): filt_cls = self.class_map['JsonFilter']() host = fakes.FakeHostState('host1', 'node1', - {'capabilities': {'enabled': True}}) + {}) raw = ['=', '$........', 1, 1] filter_properties = {