示例#1
0
def handle_export_post(**kwargs):
  """Handle export post"""
  check_import_export_headers()
  request_json = request.json
  objects = request_json.get("objects")
  exportable_objects = request_json.get("exportable_objects", [])
  current_time = request.json.get("current_time")
  user = login.get_current_user()
  if user.system_wide_role == 'No Access':
    raise wzg_exceptions.Forbidden()
  if not objects or not current_time:
    raise wzg_exceptions.BadRequest(
        app_errors.INCORRECT_REQUEST_DATA.format(job_type="Export"))
  try:
    filename = import_helper.get_export_filename(objects,
                                                 current_time,
                                                 exportable_objects)
    ie = import_export.create_import_export_entry(
        job_type="Export",
        status="In Progress",
        title=filename,
        start_at=datetime.utcnow(),
    )
    run_background_export(ie.id, objects, exportable_objects)
    return make_import_export_response(ie.log_json())
  except Exception as e:
    logger.exception(e.message)
    raise wzg_exceptions.BadRequest(
        app_errors.INCORRECT_REQUEST_DATA.format(job_type="Export"))
def handle_import_post(**kwargs):
    """ Handle import post """
    check_import_export_headers()
    import_export.delete_previous_imports()
    file_meta = request.json
    csv_data, csv_content, filename = fa.get_gdrive_file_data(file_meta)
    try:
        objects, results, failed = count_objects(csv_data)
        ie = import_export.create_import_export_entry(
            content=csv_content,
            gdrive_metadata=file_meta,
            title=filename,
            status="Not Started" if not failed else "Analysis Failed",
            results=results)
        return make_import_export_response({
            "objects":
            objects if not failed else [],
            "import_export":
            ie.log_json()
        })
    except Unauthorized:
        raise
    except Exception as e:
        logger.exception("Import failed due incorrect request data: %s",
                         e.message)
        raise BadRequest("Import failed due incorrect request data")
示例#3
0
def handle_import_post(**kwargs):
    """ Handle import post """
    check_import_export_headers()
    import_export.delete_previous_imports()
    file_meta = request.json
    csv_data, csv_content, filename = fa.get_gdrive_file_data(file_meta)
    check_import_filename(filename)
    try:
        objects, results, failed = import_helper.count_objects(csv_data)
        ie = import_export.create_import_export_entry(
            content=csv_content,
            gdrive_metadata=file_meta,
            title=filename,
            status="Not Started" if not failed else "Analysis Failed",
            results=results)
        return make_import_export_response({
            "objects":
            objects if not failed else [],
            "import_export":
            ie.log_json()
        })
    except wzg_exceptions.Unauthorized:
        raise
    except Exception as e:
        logger.exception(e.message)
        raise wzg_exceptions.BadRequest(
            app_errors.INCORRECT_REQUEST_DATA.format(job_type="Import"))
示例#4
0
def handle_export_post(**kwargs):
    """Handle export post"""
    check_import_export_headers()
    objects = request.json.get("objects")
    current_time = request.json.get("current_time")
    user = get_current_user()
    if user.system_wide_role == 'No Access':
        raise Forbidden()
    if not objects or not current_time:
        raise BadRequest("Export failed due incorrect request data")
    try:
        filename = get_export_filename(objects, current_time)
        ie = import_export.create_import_export_entry(
            job_type="Export",
            status="In Progress",
            title=filename,
            start_at=datetime.utcnow(),
        )
        deferred.defer(run_export,
                       objects,
                       ie.id,
                       user.id,
                       get_url_root(),
                       _queue="ggrcImport")
        return make_import_export_response(ie.log_json())
    except Exception as e:
        logger.exception("Export failed due incorrect request data: %s",
                         e.message)
        raise BadRequest("Export failed due incorrect request data")
示例#5
0
def handle_export_post(**kwargs):
  """Handle export post"""
  check_import_export_headers()
  objects = request.json.get("objects")
  current_time = request.json.get("current_time")
  user = get_current_user()
  if user.system_wide_role == 'No Access':
    raise Forbidden()
  if not objects or not current_time:
    raise BadRequest("Export failed due incorrect request data")
  try:
    filename = get_export_filename(objects, current_time)
    ie = import_export.create_import_export_entry(
        job_type="Export",
        status="In Progress",
        title=filename,
        start_at=datetime.utcnow(),
    )
    deferred.defer(run_export,
                   objects,
                   ie.id,
                   user.id,
                   get_url_root(),
                   _queue="ggrcImport")
    return make_import_export_response(ie.log_json())
  except Exception as e:
    logger.exception("Export failed due incorrect request data: %s",
                     e.message)
    raise BadRequest("Export failed due incorrect request data")
示例#6
0
def handle_import_post(**kwargs):
  """ Handle import post """
  check_import_export_headers()
  import_export.delete_previous_imports()
  file_meta = request.json
  csv_data, csv_content, filename = fa.get_gdrive_file_data(file_meta)
  try:
    objects, results, failed = count_objects(csv_data)
    ie = import_export.create_import_export_entry(
        content=csv_content,
        gdrive_metadata=file_meta,
        title=filename,
        status="Not Started" if not failed else "Analysis Failed",
        results=results)
    return make_import_export_response({
        "objects": objects if not failed else [],
        "import_export": ie.log_json()})
  except Unauthorized:
    raise
  except Exception as e:
    logger.exception("Import failed due incorrect request data: %s",
                     e.message)
    raise BadRequest("Import failed due incorrect request data")
示例#7
0
def handle_import_post(**kwargs):
  """ Handle import post """
  check_import_export_headers()
  import_export.delete_previous_imports()
  file_meta = request.json
  csv_data, csv_content, filename = fa.get_gdrive_file_data(file_meta)
  check_import_filename(filename)
  try:
    objects, results, failed = import_helper.count_objects(csv_data)
    ie = import_export.create_import_export_entry(
        content=csv_content,
        gdrive_metadata=file_meta,
        title=filename,
        status="Not Started" if not failed else "Analysis Failed",
        results=results)
    return make_import_export_response({
        "objects": objects if not failed else [],
        "import_export": ie.log_json()})
  except wzg_exceptions.Unauthorized:
    raise
  except Exception as e:
    logger.exception(e.message)
    raise wzg_exceptions.BadRequest(
        app_errors.INCORRECT_REQUEST_DATA.format(job_type="Import"))