mirror of
https://github.com/eduardogsilva/routerfleet.git
synced 2025-07-16 13:14:23 +02:00
Update bug When I click on "Create backup task," it doesn’t seem to work. The console shows this error: "Uncaught ReferenceError: backupType is not defined."
This commit is contained in:
parent
a730057a6b
commit
9f26425a4f
2 changed files with 99 additions and 100 deletions
|
@ -1,5 +1,6 @@
|
|||
from django.contrib import messages
|
||||
from django.db.models import Sum
|
||||
from django.http import JsonResponse
|
||||
from django.utils import timezone
|
||||
from django.shortcuts import render, get_object_or_404, redirect
|
||||
from django.contrib.auth.decorators import login_required
|
||||
|
@ -227,48 +228,44 @@ def view_create_instant_backup_task(request):
|
|||
messages.success(request, 'Backup task created successfully')
|
||||
return redirect(router_details_url)
|
||||
|
||||
@login_required()
|
||||
@login_required
|
||||
def view_create_instant_backup_multiple_routers(request):
|
||||
# Check user permissions
|
||||
if not UserAcl.objects.filter(user=request.user).filter(user_level__gte=20).exists():
|
||||
uuid = request.GET.get('uuid')
|
||||
if uuid:
|
||||
router_details_url = f'/router/details/?uuid={uuid}'
|
||||
messages.warning(request, 'Sorry, you do not have permission to create instant backup. Please contact your system administrator if you believe this is an error.')
|
||||
return redirect(router_details_url)
|
||||
else:
|
||||
messages.warning(request, 'Sorry, you do not have permission to create instant backup. Please contact your system administrator if you believe this is an error.')
|
||||
return redirect('/router/list/')
|
||||
if request.method == 'POST':
|
||||
if not UserAcl.objects.filter(user=request.user, user_level__gte=20).exists():
|
||||
return JsonResponse({'error': 'Permission denied.'}, status=403)
|
||||
|
||||
# Get UUIDs from the request
|
||||
uuids = request.GET.getlist('uuid') # Changed to getlist for multiple UUIDs
|
||||
if not uuids:
|
||||
messages.warning(request, 'At least one UUID is required for Create Backup Task')
|
||||
return redirect('/router/list/')
|
||||
uuids = request.POST.getlist('routers[]') # Ajustat pentru a primi lista corect
|
||||
|
||||
# Loop through each UUID and process the backup
|
||||
for uuid in uuids:
|
||||
router = get_object_or_404(Router, uuid=uuid)
|
||||
router_details_url = f'/router/details/?uuid={router.uuid}'
|
||||
if not uuids:
|
||||
return JsonResponse({'error': 'No routers selected.'}, status=400)
|
||||
|
||||
# Check for existing backup tasks
|
||||
if RouterBackup.objects.filter(router=router, success=False, error=False).exists():
|
||||
messages.warning(request, f'Backup task not created for {router.name}| Active router backup task already exists')
|
||||
continue # Skip to the next router
|
||||
results = []
|
||||
for uuid in uuids:
|
||||
router = get_object_or_404(Router, uuid=uuid)
|
||||
|
||||
if RouterBackup.objects.filter(router=router, success=False, error=False).exists():
|
||||
results.append({'router': router.name, 'status': 'active backup task exists'})
|
||||
continue
|
||||
|
||||
if router.routerstatus.backup_lock is not None:
|
||||
messages.warning(request, f'Backup task not created for {router.name}| Router backup is currently locked')
|
||||
continue # Skip to the next router
|
||||
if router.routerstatus.backup_lock:
|
||||
results.append({'router': router.name, 'status': 'backup locked'})
|
||||
continue
|
||||
|
||||
if not router.backup_profile:
|
||||
messages.warning(request, f'Backup task not created for {router.name}| Router has no backup profile')
|
||||
continue # Skip to the next router
|
||||
if not router.backup_profile:
|
||||
results.append({'router': router.name, 'status': 'no backup profile'})
|
||||
continue
|
||||
|
||||
router_backup = RouterBackup.objects.create(router=router, schedule_time=timezone.now(), schedule_type='instant')
|
||||
router_backup = RouterBackup.objects.create(
|
||||
router=router,
|
||||
schedule_time=timezone.now(),
|
||||
schedule_type='instant'
|
||||
)
|
||||
|
||||
# Update backup lock status
|
||||
router.routerstatus.backup_lock = router_backup.schedule_time
|
||||
router.routerstatus.save()
|
||||
messages.success(request, f'Backup task created successfully for {router.name}')
|
||||
router.routerstatus.backup_lock = router_backup.schedule_time
|
||||
router.routerstatus.save()
|
||||
|
||||
return redirect('/router/list/')
|
||||
results.append({'router': router.name, 'status': 'backup started'})
|
||||
|
||||
return JsonResponse({'results': results})
|
||||
|
||||
return JsonResponse({'error': 'Invalid request method.'}, status=405)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue