Beispiel #1
0
def start_conversion_job(request, client_job_token):
    if request.method == 'POST':
        # Read POST values
        POST_dict = request.POST.dict()
        export_format_name = POST_dict['export_format'].strip()
        del POST_dict['export_format']
        source_srs = POST_dict['source_srs'].strip()
        del POST_dict['source_srs']
        target_srs = POST_dict['target_srs'].strip()
        del POST_dict['target_srs']
        simplify_parameter = POST_dict['simplify_parameter'].strip()
        del POST_dict['simplify_parameter']
        download_name = POST_dict['download_name'].strip()
        del POST_dict['download_name']
        if len(download_name) > 10:
            download_name = download_name[0:7] + '...'
        client_ip = get_client_ip(request)
        client_language = get_client_language(request)
        client_user_agent = get_client_user_agent(request)

        session_key = request.session.session_key
        job_identifier = jobidentification.get_new_job_identifier_by_client_job_token(
            session_key, client_job_token)
        job_id = job_identifier.job_id
        if job_id == '':
            return HttpResponseServerError('Error: Job Token is not valid.')

        job_handler = JobHandler(job_identifier)
        log_handler = LogHandler(job_identifier)
        download_handler = DownloadHandler(job_identifier)

        file_matcher = FileMatcher(POST_dict)
        for file_match in file_matcher.get_matches():
            job_handler.add_file_match(
                job_handler.get_upload_folder_path(),
                file_match.get_file_dict(),
                file_match.get_ogr_format_name(),
                file_match.is_archive(),
                file_match.is_valid())

        format_information = OgrFormat.get_format_information_by_name(
            export_format_name)
        if format_information is not None:
            job_handler.set_export_format_name(format_information.ogr_name)
            for shell_parameter in format_information.additional_parameters:
                if shell_parameter.use_for_writing:
                    job_handler.add_shell_parameter(
                        shell_parameter.prefix,
                        shell_parameter.parameter_name,
                        shell_parameter.parameter_value,
                        shell_parameter.value_quotation_marks)

        for global_shell_parameter in GlobalOgrShellParameter.get_active_parameters():
            job_handler.add_shell_parameter_object(global_shell_parameter)

        job_handler.set_export_format_name(export_format_name)
        job_handler.set_source_srs(source_srs)
        job_handler.set_target_srs(target_srs)
        job_handler.set_simplify_parameter(simplify_parameter)

        download_handler.set_download_caption(download_name)

        log_handler.set_start_time()
        log_handler.set_client_ip(client_ip)
        log_handler.set_client_language(client_language)
        log_handler.set_client_user_agent(client_user_agent)
        log_handler.set_input_type('files')
        log_handler.set_export_format_name(
            job_handler.get_export_format_name())
        log_handler.set_source_srs(job_handler.get_source_srs())
        log_handler.set_target_srs(job_handler.get_target_srs())
        log_handler.set_simplify_parameter(
            job_handler.get_simplify_parameter())

        jobprocessing.initialize_conversion_job(job_identifier)

        return HttpResponse('success')
    else:
        return redirect_to_main_page(request)
Beispiel #2
0
def convert_webservice(request, client_job_token):
    if request.method == 'POST':
        POST_dict = request.POST.dict()
        webservice_url = POST_dict['webservice_url'].strip()
        export_format_name = POST_dict['export_format'].strip()
        source_srs = POST_dict['source_srs'].strip()
        target_srs = POST_dict['target_srs'].strip()
        simplify_parameter = POST_dict['simplify_parameter'].strip()
        download_name = POST_dict['download_name'].strip()
        if len(download_name) > 10:
            download_name = download_name[0:7] + '...'
        client_ip = get_client_ip(request)
        client_language = get_client_language(request)
        client_user_agent = get_client_user_agent(request)

        session_key = request.session.session_key
        job_identifier = jobidentification.get_new_job_identifier_by_client_job_token(
            session_key, client_job_token)
        job_id = job_identifier.job_id
        if job_id == '':
            return HttpResponseServerError('Error: Job Token is not valid.')

        job_handler = JobHandler(job_identifier)
        log_handler = LogHandler(job_identifier)
        download_handler = DownloadHandler(job_identifier)

        format_information = OgrFormat.get_format_information_by_name(
            export_format_name)
        if format_information is not None:
            job_handler.set_export_format_name(format_information.ogr_name)
            for shell_parameter in format_information.additional_parameters:
                if shell_parameter.use_for_writing:
                    job_handler.add_shell_parameter(
                        shell_parameter.prefix,
                        shell_parameter.parameter_name,
                        shell_parameter.parameter_value,
                        shell_parameter.value_quotation_marks)

        for global_shell_parameter in GlobalOgrShellParameter.get_active_parameters():
            job_handler.add_shell_parameter_object(global_shell_parameter)

        job_handler.add_webservice_url('0', webservice_url)
        job_handler.set_export_format_name(export_format_name)
        job_handler.set_source_srs(source_srs)
        job_handler.set_target_srs(target_srs)
        job_handler.set_simplify_parameter(simplify_parameter)

        # Log start
        log_handler.set_start_time()
        log_handler.set_client_ip(client_ip)
        log_handler.set_client_language(client_language)
        log_handler.set_client_user_agent(client_user_agent)
        log_handler.set_input_type('webservice')
        log_handler.set_export_format_name(
            job_handler.get_export_format_name())
        log_handler.set_source_srs(job_handler.get_source_srs())
        log_handler.set_target_srs(job_handler.get_target_srs())
        log_handler.set_simplify_parameter(
            job_handler.get_simplify_parameter())

        # Conversion start
        jobprocessing.initialize_conversion_job(job_identifier)
        jobprocessing.process_webservice_urls(job_identifier)

        jobprocessing.create_download_file(job_identifier)

        download_handler.add_download_item()
        download_handler.set_download_caption(download_name)

        # Conversion end
        log_handler.set_end_time()
        log_handler.set_download_file_size(
            download_handler.get_download_file_size() /
            1024)
        log_handler.set_has_download_file(
            download_handler.download_file_exists())
        log_handler.set_all_files_converted()
        log_handler.set_has_no_error()
        # Log end

        jobprocessing.cleanup()

        response_data = {}
        response_data['job_id'] = job_id
        response_data['successful'] = download_handler.download_file_exists()
        return HttpResponse(json.dumps(response_data), mimetype="text/plain")

    return HttpResponseServerError('Error: Request not valid.')