mirror of
https://github.com/ArchiveBox/ArchiveBox.git
synced 2025-05-19 17:35:09 -04:00
Merge pull request #873 from ajgon/feature/healthcheck
This commit is contained in:
commit
569a4582dd
2 changed files with 24 additions and 7 deletions
|
@ -6,7 +6,7 @@ from django.contrib.staticfiles.urls import staticfiles_urlpatterns
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.views.generic.base import RedirectView
|
from django.views.generic.base import RedirectView
|
||||||
|
|
||||||
from core.views import HomepageView, SnapshotView, PublicIndexView, AddView
|
from core.views import HomepageView, SnapshotView, PublicIndexView, AddView, HealthCheckView
|
||||||
|
|
||||||
|
|
||||||
# print('DEBUG', settings.DEBUG)
|
# print('DEBUG', settings.DEBUG)
|
||||||
|
@ -24,14 +24,16 @@ urlpatterns = [
|
||||||
|
|
||||||
path('admin/core/snapshot/add/', RedirectView.as_view(url='/add/')),
|
path('admin/core/snapshot/add/', RedirectView.as_view(url='/add/')),
|
||||||
path('add/', AddView.as_view(), name='add'),
|
path('add/', AddView.as_view(), name='add'),
|
||||||
|
|
||||||
path('accounts/login/', RedirectView.as_view(url='/admin/login/')),
|
path('accounts/login/', RedirectView.as_view(url='/admin/login/')),
|
||||||
path('accounts/logout/', RedirectView.as_view(url='/admin/logout/')),
|
path('accounts/logout/', RedirectView.as_view(url='/admin/logout/')),
|
||||||
|
|
||||||
|
|
||||||
path('accounts/', include('django.contrib.auth.urls')),
|
path('accounts/', include('django.contrib.auth.urls')),
|
||||||
path('admin/', admin.site.urls),
|
path('admin/', admin.site.urls),
|
||||||
|
|
||||||
|
path('health/', HealthCheckView.as_view(), name='healthcheck'),
|
||||||
|
|
||||||
path('index.html', RedirectView.as_view(url='/')),
|
path('index.html', RedirectView.as_view(url='/')),
|
||||||
path('index.json', static.serve, {'document_root': settings.OUTPUT_DIR, 'path': 'index.json'}),
|
path('index.json', static.serve, {'document_root': settings.OUTPUT_DIR, 'path': 'index.json'}),
|
||||||
path('', HomepageView.as_view(), name='Home'),
|
path('', HomepageView.as_view(), name='Home'),
|
||||||
|
|
|
@ -38,7 +38,7 @@ class HomepageView(View):
|
||||||
|
|
||||||
if PUBLIC_INDEX:
|
if PUBLIC_INDEX:
|
||||||
return redirect('/public')
|
return redirect('/public')
|
||||||
|
|
||||||
return redirect(f'/admin/login/?next={request.path}')
|
return redirect(f'/admin/login/?next={request.path}')
|
||||||
|
|
||||||
|
|
||||||
|
@ -205,7 +205,7 @@ class SnapshotView(View):
|
||||||
content_type="text/html",
|
content_type="text/html",
|
||||||
status=404,
|
status=404,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class PublicIndexView(ListView):
|
class PublicIndexView(ListView):
|
||||||
template_name = 'public_index.html'
|
template_name = 'public_index.html'
|
||||||
|
@ -220,7 +220,7 @@ class PublicIndexView(ListView):
|
||||||
'FOOTER_INFO': FOOTER_INFO,
|
'FOOTER_INFO': FOOTER_INFO,
|
||||||
}
|
}
|
||||||
|
|
||||||
def get_queryset(self, **kwargs):
|
def get_queryset(self, **kwargs):
|
||||||
qs = super().get_queryset(**kwargs)
|
qs = super().get_queryset(**kwargs)
|
||||||
query = self.request.GET.get('q')
|
query = self.request.GET.get('q')
|
||||||
if query and query.strip():
|
if query and query.strip():
|
||||||
|
@ -249,7 +249,7 @@ class AddView(UserPassesTestMixin, FormView):
|
||||||
url = self.request.GET.get('url', None)
|
url = self.request.GET.get('url', None)
|
||||||
if url:
|
if url:
|
||||||
return {'url': url if '://' in url else f'https://{url}'}
|
return {'url': url if '://' in url else f'https://{url}'}
|
||||||
|
|
||||||
return super().get_initial()
|
return super().get_initial()
|
||||||
|
|
||||||
def test_func(self):
|
def test_func(self):
|
||||||
|
@ -295,3 +295,18 @@ class AddView(UserPassesTestMixin, FormView):
|
||||||
"form": AddLinkForm()
|
"form": AddLinkForm()
|
||||||
})
|
})
|
||||||
return render(template_name=self.template_name, request=self.request, context=context)
|
return render(template_name=self.template_name, request=self.request, context=context)
|
||||||
|
|
||||||
|
|
||||||
|
class HealthCheckView(View):
|
||||||
|
"""
|
||||||
|
A Django view that renders plain text "OK" for service discovery tools
|
||||||
|
"""
|
||||||
|
def get(self, request):
|
||||||
|
"""
|
||||||
|
Handle a GET request
|
||||||
|
"""
|
||||||
|
return HttpResponse(
|
||||||
|
'OK',
|
||||||
|
content_type='text/plain',
|
||||||
|
status=200
|
||||||
|
)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue