コード例 #1
0
ファイル: converters.py プロジェクト: hcyg/ggrc-core
def handle_export_stop(**kwargs):
    """Handle export stop"""
    try:
        ie_job = import_export.get(kwargs["id2"])
        if ie_job.status == "In Progress":
            ie_job.status = "Stopped"
            # Stop tasks only on non local instance
            if getattr(settings, "APPENGINE_INSTANCE", "local") != "local":
                stop_ie_bg_tasks(ie_job)
            db.session.commit()
            expire_ie_cache(ie_job)
            return make_import_export_response(ie_job.log_json())
        if ie_job.status == "Stopped":
            raise models_exceptions.ExportStoppedException()
        if ie_job.status == "Finished":
            raise models_exceptions.ExportFinishedException()
    except wzg_exceptions.Forbidden:
        raise
    except models_exceptions.ExportStoppedException:
        raise wzg_exceptions.BadRequest(app_errors.EXPORT_STOPPED_WARNING)
    except models_exceptions.ExportFinishedException:
        raise wzg_exceptions.BadRequest(app_errors.EXPORT_FINISHED_WARNING)
    except Exception as e:
        logger.exception(e.message)
        raise wzg_exceptions.BadRequest(
            app_errors.INCORRECT_REQUEST_DATA.format(job_type="Export"))
    raise wzg_exceptions.BadRequest(app_errors.WRONG_STATUS)
コード例 #2
0
ファイル: base.py プロジェクト: pypros/ggrc-core
    def build_csv_from_row_data(self):
        """Export each block separated by empty lines."""
        table_width = max(
            [converter.block_width for converter in self.block_converters])
        table_width += 1  # One line for 'Object line' column

        csv_string_builder = import_helper.CsvStringBuilder(table_width)
        for block_converter in self.block_converters:
            with benchmark("Generate export file header"):
                csv_header = block_converter.generate_csv_header()
                csv_header[0].insert(0, "Object type")
                csv_header[1].insert(0, block_converter.name)

                csv_string_builder.append_line(csv_header[0])
                csv_string_builder.append_line(csv_header[1])

            for line in block_converter.generate_row_data():
                ie_status = self.get_job_status()
                if ie_status and ie_status == \
                   all_models.ImportExport.STOPPED_STATUS:
                    raise exceptions.ExportStoppedException()
                line.insert(0, "")
                csv_string_builder.append_line(line)

            csv_string_builder.append_line([])
            csv_string_builder.append_line([])

        return csv_string_builder.get_csv_string()