Пример #1
0
def snapshot(request, hostname):
    """
    Snapshot list and snapshot definitions.
    """
    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['can_image'] = request.user.is_staff or request.user.has_permission(request, ImageAdminPermission.name)
    context['cannot_snapshot'] = not (request.user.is_admin(request) or vm.is_installed())
    context['snapform_create'] = CreateSnapshotForm(vm, prefix='snap_create', initial={'disk_id': 1})
    context['snapform_update'] = UpdateSnapshotForm(vm, prefix='snap_update')
    context['lastsnap'] = []
    context['snapdefs'] = get_vm_snapdefs(vm)
    context.update(get_vm_snapshots(request, vm))  # Add snapshots and count attributes + paginator

    if context['can_edit']:
        context['snapdeform_update'] = UpdateSnapshotDefineForm(request, vm)
        context['snapdeform_create'] = CreateSnapshotDefineForm(request, vm, prefix='snapdef_create',
                                                                initial={'disk_id': 1, 'active': True})

    if context['can_image']:
        context['imgform'] = SnapshotImageForm(vm, request, None, prefix='img', initial={'owner': request.user.username,
                                                                                         'access': Image.PRIVATE,
                                                                                         'version': '1.0'})

    view_vm_snapshot.send(sender='gui.vm.views.snapshot', request=request, context=context)
    return render(request, 'gui/vm/snapshot.html', context)
Пример #2
0
def snapshot_list(request, hostname):
    """
    Ajax page with list of snapshots.
    """
    vm = get_vm(request, hostname)
    context = {
        'vm': vm,
        'can_edit': request.user.is_admin(request),
        'lastsnap': [],
        'last_snapid': request.GET.get('last_snapid', None),
    }
    context.update(get_vm_snapshots(request, vm))  # Add snapshots and count attributes + paginator

    return render(request, 'gui/vm/snapshot_list.html', context)