예제 #1
0
def config_download_export(clients, plan, config_type):
    """Export a given config.

    :param clients: application client object.
    :type clients: Object

    :param plan: Plan name.
    :type plan: String

    :param config_type: List of config type options.
    :type config_type: List

    :returns: string
    """

    context = clients.tripleoclient.create_mistral_context()
    container_config = '{}-config'.format(plan)
    config.GetOvercloudConfig(
        container=plan,
        config_type=config_type,
        container_config=container_config).run(context=context)
    print('Config Download export complete for {}. Creating temp URL.'.format(
        plan))

    return swift_utils.get_temp_url(
        clients.tripleoclient.object_store,
        container=container_config,
        object_name='{}.tar.gz'.format(container_config))
예제 #2
0
    def test_run(self, mock_create_tarball,
                 mock_config,
                 mock_orchestration_client,
                 mock_swift_download,
                 mock_swift_delete):
        heat = mock.MagicMock()
        heat.stacks.get.return_value = mock.MagicMock(
            stack_name='stack', id='stack_id')
        mock_orchestration_client.return_value = heat
        mock_config.return_value = '/tmp/fake-path'

        action = config.GetOvercloudConfig(self.plan, '/tmp/fake-path',
                                           self.config_container)
        action.run(self.ctx)

        mock_swift_download.assert_called_once_with(self.swift,
                                                    self.config_container,
                                                    '/tmp/fake-path')
        mock_swift_delete.assert_called_once_with(self.swift,
                                                  self.config_container)
        self.assertEqual(2, self.swift.put_object.call_count)
        self.assertEqual(mock.call(
            'config-overcloud', 'config-overcloud.tar.gz',
            self.swift.put_object.call_args_list[1][0][2]),  # closed file call
            self.swift.put_object.call_args_list[1])
        mock_create_tarball.assert_called_once()
        self.assertEqual(dict(excludes=['.tox', '*.pyc', '*.pyo']),
                         mock_create_tarball.call_args[1])
예제 #3
0
    def test_run(self, mock_create_tarball, mock_config,
                 mock_orchestration_client):
        heat = mock.MagicMock()
        heat.stacks.get.return_value = mock.MagicMock(stack_name='stack',
                                                      id='stack_id')
        mock_orchestration_client.return_value = heat
        mock_config.return_value = '/tmp/fake-path'

        action = config.GetOvercloudConfig(self.plan, '/tmp',
                                           self.config_container)
        action.run(self.ctx)

        self.swift.put_object.assert_called_once()
        mock_create_tarball.assert_called_once()