예제 #1
0
파일: views.py 프로젝트: witte1000/esdc-ce
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
    })
예제 #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)