2024-03-16 15:30:31 -03:00
|
|
|
from django.shortcuts import render
|
2024-03-29 23:36:40 -03:00
|
|
|
from router_manager.models import Router
|
|
|
|
from django.http import JsonResponse
|
2024-04-11 12:54:28 -03:00
|
|
|
from django.utils import timezone
|
|
|
|
|
|
|
|
from routerfleet_tools.models import WebadminSettings
|
|
|
|
|
|
|
|
|
|
|
|
def view_router_config_timestamp(request):
|
|
|
|
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()
|
|
|
|
webadmin_settings.monitoring_last_run = timezone.now()
|
|
|
|
webadmin_settings.save()
|
|
|
|
return JsonResponse({'router_config': webadmin_settings.router_config_last_updated.isoformat()})
|
2024-03-16 15:30:31 -03:00
|
|
|
|
2024-03-29 23:36:40 -03:00
|
|
|
|
|
|
|
def view_export_router_list(request):
|
|
|
|
router_list = {}
|
2024-04-11 12:54:28 -03:00
|
|
|
webadmin_settings, _ = WebadminSettings.objects.get_or_create(name='webadmin_settings')
|
|
|
|
webadmin_settings.monitoring_last_run = timezone.now()
|
|
|
|
if not webadmin_settings.router_config_last_updated:
|
|
|
|
webadmin_settings.router_config_last_updated = timezone.now()
|
|
|
|
webadmin_settings.save()
|
|
|
|
|
2024-03-29 23:36:40 -03:00
|
|
|
for router in Router.objects.filter(enabled=True, monitoring=True):
|
|
|
|
router_list[str(router.uuid)] = {
|
|
|
|
'address': router.address,
|
|
|
|
'name': router.name,
|
|
|
|
'online': router.routerstatus.status_online,
|
|
|
|
'uuid': str(router.uuid),
|
|
|
|
}
|
|
|
|
data = {
|
2024-04-11 12:54:28 -03:00
|
|
|
'router_list': router_list,
|
|
|
|
'router_config': webadmin_settings.router_config_last_updated.isoformat()
|
2024-03-29 23:36:40 -03:00
|
|
|
}
|
|
|
|
return JsonResponse(data)
|
|
|
|
|
|
|
|
|
|
|
|
def view_update_router_status(request):
|
|
|
|
router = Router.objects.get(uuid=request.GET.get('uuid'))
|
|
|
|
new_status = request.GET.get('status')
|
|
|
|
if new_status not in ['online', 'offline']:
|
|
|
|
return JsonResponse({'status': 'error', 'error_message': 'Invalid status'}, status=400)
|
|
|
|
if new_status == 'online':
|
|
|
|
router.routerstatus.status_online = True
|
|
|
|
else:
|
|
|
|
router.routerstatus.status_online = False
|
|
|
|
router.routerstatus.save()
|
2024-04-11 12:54:28 -03:00
|
|
|
webadmin_settings, _ = WebadminSettings.objects.get_or_create(name='webadmin_settings')
|
|
|
|
webadmin_settings.monitoring_last_run = timezone.now()
|
|
|
|
webadmin_settings.save()
|
|
|
|
return JsonResponse({'status': 'success', 'router_config': webadmin_settings.router_config_last_updated.isoformat()})
|