From 5960e94da5c47d97eb1442ebf24c62dbdee59f41 Mon Sep 17 00:00:00 2001 From: Retspen Date: Tue, 3 Mar 2015 11:34:09 +0200 Subject: [PATCH] Add logs and block for templates --- computes/views.py | 11 ++++++++--- create/views.py | 3 +++ interfaces/views.py | 6 ++++++ logs/__init__.py | 0 logs/admin.py | 3 +++ logs/migrations/0001_initial.py | 26 ++++++++++++++++++++++++++ logs/migrations/__init__.py | 0 logs/models.py | 11 +++++++++++ logs/tests.py | 3 +++ logs/views.py | 8 ++++++++ networks/views.py | 6 ++++++ secrets/views.py | 3 +++ storages/views.py | 3 +++ templates/compute.html | 6 ++++-- templates/computes.html | 6 ++++-- templates/create_comp_block.html | 5 +++++ templates/create_iface_block.html | 5 +++++ templates/create_inst_block.html | 5 +++++ templates/create_instance.html | 2 +- templates/create_net_block.html | 5 +++++ templates/create_secret_block.html | 5 +++++ templates/create_stg_block.html | 5 +++++ templates/create_user_block.html | 5 +++++ templates/errors.html | 8 -------- templates/errors_block.html | 8 ++++++++ templates/instance.html | 8 ++++---- templates/instances.html | 13 +++++++------ templates/showlogs.html | 20 ++++++++++++++++++++ templates/sidebar.html | 1 + templates/user.html | 2 +- templates/users.html | 2 +- users/views.py | 14 ++++++++++++++ vrtManager/connection.py | 2 +- webvirtcloud/settings.py | 1 + webvirtcloud/urls.py | 1 + 35 files changed, 183 insertions(+), 29 deletions(-) create mode 100644 logs/__init__.py create mode 100644 logs/admin.py create mode 100644 logs/migrations/0001_initial.py create mode 100644 logs/migrations/__init__.py create mode 100644 logs/models.py create mode 100644 logs/tests.py create mode 100644 logs/views.py create mode 100644 templates/create_comp_block.html create mode 100644 templates/create_iface_block.html create mode 100644 templates/create_inst_block.html create mode 100644 templates/create_net_block.html create mode 100644 templates/create_secret_block.html create mode 100644 templates/create_stg_block.html create mode 100644 templates/create_user_block.html delete mode 100644 templates/errors.html create mode 100644 templates/errors_block.html create mode 100644 templates/showlogs.html diff --git a/computes/views.py b/computes/views.py index c95bf25..fa25de2 100644 --- a/computes/views.py +++ b/computes/views.py @@ -16,6 +16,9 @@ def computes(request): if not request.user.is_authenticated(): return HttpResponseRedirect(reverse('index')) + if not request.user.is_superuser: + return HttpResponseRedirect(reverse('index')) + def get_hosts_status(computes): """ Function return all hosts all vds on host @@ -46,8 +49,10 @@ def compute(request, compute_id): if not request.user.is_authenticated(): return HttpResponseRedirect(reverse('index')) - errors = [] + if not request.user.is_superuser: + return HttpResponseRedirect(reverse('index')) + error_messages = [] compute = Compute.objects.get(id=compute_id) try: @@ -59,7 +64,7 @@ def compute(request, compute_id): hypervisor = conn.hypervisor_type() mem_usage = conn.get_memory_usage() conn.close() - except libvirtError as err: - errors.append(err) + except libvirtError as lib_err: + error_messages.append(lib_err) return render(request, 'compute.html', locals()) \ No newline at end of file diff --git a/create/views.py b/create/views.py index 8097ab6..9734a09 100644 --- a/create/views.py +++ b/create/views.py @@ -20,6 +20,9 @@ def create_instance(request, compute_id): if not request.user.is_authenticated(): return HttpResponseRedirect(reverse('index')) + if not request.user.is_superuser: + return HttpResponseRedirect(reverse('index')) + conn = None error_messages = [] storages = [] diff --git a/interfaces/views.py b/interfaces/views.py index 90fee06..d6959a0 100644 --- a/interfaces/views.py +++ b/interfaces/views.py @@ -16,6 +16,9 @@ def interfaces(request, compute_id): if not request.user.is_authenticated(): return HttpResponseRedirect(reverse('index')) + if not request.user.is_superuser: + return HttpResponseRedirect(reverse('index')) + ifaces_all = [] error_messages = [] compute = Compute.objects.get(id=compute_id) @@ -60,6 +63,9 @@ def interface(request, compute_id, iface): if not request.user.is_authenticated(): return HttpResponseRedirect(reverse('index')) + if not request.user.is_superuser: + return HttpResponseRedirect(reverse('index')) + ifaces_all = [] error_messages = [] compute = Compute.objects.get(id=compute_id) diff --git a/logs/__init__.py b/logs/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/logs/admin.py b/logs/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/logs/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/logs/migrations/0001_initial.py b/logs/migrations/0001_initial.py new file mode 100644 index 0000000..a546814 --- /dev/null +++ b/logs/migrations/0001_initial.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('instances', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='Logs', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('message', models.CharField(max_length=255)), + ('date', models.DateTimeField()), + ('instance', models.ForeignKey(to='instances.Instance')), + ], + options={ + }, + bases=(models.Model,), + ), + ] diff --git a/logs/migrations/__init__.py b/logs/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/logs/models.py b/logs/models.py new file mode 100644 index 0000000..a8ed08b --- /dev/null +++ b/logs/models.py @@ -0,0 +1,11 @@ +from django.db import models +from instances.models import Instance + + +class Logs(models.Model): + instance = models.ForeignKey(Instance) + message = models.CharField(max_length=255) + date = models.DateTimeField() + + def __unicode__(self): + return self.instance \ No newline at end of file diff --git a/logs/tests.py b/logs/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/logs/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/logs/views.py b/logs/views.py new file mode 100644 index 0000000..0d779d8 --- /dev/null +++ b/logs/views.py @@ -0,0 +1,8 @@ +from django.shortcuts import render +from django.http import HttpResponseRedirect +from django.core.urlresolvers import reverse +from logs.models import Logs + + +def showlogs(request): + return render(request, 'showlogs.html', locals()) \ No newline at end of file diff --git a/networks/views.py b/networks/views.py index e35b9b5..fae23a2 100644 --- a/networks/views.py +++ b/networks/views.py @@ -18,6 +18,9 @@ def networks(request, compute_id): if not request.user.is_authenticated(): return HttpResponseRedirect(reverse('index')) + if not request.user.is_superuser(): + return HttpResponseRedirect(reverse('index')) + error_messages = [] compute = Compute.objects.get(id=compute_id) @@ -63,6 +66,9 @@ def network(request, compute_id, pool): if not request.user.is_authenticated(): return HttpResponseRedirect(reverse('index')) + if not request.user.is_superuser: + return HttpResponseRedirect(reverse('index')) + error_messages = [] compute = Compute.objects.get(id=compute_id) diff --git a/secrets/views.py b/secrets/views.py index a9ac6af..e09defa 100644 --- a/secrets/views.py +++ b/secrets/views.py @@ -16,6 +16,9 @@ def secrets(request, compute_id): if not request.user.is_authenticated(): return HttpResponseRedirect(reverse('index')) + if not request.user.is_superuser: + return HttpResponseRedirect(reverse('index')) + secrets_all = [] error_messages = [] compute = Compute.objects.get(id=compute_id) diff --git a/storages/views.py b/storages/views.py index a752fcd..d3a683e 100644 --- a/storages/views.py +++ b/storages/views.py @@ -17,6 +17,9 @@ def storages(request, compute_id): if not request.user.is_authenticated(): return HttpResponseRedirect(reverse('index')) + if not request.user.is_superuser: + return HttpResponseRedirect(reverse('index')) + error_messages = [] compute = Compute.objects.get(id=compute_id) diff --git a/templates/compute.html b/templates/compute.html index 4476309..9a5544f 100644 --- a/templates/compute.html +++ b/templates/compute.html @@ -8,10 +8,12 @@ {% include 'sidebar.html' %}
- + + {% include 'create_comp_block.html' %} +

{{ compute.name }}

- {% include 'errors.html' %} + {% include 'errors_block.html' %}

{% trans "Basic details" %}

diff --git a/templates/computes.html b/templates/computes.html index b3be28c..dcf4d1a 100644 --- a/templates/computes.html +++ b/templates/computes.html @@ -8,10 +8,12 @@ {% include 'sidebar.html' %}
- + + {% include 'create_comp_block.html' %} +

Computes

- {% include 'errors.html' %} + {% include 'errors_block.html' %}
{% if computes_info %} diff --git a/templates/create_comp_block.html b/templates/create_comp_block.html new file mode 100644 index 0000000..e81a484 --- /dev/null +++ b/templates/create_comp_block.html @@ -0,0 +1,5 @@ +{% if request.user.is_superuser %} + +{% endif %} \ No newline at end of file diff --git a/templates/create_iface_block.html b/templates/create_iface_block.html new file mode 100644 index 0000000..e81a484 --- /dev/null +++ b/templates/create_iface_block.html @@ -0,0 +1,5 @@ +{% if request.user.is_superuser %} + +{% endif %} \ No newline at end of file diff --git a/templates/create_inst_block.html b/templates/create_inst_block.html new file mode 100644 index 0000000..e81a484 --- /dev/null +++ b/templates/create_inst_block.html @@ -0,0 +1,5 @@ +{% if request.user.is_superuser %} + +{% endif %} \ No newline at end of file diff --git a/templates/create_instance.html b/templates/create_instance.html index 546fe45..53f24f1 100644 --- a/templates/create_instance.html +++ b/templates/create_instance.html @@ -11,7 +11,7 @@

{{ compute.name }}

- {% include 'errors.html' %} + {% include 'errors_block.html' %}
diff --git a/templates/create_net_block.html b/templates/create_net_block.html new file mode 100644 index 0000000..e81a484 --- /dev/null +++ b/templates/create_net_block.html @@ -0,0 +1,5 @@ +{% if request.user.is_superuser %} + +{% endif %} \ No newline at end of file diff --git a/templates/create_secret_block.html b/templates/create_secret_block.html new file mode 100644 index 0000000..e81a484 --- /dev/null +++ b/templates/create_secret_block.html @@ -0,0 +1,5 @@ +{% if request.user.is_superuser %} + +{% endif %} \ No newline at end of file diff --git a/templates/create_stg_block.html b/templates/create_stg_block.html new file mode 100644 index 0000000..e81a484 --- /dev/null +++ b/templates/create_stg_block.html @@ -0,0 +1,5 @@ +{% if request.user.is_superuser %} + +{% endif %} \ No newline at end of file diff --git a/templates/create_user_block.html b/templates/create_user_block.html new file mode 100644 index 0000000..e81a484 --- /dev/null +++ b/templates/create_user_block.html @@ -0,0 +1,5 @@ +{% if request.user.is_superuser %} + +{% endif %} \ No newline at end of file diff --git a/templates/errors.html b/templates/errors.html deleted file mode 100644 index 3e74c19..0000000 --- a/templates/errors.html +++ /dev/null @@ -1,8 +0,0 @@ - {% if error_messages %} - {% for error in error_messages %} -
- - Error: {{ error }} -
- {% endfor %} - {% endif %} \ No newline at end of file diff --git a/templates/errors_block.html b/templates/errors_block.html new file mode 100644 index 0000000..52e58e3 --- /dev/null +++ b/templates/errors_block.html @@ -0,0 +1,8 @@ +{% if error_messages %} + {% for error in error_messages %} +
+ + Error: {{ error }} +
+ {% endfor %} +{% endif %} \ No newline at end of file diff --git a/templates/instance.html b/templates/instance.html index 838de5e..f2b5a0e 100644 --- a/templates/instance.html +++ b/templates/instance.html @@ -8,12 +8,12 @@ {% include 'sidebar.html' %}
- {% if request.user.is_superuser %} - - {% endif %} + + {% include 'create_inst_block.html' %} +

{{ vname }}

- {% include 'errors.html' %} + {% include 'errors_block.html' %}
diff --git a/templates/instances.html b/templates/instances.html index 3277835..e12977a 100644 --- a/templates/instances.html +++ b/templates/instances.html @@ -8,11 +8,12 @@ {% include 'sidebar.html' %}
- + + {% include 'create_inst_block.html' %} +

Instances

- {% include 'errors.html' %} - + {% include 'errors_block.html' %}
{% if request.user.is_superuser %} @@ -24,7 +25,7 @@ VCPU Memory Status - Actions + Actions @@ -38,7 +39,7 @@ {{ host.1 }} {{ info.vcpu }} - {{ info.memory }} + {{ info.memory }} {% trans "MB" %} {% ifequal info.status 1 %} {% trans "Running" %} {% endifequal %} @@ -115,7 +116,7 @@ VCPU Memory Status - Actions + Actions diff --git a/templates/showlogs.html b/templates/showlogs.html new file mode 100644 index 0000000..5678856 --- /dev/null +++ b/templates/showlogs.html @@ -0,0 +1,20 @@ +{% extends "base.html" %} +{% load i18n %} +{% block title %}{% trans "Logs" %}{% endblock %} +{% block content %} +
+
+ + {% include 'sidebar.html' %} + +
+ +

{% trans "Logs" %}

+ + {% include 'errors_block.html' %} + + +
+
+
+{% endblock %} \ No newline at end of file diff --git a/templates/sidebar.html b/templates/sidebar.html index 1b0960f..5640ea4 100644 --- a/templates/sidebar.html +++ b/templates/sidebar.html @@ -8,6 +8,7 @@ {% if request.user.is_superuser %}
  • +
  • {% endif %}
  • diff --git a/templates/user.html b/templates/user.html index a97d6b2..376af13 100644 --- a/templates/user.html +++ b/templates/user.html @@ -11,7 +11,7 @@

    {{ user.username }}

    - {% include 'errors.html' %} + {% include 'errors_block.html' %} {{ user }} diff --git a/templates/users.html b/templates/users.html index eaaba2b..095c6ad 100644 --- a/templates/users.html +++ b/templates/users.html @@ -11,7 +11,7 @@

    {% trans "Accounts" %}

    - {% include 'errors.html' %} + {% include 'errors_block.html' %} {% for user in users %}
    diff --git a/users/views.py b/users/views.py index 8d6e362..93de9e6 100644 --- a/users/views.py +++ b/users/views.py @@ -1,4 +1,6 @@ from django.shortcuts import render +from django.http import HttpResponseRedirect +from django.core.urlresolvers import reverse from django.contrib.auth.models import User @@ -8,6 +10,12 @@ def users(request): :return: """ + if not request.user.is_authenticated(): + return HttpResponseRedirect(reverse('index')) + + if not request.user.is_superuser: + return HttpResponseRedirect(reverse('index')) + users = User.objects.filter(is_staff=False, is_superuser=False) return render(request, 'users.html', locals()) @@ -18,6 +26,12 @@ def user(request, user_id): :return: """ + if not request.user.is_authenticated(): + return HttpResponseRedirect(reverse('index')) + + if not request.user.is_superuser: + return HttpResponseRedirect(reverse('index')) + user = User.objects.get(id=user_id) return render(request, 'user.html', locals()) \ No newline at end of file diff --git a/vrtManager/connection.py b/vrtManager/connection.py index 09cd005..fd9fb80 100644 --- a/vrtManager/connection.py +++ b/vrtManager/connection.py @@ -436,7 +436,7 @@ class wvmConnect(object): for name in self.get_instances(): dom = self.get_instance(name) mem = util.get_xml_path(dom.XMLDesc(0), "/domain/currentMemory") - mem = int(mem) * 1024 + mem = int(mem) / 1024 cur_vcpu = util.get_xml_path(dom.XMLDesc(0), "/domain/vcpu/@current") if cur_vcpu: vcpu = cur_vcpu diff --git a/webvirtcloud/settings.py b/webvirtcloud/settings.py index 27a28dd..2b9102c 100644 --- a/webvirtcloud/settings.py +++ b/webvirtcloud/settings.py @@ -25,6 +25,7 @@ INSTALLED_APPS = ( 'instances', 'users', 'create', + 'logs', ) MIDDLEWARE_CLASSES = ( diff --git a/webvirtcloud/urls.py b/webvirtcloud/urls.py index 7357695..1828b1b 100644 --- a/webvirtcloud/urls.py +++ b/webvirtcloud/urls.py @@ -31,5 +31,6 @@ urlpatterns = patterns('', url(r'^console/$', 'console.views.console', name='console'), url(r'^create/(\d+)/$', 'create.views.create_instance', name='create_instance'), + url(r'^logs/$', 'logs.views.showlogs', name='showlogs'), (r'^admin/', include(admin.site.urls)), )