Beispiel #1
0
def buildlogs(request):
    profile = get_user_profile(request.user)
    snake = profile.active_snake  # SnakeVersion(user=request.user)
    return render(request, 'ide/buildlogs.html', {
        'snake': snake,
        'profile': profile
    })
Beispiel #2
0
def get_active_version(request):
    up = get_user_profile(request.user)
    v = up.active_snake
    if v:
        return get_version(request, version_id=v.id)
    else:
        return JsonResponse({})
Beispiel #3
0
def snake_restart(request):
    profile = get_user_profile(request.user)
    if profile.active_snake is not None:
        send_kill_command(request.user)
        response = {'message': 'requesting restart of snake version {}'.format(profile.active_snake.version)}
    else:
        response = {'message': 'requesting kill of any running snake version (no activate snake version)'}

    return JsonResponse(response)
Beispiel #4
0
def get_compile_state(request):
    profile = get_user_profile(request.user)
    snake = profile.active_snake
    if snake:
        return JsonResponse({
            'compile_state': str(snake.compile_state),
            'build_log': decode_build_log(snake.build_log)
        })
    else:
        return JsonResponse({})
Beispiel #5
0
def snake_edit(request, snake):
    form = CreateSnakeForm(request.POST or None)
    if form.is_valid():
        posted_code = form.cleaned_data.get('code')
        posted_comment = form.cleaned_data.get('comment', '')
        new_version = SnakeVersion(user=request.user, parent=snake, code=posted_code, comment=posted_comment)
        new_version.save()
        new_version.activate()
        send_kill_command(new_version.user)
        return redirect('snake_edit', snake_id=new_version.id)

    return render(request, 'ide/ide.html', {'form': form, 'snake': snake, 'profile': get_user_profile(request.user)})
Beispiel #6
0
def persistent_data(request):
    profile = get_user_profile(request.user)
    if request.method in ['POST', 'PUT']:
        if len(request.body) > settings.PERSISTENT_MEMORY_SIZE:
            return HttpResponseBadRequest('max size for persistent memory blob is {0} bytes.'.format(settings.PERSISTENT_MEMORY_SIZE))
        profile.persistent_data = request.body
        profile.save()
    elif request.method == 'DELETE':
        profile.persistent_data = bytearray([0]*settings.PERSISTENT_MEMORY_SIZE)
        profile.save()
    resp = HttpResponse(profile.persistent_data, content_type='application/octet-stream')
    resp['Content-Disposition'] = 'attachment; filename=persistent_data.dat'
    return resp
Beispiel #7
0
def snake_disable(request):
    profile = get_user_profile(request.user)
    if profile.active_snake is not None:
        response = {'message': 'disabled snake {}'.format(profile.active_snake.version)}
        profile.active_snake = None
        profile.save()
        send_kill_command(request.user)
    else:
        response = {'message': 'no snake was and is enabled.'}

    if request.is_ajax():
        return JsonResponse(response)
    else:
        return redirect('snake')
Beispiel #8
0
def snake_edit(request, snake):
    form = CreateSnakeForm(request.POST or None)
    if form.is_valid():
        posted_code = form.cleaned_data.get('code')
        posted_comment = form.cleaned_data.get('comment', '')
        snake = snake.create_new_if_changed(code=posted_code,
                                            comment=posted_comment)
        snake.activate()
        send_kill_command(snake.user)
        return redirect('snake_edit', snake_id=snake.id)

    return render(request, 'ide/ide.html', {
        'form': form,
        'snake': snake,
        'profile': get_user_profile(request.user)
    })
Beispiel #9
0
def profile(request):
    return render(request, 'core/profile.html', {
        'user': request.user,
        'profile': get_user_profile(request.user)
    })
Beispiel #10
0
def get_viewer_key(request):
    up = get_user_profile(request.user)
    return JsonResponse({'viewer_key': up.viewer_key})
Beispiel #11
0
def disable_version(request, version_id):
    up = get_user_profile(request.user)
    if up.active_snake is not None and up.active_snake.id == version_id:
        up.active_snake = None
        up.save()
    return JsonResponse({'result': 'ok'})
Beispiel #12
0
def disable_active_version(request):
    up = get_user_profile(request.user)
    up.active_snake = None
    up.save()
    return JsonResponse({'result': 'ok'})
Beispiel #13
0
def activate_version(request, version_id):
    v = get_object_or_404(SnakeVersion, user=request.user, id=version_id)
    up = get_user_profile(request.user)
    up.active_snake = v
    up.save()
    return JsonResponse(version_dict(v))