def backup_define_form(request, hostname): """ Ajax page for backup define settings. """ vm = get_vm(request, hostname) if request.POST.get('action', None) == 'create': form = CreateBackupDefineForm(request, vm, request.POST, prefix='bkpdef_create') else: form = UpdateBackupDefineForm(request, vm, request.POST) if form.is_valid(): # noinspection PyUnresolvedReferences status = form.save(args=(vm.hostname, form.cleaned_data['name'])) if status == 204: return HttpResponse(None, status=status) elif status in (200, 201): return redirect('vm_backup', hostname=vm.hostname) return render(request, 'gui/vm/backup_define_form.html', { 'form': form, 'vm': vm })
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)