Example #1
0
 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']))
Example #2
0
 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']))
Example #3
0
    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
Example #4
0
    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