from django.shortcuts import render from django.http import HttpResponse, HttpResponseRedirect from django.urls import reverse from instances.models import Instance from logs.models import Logs from django.conf import settings import json def addlogmsg(user, instance, message): """ :param user: :param instance: :param message: :return: """ add_log_msg = Logs(user=user, instance=instance, message=message) add_log_msg.save() def showlogs(request, page=1): """ :param request: :param page: :return: """ if not request.user.is_superuser: return HttpResponseRedirect(reverse('index')) page = int(page) limit_from = (page-1)*settings.LOGS_PER_PAGE limit_to = page*settings.LOGS_PER_PAGE logs = Logs.objects.all().order_by('-date')[limit_from:limit_to+1] has_next_page = logs.count() > settings.LOGS_PER_PAGE # TODO: remove last element from queryset, but do not affect database return render(request, 'showlogs.html', locals()) def vm_logs(request, vname): """ :param request: :param vname: :return: """ if not request.user.is_superuser: return HttpResponseRedirect(reverse('index')) vm = Instance.objects.get(name=vname) logs_ = Logs.objects.filter(instance=vm.name, date__gte=vm.created).order_by('-date') logs = [] for l in logs_: log = dict() log['user'] = l.user log['instance'] = l.instance log['message'] = l.message log['date'] = l.date.strftime('%x %X') logs.append(log) return HttpResponse(json.dumps(logs))