Пример #1
0
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)
Пример #2
0
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)