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)
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)