def test_setup_instance_group_in_request_spec(self, mock_ggd): metadetails = { "wrs-sg:best_effort": "true", "wrs-sg:group_size": "2", "wrs-sg:group_exceed": "0" } mock_ggd.return_value = scheduler_utils.GroupDetails( hosts=set(['hostA', 'hostB']), policies=['policy'], members=['instance1'], metadetails=metadetails, name='pele') spec = objects.RequestSpec(instance_uuid=uuids.instance) spec.instance_group = objects.InstanceGroup(hosts=['hostC']) spec.num_instances = 1 spec.min_num_instances = 1 scheduler_utils.setup_instance_group(self.context, spec) mock_ggd.assert_called_once_with(self.context, uuids.instance, spec, user_group_hosts=['hostC']) # Given it returns a list from a set, make sure it's sorted. self.assertEqual(['hostA', 'hostB'], sorted(spec.instance_group.hosts)) self.assertEqual(['policy'], spec.instance_group.policies) self.assertEqual(['instance1'], spec.instance_group.members) self.assertEqual(metadetails, spec.instance_group.metadetails) self.assertEqual('pele', spec.instance_group.name)
def test_setup_instance_group_in_filter_properties(self, mock_ggd): mock_ggd.return_value = scheduler_utils.GroupDetails( hosts=set(['hostA', 'hostB']), policies=['policy']) spec = {'instance_properties': {'uuid': 'fake-uuid'}} filter_props = {'group_hosts': ['hostC']} scheduler_utils.setup_instance_group(self.context, spec, filter_props) mock_ggd.assert_called_once_with(self.context, 'fake-uuid', ['hostC']) expected_filter_props = {'group_updated': True, 'group_hosts': set(['hostA', 'hostB']), 'group_policies': ['policy']} self.assertEqual(expected_filter_props, filter_props)
def test_setup_instance_group_in_request_spec(self, mock_ggd): mock_ggd.return_value = scheduler_utils.GroupDetails( hosts=set(['hostA', 'hostB']), policies=['policy'], members=['instance1']) spec = objects.RequestSpec(instance_uuid=uuids.instance) spec.instance_group = objects.InstanceGroup(hosts=['hostC']) scheduler_utils.setup_instance_group(self.context, spec) mock_ggd.assert_called_once_with(self.context, uuids.instance, ['hostC']) # Given it returns a list from a set, make sure it's sorted. self.assertEqual(['hostA', 'hostB'], sorted(spec.instance_group.hosts)) self.assertEqual(['policy'], spec.instance_group.policies) self.assertEqual(['instance1'], spec.instance_group.members)