Changeset View
Changeset View
Standalone View
Standalone View
swh/web/admin/origin_save.py
Show All 15 Lines | |||||
from swh.web.admin.adminurls import admin_route | from swh.web.admin.adminurls import admin_route | ||||
from swh.web.common.models import ( | from swh.web.common.models import ( | ||||
SaveAuthorizedOrigin, SaveUnauthorizedOrigin, SaveOriginRequest | SaveAuthorizedOrigin, SaveUnauthorizedOrigin, SaveOriginRequest | ||||
) | ) | ||||
from swh.web.common.origin_save import ( | from swh.web.common.origin_save import ( | ||||
create_save_origin_request, get_save_origin_task_info, | create_save_origin_request, get_save_origin_task_info, | ||||
update_pending_save_requests_stats, | |||||
SAVE_REQUEST_PENDING, SAVE_REQUEST_REJECTED | SAVE_REQUEST_PENDING, SAVE_REQUEST_REJECTED | ||||
) | ) | ||||
@admin_route(r'origin/save/', view_name='admin-origin-save') | @admin_route(r'origin/save/', view_name='admin-origin-save') | ||||
@staff_member_required(view_func=None, login_url=settings.LOGIN_URL) | @staff_member_required(view_func=None, login_url=settings.LOGIN_URL) | ||||
def _admin_origin_save(request): | def _admin_origin_save(request): | ||||
return render(request, 'admin/origin-save.html') | return render(request, 'admin/origin-save.html') | ||||
▲ Show 20 Lines • Show All 46 Lines • ▼ Show 20 Lines | except ObjectDoesNotExist: | ||||
# check if pending save requests with that url prefix exist | # check if pending save requests with that url prefix exist | ||||
pending_save_requests = \ | pending_save_requests = \ | ||||
SaveOriginRequest.objects.filter(origin_url__startswith=origin_url, | SaveOriginRequest.objects.filter(origin_url__startswith=origin_url, | ||||
status=SAVE_REQUEST_PENDING) | status=SAVE_REQUEST_PENDING) | ||||
# create origin save tasks for previously pending requests | # create origin save tasks for previously pending requests | ||||
for psr in pending_save_requests: | for psr in pending_save_requests: | ||||
create_save_origin_request(psr.visit_type, psr.origin_url) | create_save_origin_request(psr.visit_type, psr.origin_url) | ||||
status_code = 200 | status_code = 200 | ||||
update_pending_save_requests_stats() | |||||
else: | else: | ||||
status_code = 400 | status_code = 400 | ||||
return HttpResponse(status=status_code) | return HttpResponse(status=status_code) | ||||
@admin_route(r'origin/save/authorized_urls/remove/(?P<origin_url>.+)/', | @admin_route(r'origin/save/authorized_urls/remove/(?P<origin_url>.+)/', | ||||
view_name='admin-origin-save-remove-authorized-url') | view_name='admin-origin-save-remove-authorized-url') | ||||
@require_POST | @require_POST | ||||
Show All 30 Lines | except ObjectDoesNotExist: | ||||
pending_save_requests = \ | pending_save_requests = \ | ||||
SaveOriginRequest.objects.filter(origin_url__startswith=origin_url, | SaveOriginRequest.objects.filter(origin_url__startswith=origin_url, | ||||
status=SAVE_REQUEST_PENDING) | status=SAVE_REQUEST_PENDING) | ||||
# mark pending requests as rejected | # mark pending requests as rejected | ||||
for psr in pending_save_requests: | for psr in pending_save_requests: | ||||
psr.status = SAVE_REQUEST_REJECTED | psr.status = SAVE_REQUEST_REJECTED | ||||
psr.save() | psr.save() | ||||
status_code = 200 | status_code = 200 | ||||
update_pending_save_requests_stats() | |||||
else: | else: | ||||
status_code = 400 | status_code = 400 | ||||
return HttpResponse(status=status_code) | return HttpResponse(status=status_code) | ||||
@admin_route(r'origin/save/unauthorized_urls/remove/(?P<origin_url>.+)/', | @admin_route(r'origin/save/unauthorized_urls/remove/(?P<origin_url>.+)/', | ||||
view_name='admin-origin-save-remove-unauthorized-url') | view_name='admin-origin-save-remove-unauthorized-url') | ||||
@require_POST | @require_POST | ||||
Show All 14 Lines | |||||
@require_POST | @require_POST | ||||
@staff_member_required(view_func=None, login_url=settings.LOGIN_URL) | @staff_member_required(view_func=None, login_url=settings.LOGIN_URL) | ||||
def _admin_origin_save_request_accept(request, visit_type, origin_url): | def _admin_origin_save_request_accept(request, visit_type, origin_url): | ||||
try: | try: | ||||
SaveAuthorizedOrigin.objects.get(url=origin_url) | SaveAuthorizedOrigin.objects.get(url=origin_url) | ||||
except ObjectDoesNotExist: | except ObjectDoesNotExist: | ||||
SaveAuthorizedOrigin.objects.create(url=origin_url) | SaveAuthorizedOrigin.objects.create(url=origin_url) | ||||
create_save_origin_request(visit_type, origin_url) | create_save_origin_request(visit_type, origin_url) | ||||
update_pending_save_requests_stats() | |||||
return HttpResponse(status=200) | return HttpResponse(status=200) | ||||
@admin_route(r'origin/save/request/reject/(?P<visit_type>.+)/url/(?P<origin_url>.+)/', # noqa | @admin_route(r'origin/save/request/reject/(?P<visit_type>.+)/url/(?P<origin_url>.+)/', # noqa | ||||
view_name='admin-origin-save-request-reject') | view_name='admin-origin-save-request-reject') | ||||
@require_POST | @require_POST | ||||
@staff_member_required(view_func=None, login_url=settings.LOGIN_URL) | @staff_member_required(view_func=None, login_url=settings.LOGIN_URL) | ||||
def _admin_origin_save_request_reject(request, visit_type, origin_url): | def _admin_origin_save_request_reject(request, visit_type, origin_url): | ||||
try: | try: | ||||
SaveUnauthorizedOrigin.objects.get(url=origin_url) | SaveUnauthorizedOrigin.objects.get(url=origin_url) | ||||
except ObjectDoesNotExist: | except ObjectDoesNotExist: | ||||
SaveUnauthorizedOrigin.objects.create(url=origin_url) | SaveUnauthorizedOrigin.objects.create(url=origin_url) | ||||
sor = SaveOriginRequest.objects.get(visit_type=visit_type, | sor = SaveOriginRequest.objects.get(visit_type=visit_type, | ||||
origin_url=origin_url, | origin_url=origin_url, | ||||
status=SAVE_REQUEST_PENDING) | status=SAVE_REQUEST_PENDING) | ||||
sor.status = SAVE_REQUEST_REJECTED | sor.status = SAVE_REQUEST_REJECTED | ||||
sor.save() | sor.save() | ||||
update_pending_save_requests_stats() | |||||
return HttpResponse(status=200) | return HttpResponse(status=200) | ||||
@admin_route(r'origin/save/request/remove/(?P<sor_id>.+)/', | @admin_route(r'origin/save/request/remove/(?P<sor_id>.+)/', | ||||
view_name='admin-origin-save-request-remove') | view_name='admin-origin-save-request-remove') | ||||
@require_POST | @require_POST | ||||
@staff_member_required(view_func=None, login_url=settings.LOGIN_URL) | @staff_member_required(view_func=None, login_url=settings.LOGIN_URL) | ||||
def _admin_origin_save_request_remove(request, sor_id): | def _admin_origin_save_request_remove(request, sor_id): | ||||
Show All 20 Lines |