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