def test_group_anti_affinity_filter_allows_instance_to_same_host(self): fake_uuid = uuids.fake mock_instance = objects.Instance(uuid=fake_uuid) host_state = fakes.FakeHostState('host1', 'node1', {}, instances=[mock_instance]) spec_obj = objects.RequestSpec(instance_group=objects.InstanceGroup( policy='anti-affinity', hosts=['host1', 'host2'], members=[]), instance_uuid=mock_instance.uuid) self.assertTrue(affinity_filter.ServerGroupAntiAffinityFilter(). host_passes(host_state, spec_obj))
def _test_group_anti_affinity_filter_with_rules(self, rules, members): filt_cls = affinity_filter.ServerGroupAntiAffinityFilter() inst1 = objects.Instance(uuid=uuids.inst1) inst2 = objects.Instance(uuid=uuids.inst2) spec_obj = objects.RequestSpec( instance_group=objects.InstanceGroup(policy='anti-affinity', hosts=['host1'], members=members, rules=rules), instance_uuid=uuids.fake) # 2 instances on same host host_wit_2_inst = fakes.FakeHostState( 'host1', 'node1', {}, instances=[inst1, inst2]) return filt_cls.host_passes(host_wit_2_inst, spec_obj)
def test_group_anti_affinity_filter_fails(self): self._test_group_anti_affinity_filter_fails( affinity_filter.ServerGroupAntiAffinityFilter(), 'anti-affinity')