예제 #1
0
 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))
예제 #2
0
 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)
예제 #3
0
 def test_group_anti_affinity_filter_fails(self):
     self._test_group_anti_affinity_filter_fails(
             affinity_filter.ServerGroupAntiAffinityFilter(),
             'anti-affinity')