def test_mesos_get_heat_param(self):
        mesos_def = mesos_tdef.UbuntuMesosTemplateDefinition()

        heat_param = mesos_def.get_heat_param(cluster_attr='node_count')
        self.assertEqual('number_of_slaves', heat_param)

        heat_param = mesos_def.get_heat_param(cluster_attr='master_count')
        self.assertEqual('number_of_masters', heat_param)
Beispiel #2
0
    def test_mesos_get_params(self, mock_get_output, mock_get_params,
                              mock_osc_class):
        mock_context = mock.MagicMock()
        mock_context.auth_url = 'http://192.168.10.10:5000/v3'
        mock_context.user_name = 'mesos_user'
        mock_context.tenant = 'admin'
        mock_context.domain_name = 'domainname'
        mock_cluster_template = mock.MagicMock()
        mock_cluster_template.tls_disabled = False
        rexray_preempt = mock_cluster_template.labels.get('rexray_preempt')
        mesos_slave_isolation = mock_cluster_template.labels.get(
            'mesos_slave_isolation')
        mesos_slave_work_dir = mock_cluster_template.labels.get(
            'mesos_slave_work_dir')
        mesos_slave_image_providers = mock_cluster_template.labels.get(
            'image_providers')
        mesos_slave_executor_env_variables = mock_cluster_template.labels.get(
            'mesos_slave_executor_env_variables')
        mock_cluster = mock.MagicMock()
        mock_cluster.uuid = '5d12f6fd-a196-4bf0-ae4c-1f639a523a52'
        del mock_cluster.stack_id
        mock_osc = mock.MagicMock()
        mock_osc.cinder_region_name.return_value = 'RegionOne'
        mock_osc_class.return_value = mock_osc

        removal_nodes = ['node1', 'node2']
        mock_scale_manager = mock.MagicMock()
        mock_scale_manager.get_removal_nodes.return_value = removal_nodes

        mesos_def = mesos_tdef.UbuntuMesosTemplateDefinition()

        mesos_def.get_params(mock_context,
                             mock_cluster_template,
                             mock_cluster,
                             scale_manager=mock_scale_manager)

        expected_kwargs = {
            'extra_params': {
                'region_name': mock_osc.cinder_region_name.return_value,
                'auth_url': 'http://192.168.10.10:5000/v3',
                'username': '******',
                'tenant_name': 'admin',
                'domain_name': 'domainname',
                'rexray_preempt': rexray_preempt,
                'mesos_slave_isolation': mesos_slave_isolation,
                'mesos_slave_work_dir': mesos_slave_work_dir,
                'mesos_slave_executor_env_variables':
                mesos_slave_executor_env_variables,
                'mesos_slave_image_providers': mesos_slave_image_providers,
                'slaves_to_remove': removal_nodes
            }
        }
        mock_get_params.assert_called_once_with(mock_context,
                                                mock_cluster_template,
                                                mock_cluster,
                                                **expected_kwargs)
Beispiel #3
0
    def test_update_outputs(self):
        mesos_def = mesos_tdef.UbuntuMesosTemplateDefinition()

        expected_api_address = 'updated_address'
        expected_node_addresses = ['ex_slave', 'address']
        expected_master_addresses = ['ex_master', 'address']

        outputs = [
            {
                "output_value": expected_api_address,
                "description": "No description given",
                "output_key": "api_address"
            },
            {
                "output_value": ['any', 'output'],
                "description": "No description given",
                "output_key": "mesos_master_private"
            },
            {
                "output_value": expected_master_addresses,
                "description": "No description given",
                "output_key": "mesos_master"
            },
            {
                "output_value": ['any', 'output'],
                "description": "No description given",
                "output_key": "mesos_slaves_private"
            },
            {
                "output_value": expected_node_addresses,
                "description": "No description given",
                "output_key": "mesos_slaves"
            },
        ]
        mock_stack = mock.MagicMock()
        mock_stack.to_dict.return_value = {'outputs': outputs}
        mock_cluster = mock.MagicMock()
        mock_cluster_template = mock.MagicMock()

        mesos_def.update_outputs(mock_stack, mock_cluster_template,
                                 mock_cluster)

        self.assertEqual(expected_api_address, mock_cluster.api_address)
        self.assertEqual(expected_node_addresses, mock_cluster.node_addresses)
        self.assertEqual(expected_master_addresses,
                         mock_cluster.master_addresses)
Beispiel #4
0
 def get_template_definition(self):
     return template_def.UbuntuMesosTemplateDefinition()