Beispiel #1
0
def _package_create(request):
    """Create a package."""
    try:
        payload = json.loads(request.body)
        path = base64.b64decode(payload.get('path'))
    except (TypeError, ValueError):
        return helpers.json_response(
            {
                'error': True,
                'message': 'Parameter "path" cannot be decoded.'
            }, 400)
    args = (
        payload.get('name'),
        payload.get('type'),
        payload.get('accession'),
        payload.get('access_system_id'),
        path,
        payload.get('metadata_set_id'),
    )
    kwargs = {
        'auto_approve': payload.get('auto_approve', True),
        'wait_until_complete': False,
    }
    processing_config = payload.get('processing_config')
    if processing_config is not None:
        kwargs['processing_config'] = processing_config
    try:
        client = MCPClient()
        id_ = client.create_package(*args, **kwargs)
    except Exception as err:
        msg = 'Package cannot be created'
        LOGGER.error("{}: {}".format(msg, err))
        return helpers.json_response({'error': True, 'message': msg}, 500)
    return helpers.json_response({'id': id_}, 202)
Beispiel #2
0
def _package_create(request):
    """Create a package."""
    try:
        payload = json.loads(request.body.decode("utf8"))
        path = base64.b64decode(payload.get("path"))
    except (TypeError, ValueError):
        return helpers.json_response(
            {
                "error": True,
                "message": 'Parameter "path" cannot be decoded.'
            }, 400)
    args = (
        payload.get("name"),
        payload.get("type"),
        payload.get("accession"),
        payload.get("access_system_id"),
        path,
        payload.get("metadata_set_id"),
    )
    kwargs = {
        "auto_approve": payload.get("auto_approve", True),
        "wait_until_complete": False,
    }
    processing_config = payload.get("processing_config")
    if processing_config is not None:
        kwargs["processing_config"] = processing_config
    try:
        client = MCPClient(request.user)
        id_ = client.create_package(*args, **kwargs)
    except Exception as err:
        msg = "Package cannot be created"
        LOGGER.error("%s: %s", msg, err)
        return helpers.json_response({"error": True, "message": msg}, 500)
    return helpers.json_response({"id": id_}, 202)