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)
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()