def test_instance_uuids_overlap(self): inst1 = objects.Instance(uuid='aa') inst2 = objects.Instance(uuid='bb') instances = [inst1, inst2] host_state = fakes.FakeHostState('host1', 'node1', {}) host_state.instances = {instance.uuid: instance for instance in instances} self.assertTrue(utils.instance_uuids_overlap(host_state, ['aa'])) self.assertFalse(utils.instance_uuids_overlap(host_state, ['zz']))
def test_instance_uuids_overlap(self): inst1 = objects.Instance(uuid='aa') inst2 = objects.Instance(uuid='bb') instances = [inst1, inst2] host_state = fakes.FakeHostState('host1', 'node1', {}) host_state.instances = { instance.uuid: instance for instance in instances } self.assertTrue(utils.instance_uuids_overlap(host_state, ['aa'])) self.assertFalse(utils.instance_uuids_overlap(host_state, ['zz']))
def host_passes(self, host_state, filter_properties): scheduler_hints = filter_properties.get('scheduler_hints') or {} affinity_uuids = scheduler_hints.get('same_host', []) if affinity_uuids and host_state.instances: overlap = utils.instance_uuids_overlap(host_state, affinity_uuids) return overlap # With no same_host key or no instances return True
def host_passes(self, host_state, filter_properties): scheduler_hints = filter_properties.get('scheduler_hints') or {} affinity_uuids = scheduler_hints.get('different_host', []) if affinity_uuids: overlap = utils.instance_uuids_overlap(host_state, affinity_uuids) return not overlap # With no different_host key return True