Esempio n. 1
0
    def test_run_environment_does_not_exist(self):
        self.mistral.environments.get.side_effect = mistral_base.APIException

        action = plan.ExportPlanAction(self.plan, self.delete_after,
                                       self.exports_container)
        result = action.run()

        error = "The Mistral environment %s could not be found." % self.plan
        self.assertEqual(error, result.error)
Esempio n. 2
0
    def test_run_error_creating_tarball(self, mock_create_tarball):
        mock_create_tarball.side_effect = processutils.ProcessExecutionError

        action = plan.ExportPlanAction(self.plan, self.delete_after,
                                       self.exports_container)
        result = action.run()

        error = "Error while creating a tarball"
        self.assertIn(error, result.error)
Esempio n. 3
0
    def test_run_container_does_not_exist(self):
        self.swift.get_container.side_effect = swiftexceptions.ClientException(
            self.plan)

        action = plan.ExportPlanAction(self.plan, self.delete_after,
                                       self.exports_container)
        result = action.run()

        error = "Error attempting an operation on container: %s" % self.plan
        self.assertIn(error, result.error)
Esempio n. 4
0
    def test_run_error_creating_tarball(self,
                                        mock_create_tarball,
                                        mock_get_obj_service):

        mock_create_tarball.side_effect = processutils.ProcessExecutionError

        swift_service = mock.MagicMock()
        swift_service.delete.return_value = ([
            {'success': True},
        ])
        mock_get_obj_service.return_value = swift_service

        action = plan.ExportPlanAction(self.plan, self.delete_after,
                                       self.exports_container)
        result = action.run(self.ctx)

        error = "Error while creating a tarball"
        self.assertIn(error, result.error)
Esempio n. 5
0
    def test_run_container_does_not_exist(self,
                                          mock_get_obj_service):

        self.swift.get_container.side_effect = swiftexceptions.ClientException(
            self.plan)

        swift_service = mock.MagicMock()
        swift_service.delete.return_value = ([
            {'success': True},
        ])
        mock_get_obj_service.return_value = swift_service

        action = plan.ExportPlanAction(self.plan, self.delete_after,
                                       self.exports_container)
        result = action.run(self.ctx)

        error = "Error attempting an operation on container: %s" % self.plan
        self.assertIn(error, result.error)
Esempio n. 6
0
    def test_run_success(self, mock_create_tarball):
        get_object_mock_calls = [
            mock.call(self.plan, tf) for tf in self.template_files
        ]
        get_container_mock_calls = [
            mock.call(self.plan),
            mock.call('plan-exports')
        ]

        action = plan.ExportPlanAction(self.plan, self.delete_after,
                                       self.exports_container)
        action.run(self.ctx)

        self.swift.get_container.assert_has_calls(get_container_mock_calls)
        self.swift.get_object.assert_has_calls(get_object_mock_calls,
                                               any_order=True)
        self.swift.put_object.assert_called_once()
        mock_create_tarball.assert_called_once()
def export_deployment_plan(clients, plan_name):

    export_container = "plan-exports"
    delete_after = 3600

    mistral_context = clients.tripleoclient.create_mistral_context()
    action = plan.ExportPlanAction(plan_name,
                                   delete_after=delete_after,
                                   exports_container=export_container)
    result = action.run(mistral_context)
    if result:
        raise exceptions.WorkflowServiceError(
            'Exception exporting plan: {}'.format(result.error))

    url = swiftutils.get_temp_url(clients.tripleoclient.object_store,
                                  container=export_container,
                                  object_name="{}.tar.gz".format(plan_name))
    print(url)
    return url
Esempio n. 8
0
    def test_run_success(self, mock_mkdtemp, mock_create_tarball):
        get_object_mock_calls = [
            mock.call(self.plan, tf) for tf in self.template_files
        ]
        get_container_mock_calls = [
            mock.call(self.plan),
            mock.call('plan-exports')
        ]
        mock_mkdtemp.return_value = '/tmp/test123'

        action = plan.ExportPlanAction(self.plan, self.delete_after,
                                       self.exports_container)
        action.run()

        self.swift.get_container.assert_has_calls(get_container_mock_calls)
        self.swift.get_object.assert_has_calls(get_object_mock_calls,
                                               any_order=True)
        self.mistral.environments.get.assert_called_once_with(self.plan)
        self.swift.put_object.assert_called_once()
        mock_create_tarball.assert_called_once()
Esempio n. 9
0
    def test_run_success(self, mock_create_tarball, mock_get_obj_service):

        get_object_mock_calls = [
            mock.call(self.plan, tf) for tf in self.template_files
        ]

        swift_service = mock.MagicMock()
        swift_service.upload.return_value = ([
            {
                'success': True
            },
        ])
        mock_get_obj_service.return_value = swift_service

        action = plan.ExportPlanAction(self.plan, self.delete_after,
                                       self.exports_container)
        action.run(self.ctx)

        self.swift.get_container.assert_called_once_with(self.plan)
        self.swift.get_object.assert_has_calls(get_object_mock_calls,
                                               any_order=True)
        swift_service.upload.assert_called_once()
        mock_create_tarball.assert_called_once()