コード例 #1
0
ファイル: views.py プロジェクト: digideskio/upTee
def events_add_ajax(request, server_id):
    server = get_object_or_404(Server.active.select_related(), pk=server_id)
    user = get_user(request)
    if not user:
        raise Http404
    if server.owner != user:
        raise Http404
    form = TaskEventForm()
    if request.method == 'POST':
        form = TaskEventForm(request.POST)
        if form.is_valid():
            name = form.cleaned_data['name']
            date = form.cleaned_data['date']
            repeat = form.cleaned_data['repeat']
            task_type = form.cleaned_data['task_type']
            event = TaskEvent(server=server, name=name, task_type=task_type, date=date, repeat=repeat, status=TaskEvent.STATUS_ACTIVE)
            event.save()
            task = None
            if event.task_type == TaskEvent.TYPE_START:
                task = start_server.apply_async((event.id,), eta=event.date)
            elif event.task_type == TaskEvent.TYPE_STOP:
                task = stop_server.apply_async((event.id,), eta=event.date)
            elif event.task_type == TaskEvent.TYPE_RESTART:
                task = restart_server.apply_async((event.id,), eta=event.date)
            if task:
                event.task_id = task.task_id
            event.save()
            return []
    return render_to_response('mod/event_form.html', {
        'server': server,
        'event_form': form
    }, context_instance=RequestContext(request))
コード例 #2
0
ファイル: views.py プロジェクト: upTee/upTee
def events_add_ajax(request, server_id):
    server = get_object_or_404(Server.active.select_related(), pk=server_id)
    user = get_user(request)
    if not user:
        raise Http404
    if server.owner != user:
        raise Http404
    form = TaskEventForm()
    if request.method == 'POST':
        form = TaskEventForm(request.POST)
        if form.is_valid():
            name = form.cleaned_data['name']
            date = form.cleaned_data['date']
            repeat = form.cleaned_data['repeat']
            task_type = form.cleaned_data['task_type']
            event = TaskEvent(server=server, name=name, task_type=task_type, date=date, repeat=repeat, status=TaskEvent.STATUS_ACTIVE)
            event.save()
            task = None
            if event.task_type == TaskEvent.TYPE_START:
                task = start_server.apply_async((event.id,), eta=event.date)
            elif event.task_type == TaskEvent.TYPE_STOP:
                task = stop_server.apply_async((event.id,), eta=event.date)
            elif event.task_type == TaskEvent.TYPE_RESTART:
                task = restart_server.apply_async((event.id,), eta=event.date)
            if task:
                event.task_id = task.task_id
            event.save()
            return {'event_id': event.id}
    return render_to_response('mod/event_form.html', {
        'server': server,
        'event_form': form
    }, context_instance=RequestContext(request))
コード例 #3
0
ファイル: views.py プロジェクト: digideskio/upTee
def events_delete_ajax(request, server_id):
    server = get_object_or_404(Server.active.select_related(), pk=server_id)
    user = get_user(request)
    if not user:
        raise Http404
    if server.owner != user:
        raise Http404
    event_id = request.POST.get('event_id', None)
    if not event_id:
        raise Http404
    event = get_object_or_404(TaskEvent.objects.all(), pk=event_id)
    event.delete()
    return {}
コード例 #4
0
ファイル: views.py プロジェクト: upTee/upTee
def events_delete_ajax(request, server_id):
    server = get_object_or_404(Server.active.select_related(), pk=server_id)
    user = get_user(request)
    if not user:
        raise Http404
    if server.owner != user:
        raise Http404
    event_id = request.POST.get('event_id', None)
    if not event_id:
        raise Http404
    event = get_object_or_404(TaskEvent.objects.all(), pk=event_id)
    event.delete()
    return {}
コード例 #5
0
ファイル: views.py プロジェクト: digideskio/upTee
def terminal_receive_ajax(request, server_id):
    server = get_object_or_404(Server.active.select_related(), pk=server_id)
    if not server.is_online:
        raise Http404
    user = get_user(request)
    if not user:
        raise Http404
    moderator = server.moderators.filter(user=user)
    if server.owner != user and (not moderator or not moderator[0].console_allowed):
        raise Http404
    cache.set('server-{0}-ping'.format(server_id), time())
    key = 'server-{0}-out'.format(server_id)
    lines = cache.get(key, [])
    cache.delete(key)
    cache.delete('server-{0}-terminate'.format(server_id))
    return {} if not lines else {"lines": lines}
コード例 #6
0
ファイル: views.py プロジェクト: upTee/upTee
def terminal_receive_ajax(request, server_id):
    server = get_object_or_404(Server.active.select_related(), pk=server_id)
    if not server.is_online:
        raise Http404
    user = get_user(request)
    if not user:
        raise Http404
    moderator = server.moderators.filter(user=user)
    if server.owner != user and (not moderator or not moderator[0].console_allowed):
        raise Http404
    cache.set('server-{0}-ping'.format(server_id), time())
    key = 'server-{0}-out'.format(server_id)
    lines = cache.get(key, [])
    cache.delete(key)
    cache.delete('server-{0}-terminate'.format(server_id))
    return {} if not lines else {"lines": lines}
コード例 #7
0
ファイル: views.py プロジェクト: digideskio/upTee
def terminal_command_ajax(request, server_id):
    server = get_object_or_404(Server.active.select_related(), pk=server_id)
    if not server.is_online:
        raise Http404
    user = get_user(request)
    if not user:
        raise Http404
    moderator = server.moderators.filter(user=user)
    if server.owner != user and (not moderator or not moderator[0].console_allowed):
        raise Http404
    form = CommandForm(request.POST)
    if not form.is_valid():
        raise Http404
    key = 'server-{0}-in'.format(server_id)
    lines = cache.get(key, [])
    lines.append(form.cleaned_data['command'])
    cache.set(key, lines)
    cache.set('server-{0}-ping'.format(server_id), time())
    return {}
コード例 #8
0
ファイル: views.py プロジェクト: upTee/upTee
def terminal_command_ajax(request, server_id):
    server = get_object_or_404(Server.active.select_related(), pk=server_id)
    if not server.is_online:
        raise Http404
    user = get_user(request)
    if not user:
        raise Http404
    moderator = server.moderators.filter(user=user)
    if server.owner != user and (not moderator or not moderator[0].console_allowed):
        raise Http404
    form = CommandForm(request.POST)
    if not form.is_valid():
        raise Http404
    key = 'server-{0}-in'.format(server_id)
    lines = cache.get(key, [])
    lines.append(form.cleaned_data['command'])
    cache.set(key, lines)
    cache.set('server-{0}-ping'.format(server_id), time())
    return {}