mirror of
https://github.com/eduardogsilva/routerfleet.git
synced 2025-07-15 04:34:24 +02:00
Monitoring api is now protected by key.
This commit is contained in:
parent
847775f87a
commit
ddb2304b64
7 changed files with 66 additions and 17 deletions
|
@ -4,11 +4,13 @@ from monitoring.models import RouterDownTime
|
|||
from router_manager.models import Router, RouterStatus, RouterGroup
|
||||
from django.http import JsonResponse
|
||||
from django.utils import timezone
|
||||
|
||||
from django.conf import settings
|
||||
from routerfleet_tools.models import WebadminSettings
|
||||
|
||||
|
||||
def view_router_config_timestamp(request):
|
||||
if not request.user.is_authenticated and request.GET.get('key') != settings.MONITORING_KEY:
|
||||
return JsonResponse({'error': 'Not authenticated'}, status=403)
|
||||
webadmin_settings, _ = WebadminSettings.objects.get_or_create(name='webadmin_settings')
|
||||
if not webadmin_settings.router_config_last_updated:
|
||||
webadmin_settings.router_config_last_updated = timezone.now()
|
||||
|
@ -18,6 +20,8 @@ def view_router_config_timestamp(request):
|
|||
|
||||
|
||||
def view_router_last_status_change(request):
|
||||
if not request.user.is_authenticated and request.GET.get('key') != settings.MONITORING_KEY:
|
||||
return JsonResponse({'error': 'Not authenticated'}, status=403)
|
||||
last_router_status_change = RouterStatus.objects.filter(last_status_change__isnull=False).order_by('-last_status_change').first()
|
||||
if last_router_status_change:
|
||||
last_status_change_timestamp = last_router_status_change.last_status_change.isoformat()
|
||||
|
@ -27,6 +31,8 @@ def view_router_last_status_change(request):
|
|||
|
||||
|
||||
def view_export_router_list(request):
|
||||
if not request.user.is_authenticated and request.GET.get('key') != settings.MONITORING_KEY:
|
||||
return JsonResponse({'error': 'Not authenticated'}, status=403)
|
||||
webadmin_settings, _ = WebadminSettings.objects.get_or_create(name='webadmin_settings')
|
||||
# Not updating the monitoring last run here, as this view is also used on the dashboard
|
||||
if not webadmin_settings.router_config_last_updated:
|
||||
|
@ -55,6 +61,8 @@ def view_export_router_list(request):
|
|||
|
||||
|
||||
def view_update_router_status(request):
|
||||
if not request.user.is_authenticated and request.GET.get('key') != settings.MONITORING_KEY:
|
||||
return JsonResponse({'error': 'Not authenticated'}, status=403)
|
||||
router = Router.objects.get(uuid=request.GET.get('uuid'))
|
||||
new_status = request.GET.get('status')
|
||||
if router.routerstatus.status_online:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue