Changeset View
Changeset View
Standalone View
Standalone View
swh/deposit/api/common.py
Show All 13 Lines | |||||
from django.utils import timezone | from django.utils import timezone | ||||
from rest_framework import status | from rest_framework import status | ||||
from rest_framework.authentication import BasicAuthentication | from rest_framework.authentication import BasicAuthentication | ||||
from rest_framework.permissions import IsAuthenticated | from rest_framework.permissions import IsAuthenticated | ||||
from rest_framework.views import APIView | from rest_framework.views import APIView | ||||
from swh.model import hashutil | from swh.model import hashutil | ||||
from swh.scheduler.utils import create_oneshot_task_dict | from swh.scheduler.utils import create_oneshot_task_dict | ||||
from swh.deposit.utils import origin_url_from | |||||
from ..config import ( | from ..config import ( | ||||
SWHDefaultConfig, EDIT_SE_IRI, EM_IRI, CONT_FILE_IRI, | SWHDefaultConfig, EDIT_SE_IRI, EM_IRI, CONT_FILE_IRI, | ||||
ARCHIVE_KEY, METADATA_KEY, RAW_METADATA_KEY, STATE_IRI, | ARCHIVE_KEY, METADATA_KEY, RAW_METADATA_KEY, STATE_IRI, | ||||
DEPOSIT_STATUS_DEPOSITED, DEPOSIT_STATUS_PARTIAL, | DEPOSIT_STATUS_DEPOSITED, DEPOSIT_STATUS_PARTIAL, | ||||
DEPOSIT_STATUS_VERIFIED, PRIVATE_CHECK_DEPOSIT, | PRIVATE_CHECK_DEPOSIT, | ||||
DEPOSIT_STATUS_LOAD_SUCCESS, ARCHIVE_TYPE, METADATA_TYPE | DEPOSIT_STATUS_LOAD_SUCCESS, ARCHIVE_TYPE, METADATA_TYPE | ||||
) | ) | ||||
from ..errors import ( | from ..errors import ( | ||||
MAX_UPLOAD_SIZE_EXCEEDED, BAD_REQUEST, ERROR_CONTENT, | MAX_UPLOAD_SIZE_EXCEEDED, BAD_REQUEST, ERROR_CONTENT, | ||||
CHECKSUM_MISMATCH, make_error_dict, MEDIATION_NOT_ALLOWED, | CHECKSUM_MISMATCH, make_error_dict, MEDIATION_NOT_ALLOWED, | ||||
make_error_response_from_dict, FORBIDDEN, | make_error_response_from_dict, FORBIDDEN, | ||||
NOT_FOUND, make_error_response, METHOD_NOT_ALLOWED, | NOT_FOUND, make_error_response, METHOD_NOT_ALLOWED, | ||||
ParserError, PARSING_ERROR | ParserError, PARSING_ERROR | ||||
▲ Show 20 Lines • Show All 142 Lines • ▼ Show 20 Lines | def _deposit_put(self, req, deposit_id=None, in_progress=False, | ||||
if (deposit.status == DEPOSIT_STATUS_DEPOSITED and | if (deposit.status == DEPOSIT_STATUS_DEPOSITED and | ||||
not deposit.check_task_id): | not deposit.check_task_id): | ||||
check_url = req.build_absolute_uri( | check_url = req.build_absolute_uri( | ||||
reverse(PRIVATE_CHECK_DEPOSIT, args=args)) | reverse(PRIVATE_CHECK_DEPOSIT, args=args)) | ||||
task = create_oneshot_task_dict( | task = create_oneshot_task_dict( | ||||
'check-deposit', deposit_check_url=check_url) | 'check-deposit', deposit_check_url=check_url) | ||||
check_task_id = scheduler.create_tasks([task])[0]['id'] | check_task_id = scheduler.create_tasks([task])[0]['id'] | ||||
deposit.check_task_id = check_task_id | deposit.check_task_id = check_task_id | ||||
elif (deposit.status == DEPOSIT_STATUS_VERIFIED and | |||||
not deposit.load_task_id): | |||||
url = origin_url_from(deposit) | |||||
task = create_oneshot_task_dict( | |||||
'load-deposit', url=url, deposit_id=deposit.id) | |||||
load_task_id = scheduler.create_task([task])[0]['id'] | |||||
deposit.load_task_id = load_task_id | |||||
deposit.save() | deposit.save() | ||||
return deposit | return deposit | ||||
def _deposit_request_put(self, deposit, deposit_request_data, | def _deposit_request_put(self, deposit, deposit_request_data, | ||||
replace_metadata=False, replace_archives=False): | replace_metadata=False, replace_archives=False): | ||||
"""Save a deposit request with metadata attached to a deposit. | """Save a deposit request with metadata attached to a deposit. | ||||
▲ Show 20 Lines • Show All 708 Lines • Show Last 20 Lines |