def backup_form(request, hostname): """ Ajax page for backup form validation when creating or updating backup. """ vm = get_vm(request, hostname) status = 200 if request.POST.get('update', None): template = 'backup_form_update.html' bkpform = UpdateBackupForm(vm, request.POST, prefix='snap_update') if bkpform.is_valid(): bkp = bkpform.get_backup() if not bkp: raise Http404 if bkpform.save(bkp): status = 201 else: return HttpResponse(None, status=204) # Nothing changed else: template = 'backup_form.html' bkpform = CreateBackupForm(vm, get_vm_bkpdefs(vm), request.POST, prefix='snap_create') if bkpform.is_valid(): status = 201 context = {'bkpform': bkpform, 'vm': vm} return render(request, 'gui/vm/' + template, context, status=status)
def backup(request, hostname): """ Backup list and backup definitions. """ dc_settings = request.dc.settings context = collect_view_data(request, 'vm_list') context['vm'] = vm = get_vm(request, hostname, sr=('dc', 'owner', 'template', 'slavevm')) context['vms'] = vms = get_vms(request) context['vms_tags'] = get_vms_tags(vms) context['can_edit'] = request.user.is_admin(request) context['bkpdefs'] = bkpdefs = get_vm_bkpdefs(vm) context['lastbkp'] = [] context.update(get_vm_backups(request, vm)) # Add paginator if context['can_edit']: context['bkpform_create'] = CreateBackupForm(vm, bkpdefs, prefix='snap_create') context['bkpform_restore'] = RestoreBackupForm(vms) context['bkpform_update'] = UpdateBackupForm(vm, prefix='snap_update') context['bkpdeform_update'] = UpdateBackupDefineForm(request, vm) bkpdef_initial = { 'zpool': dc_settings.VMS_STORAGE_DEFAULT, 'type': BackupDefine.DATASET, 'disk_id': 1, 'active': True, 'compression': dc_settings.VMS_VM_BACKUP_COMPRESSION_DEFAULT } context['bkpdeform_create'] = CreateBackupDefineForm(request, vm, prefix='bkpdef_create', initial=bkpdef_initial) view_vm_backup.send(sender='gui.vm.views.backup', request=request, context=context) return render(request, 'gui/vm/backup.html', context)