diff options
author | MaleicAcid | 2018-06-02 08:34:59 +0000 |
---|---|---|
committer | MaleicAcid | 2018-06-02 08:34:59 +0000 |
commit | a37dab30d2504d0994f748da595c8f14f644a711 (patch) | |
tree | 4bf5ad81fbed87935034e3a9a371b86ff5b9d0e6 | |
parent | 27a2fc1992ccdfc64719af9484cee4399779d97e (diff) |
adjust model class
-rw-r--r-- | web/apps/test/models.py | 61 | ||||
-rw-r--r-- | web/apps/test/views.py | 6 | ||||
-rw-r--r-- | web/apps/test_records/__init__.py (renamed from web/apps/test/__init__.py) | 0 | ||||
-rw-r--r-- | web/apps/test_records/admin.py (renamed from web/apps/test/admin.py) | 0 | ||||
-rw-r--r-- | web/apps/test_records/apps.py (renamed from web/apps/test/apps.py) | 2 | ||||
-rw-r--r-- | web/apps/test_records/models.py | 147 | ||||
-rw-r--r-- | web/apps/test_records/serializer.py | 3 | ||||
-rw-r--r-- | web/apps/test_records/tests.py (renamed from web/apps/test/tests.py) | 0 | ||||
-rw-r--r-- | web/apps/test_records/view_base.py | 28 | ||||
-rw-r--r-- | web/apps/test_records/views.py | 18 | ||||
-rw-r--r-- | web/apps/user_operation/models.py | 40 | ||||
-rw-r--r-- | web/pgperffarm/settings.py | 4 | ||||
-rw-r--r-- | web/pgperffarm/urls.py | 4 | ||||
-rw-r--r-- | web/pgperffarm/view_base.py | 22 |
14 files changed, 225 insertions, 110 deletions
diff --git a/web/apps/test/models.py b/web/apps/test/models.py deleted file mode 100644 index 8789ed3..0000000 --- a/web/apps/test/models.py +++ /dev/null @@ -1,61 +0,0 @@ -from datetime import datetime - -from django.db import models - -# Create your models here. -from users.models import UserProfile, UserMachine - - -class TestBranch(models.Model): - """ - test brand - """ - branch_name = models.CharField(max_length=128, verbose_name="branch name", help_text="branch name") - add_time = models.DateTimeField(default=datetime.now, verbose_name="branch added time", - help_text="branch added time") - - class Meta: - verbose_name = "test branch" - verbose_name_plural = "test branch" - - def __str__(self): - return self.branch_name - - -class TestCategory(models.Model): - """ - tests category - """ - cate_name = models.CharField(max_length=64, verbose_name="cate name", help_text="cate name") - # cate_parent = models.ForeignKey("self", verbose_name="parent category", related_name="sub_cat", help_text="parent category") - cate_order = models.IntegerField(verbose_name="cate order", help_text="order in the current level") - add_time = models.DateTimeField(default=datetime.now, verbose_name="add time", help_text="category added time") - - class Meta: - verbose_name = "tests category" - verbose_name_plural = "tests category" - - def __str__(self): - return self.cate_name - - -class Test(models.Model): - """ - tests - """ - test_name = models.CharField(max_length=128, verbose_name="test name", help_text="test name") - test_desc = models.TextField(verbose_name="test desc", help_text="test desc") - test_branch_id = models.ForeignKey(TestBranch, verbose_name="test category", help_text="test category") - test_cate_id = models.ForeignKey(TestCategory, verbose_name="test category", help_text="test category") - # test_item_id = models.CharField(max_length=32, unique=True, verbose_name="test sn", help_text="test sn") - test_owner = models.ForeignKey(UserProfile, verbose_name="test owner", help_text="person who add this test item") - test_machine_id = models.ForeignKey(UserMachine, verbose_name="test owner", - help_text="person who add this test item") - add_time = models.DateTimeField(default=datetime.now, verbose_name="test added time") - - class Meta: - verbose_name = "tests" - verbose_name_plural = "tests" - - def __str__(self): - return self.test_name diff --git a/web/apps/test/views.py b/web/apps/test/views.py deleted file mode 100644 index e784a0b..0000000 --- a/web/apps/test/views.py +++ /dev/null @@ -1,6 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.shortcuts import render - -# Create your views here. diff --git a/web/apps/test/__init__.py b/web/apps/test_records/__init__.py index e69de29..e69de29 100644 --- a/web/apps/test/__init__.py +++ b/web/apps/test_records/__init__.py diff --git a/web/apps/test/admin.py b/web/apps/test_records/admin.py index 13be29d..13be29d 100644 --- a/web/apps/test/admin.py +++ b/web/apps/test_records/admin.py diff --git a/web/apps/test/apps.py b/web/apps/test_records/apps.py index e8ea9da..fb49fc9 100644 --- a/web/apps/test/apps.py +++ b/web/apps/test_records/apps.py @@ -5,4 +5,4 @@ from django.apps import AppConfig class TestsConfig(AppConfig): - name = 'tests' + name = 'test_records' diff --git a/web/apps/test_records/models.py b/web/apps/test_records/models.py new file mode 100644 index 0000000..5b52ac6 --- /dev/null +++ b/web/apps/test_records/models.py @@ -0,0 +1,147 @@ +from datetime import datetime + +from django.db import models + +# Create your models here. +from users.models import UserProfile, UserMachine + + +class TestBranch(models.Model): + """ + test brand + """ + branch_name = models.CharField(max_length=128, verbose_name="branch name", help_text="branch name") + add_time = models.DateTimeField(default=datetime.now, verbose_name="branch added time", + help_text="branch added time") + + class Meta: + verbose_name = "test branch" + verbose_name_plural = "test branch" + + def __str__(self): + return self.branch_name + + +class TestCategory(models.Model): + """ + tests category + """ + cate_name = models.CharField(max_length=64, verbose_name="cate name", help_text="cate name") + # cate_parent = models.ForeignKey("self", verbose_name="parent category", related_name="sub_cat", help_text="parent category") + cate_order = models.IntegerField(verbose_name="cate order", help_text="order in the current level") + add_time = models.DateTimeField(default=datetime.now, verbose_name="add time", help_text="category added time") + + class Meta: + verbose_name = "tests category" + verbose_name_plural = "tests category" + + def __str__(self): + return self.cate_name + + +class PGInfo(models.Model): + """ + pg info + """ + pg_branch = models.ForeignKey(TestBranch, verbose_name="pg branch", help_text="pg branch") + + class Meta: + verbose_name = "pg info" + verbose_name_plural = "pg info" + + def __str__(self): + return self.pg_branch + +class MetaInfo(models.Model): + """ + pg info + """ + date = models.DateTimeField(verbose_name="date", help_text="date") + uname = models.TextField(verbose_name="uname", help_text="uname") + benchmark = models.TextField(verbose_name="benchmark", help_text="benchmark") + name = models.TextField(verbose_name="name", help_text="name") + + class Meta: + verbose_name = "meta info" + verbose_name_plural = "meta info" + + def __str__(self): + return self.pg_branch + +class LinuxInfo(models.Model): + """ + linux info + """ + mounts = models.TextField(verbose_name="mounts", help_text="mounts") + cpuinfo = models.TextField(verbose_name="cpuinfo", help_text="cpuinfo") + sysctl = models.TextField(verbose_name="sysctl", help_text="sysctl") + meminfo = models.TextField(verbose_name="meminfo", help_text="meminfo") + + class Meta: + verbose_name = "linux info" + verbose_name_plural = "linux info" + + def __str__(self): + return self.mounts + +class TestRecord(models.Model): + """ + tests + """ + test_machine_id = models.ForeignKey(UserMachine, verbose_name="test owner", + help_text="person who add this test item") + pg_info = models.ForeignKey(PGInfo, verbose_name="pg info", help_text="pg info") + meta_info = models.ForeignKey(MetaInfo, verbose_name="meta info", help_text="meta info") + linux_info = models.ForeignKey(LinuxInfo, verbose_name="linux info", help_text="linux info") + + test_desc = models.TextField(verbose_name="test desc", help_text="test desc") + # test_branch_id = models.ForeignKey(TestBranch, verbose_name="test category", help_text="test category") + + add_time = models.DateTimeField(default=datetime.now, verbose_name="test added time") + + class Meta: + verbose_name = "tests" + verbose_name_plural = "tests" + + def __str__(self): + return self.test_name + +class TestResult(models.Model): + """ + test result sample: + + "latency": -1, + "scale": "10", + "end": 1526184453.133798, + "clients": "2", + "start": 1526184333.102856, + "run": 0, + "threads": "2", + "mode": "simple", + "duration": "120", + "tps": "369.666116", + "read-only": false + + """ + + test_record_id = models.ForeignKey(TestRecord, verbose_name="test item", help_text="test item") + test_cate = models.ForeignKey(TestCategory, verbose_name="test category", help_text="test category") + latency = models.IntegerField(verbose_name="latency", help_text="latency of the test result") + scale = models.IntegerField(verbose_name="scale", help_text="scale of the test result") + end = models.DecimalField(max_digits=16, decimal_places=6, verbose_name="end", + help_text="endtime of the test result") + clients = models.IntegerField(verbose_name="clients", help_text="clients of the test result") + start = models.DecimalField(max_digits=16, decimal_places=6, verbose_name="start", + help_text="starttime of the test result") + run = models.IntegerField(verbose_name="run", help_text="run number") + threads = models.IntegerField(verbose_name="threads", help_text="threads of the test result") + + MODE_CHOICE = ( + ('1', 'simple'), + ) + mode = models.IntegerField(choices=MODE_CHOICE, verbose_name="mode", help_text="test mode") + add_time = models.DateTimeField(default=datetime.now, verbose_name="test result added time") + + class Meta: + verbose_name = "test result" + verbose_name_plural = "test result"
\ No newline at end of file diff --git a/web/apps/test_records/serializer.py b/web/apps/test_records/serializer.py new file mode 100644 index 0000000..dfc2479 --- /dev/null +++ b/web/apps/test_records/serializer.py @@ -0,0 +1,3 @@ +from rest_framework import serializers + +class TestRecordSerializer(serializers): diff --git a/web/apps/test/tests.py b/web/apps/test_records/tests.py index 5982e6b..5982e6b 100644 --- a/web/apps/test/tests.py +++ b/web/apps/test_records/tests.py diff --git a/web/apps/test_records/view_base.py b/web/apps/test_records/view_base.py new file mode 100644 index 0000000..401add2 --- /dev/null +++ b/web/apps/test_records/view_base.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +from django.views.generic.base import View + +class TestListView(View): + def get(self, request): + ''' + status page + :param request: + :return: + ''' + json_list = [] + # testRecords = TestRecord.objects.all(); + testRecords = [1,2] + + from django.forms.models import model_to_dict + # for record in testRecords: + # json_dict = {} + # json_dict = model_to_dict(record) + # + # json_list.append(json_dict) + + import json + from django.core import serializers + json_data = serializers.serialize('json', testRecords) + json_data = json.loads(json_data) + from django.http import HttpResponse, JsonResponse + + return JsonResponse(json_data, safe=False)
\ No newline at end of file diff --git a/web/apps/test_records/views.py b/web/apps/test_records/views.py new file mode 100644 index 0000000..f5a48fd --- /dev/null +++ b/web/apps/test_records/views.py @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.shortcuts import render +from rest_framework.views import APIView +from rest_framework.response import Response +from rest_framework import status + +from .models import TestRecord +# Create your views here. +class SnippetList(APIView): + """ + List all snippets, or create a new snippet. + """ + def get(self, request, format=None): + testRecord = TestRecord.objects.all() + serializer = SnippetSerializer(snippets, many=True) + return Response(serializer.data)
\ No newline at end of file diff --git a/web/apps/user_operation/models.py b/web/apps/user_operation/models.py index da65846..861ffe9 100644 --- a/web/apps/user_operation/models.py +++ b/web/apps/user_operation/models.py @@ -2,46 +2,6 @@ from datetime import datetime from django.db import models from users.models import UserMachine -from test.models import Test, TestBranch - # Create your models here. -class TestResult(models.Model): - """ - test result sample: - - "latency": -1, - "scale": "10", - "end": 1526184453.133798, - "clients": "2", - "start": 1526184333.102856, - "run": 0, - "threads": "2", - "mode": "simple", - "duration": "120", - "tps": "369.666116", - "read-only": false - - """ - - test_item = models.ForeignKey(Test, verbose_name="test item", help_text="test item") - latency = models.IntegerField(verbose_name="latency", help_text="latency of the test result") - scale = models.IntegerField(verbose_name="scale", help_text="scale of the test result") - end = models.DecimalField(max_digits=16, decimal_places=6, verbose_name="end", - help_text="endtime of the test result") - clients = models.IntegerField(verbose_name="clients", help_text="clients of the test result") - start = models.DecimalField(max_digits=16, decimal_places=6, verbose_name="start", - help_text="starttime of the test result") - run = models.IntegerField(verbose_name="run", help_text="run number") - threads = models.IntegerField(verbose_name="threads", help_text="threads of the test result") - - MODE_CHOICE = ( - ('1', 'simple'), - ) - mode = models.IntegerField(choices=MODE_CHOICE, verbose_name="mode", help_text="test mode") - add_time = models.DateTimeField(default=datetime.now, verbose_name="test result added time") - - class Meta: - verbose_name = "test result" - verbose_name_plural = "test result" diff --git a/web/pgperffarm/settings.py b/web/pgperffarm/settings.py index 4c6d8b2..b5f9e14 100644 --- a/web/pgperffarm/settings.py +++ b/web/pgperffarm/settings.py @@ -3,7 +3,7 @@ import os import sys # Load local settings overrides -from settings_local import * +from .settings_local import * """ Django settings for pgperfarm project. @@ -46,7 +46,7 @@ INSTALLED_APPS = ( 'django_gravatar', 'rest_framework', 'users', - 'test', + 'test_records', 'user_operation' ) diff --git a/web/pgperffarm/urls.py b/web/pgperffarm/urls.py index e923a02..5d4d6e2 100644 --- a/web/pgperffarm/urls.py +++ b/web/pgperffarm/urls.py @@ -16,11 +16,15 @@ from django.conf.urls import include, url from django.contrib import admin from django.views.generic.base import RedirectView +from rest_framework.documentation import include_docs_urls +from test_records.view_base import TestListView urlpatterns = [ # url(r'^admin/', admin.site.urls), url(r'^api-auth/', include('rest_framework.urls')), + url(r'status/$', TestListView.as_view(), name='test-list'), + url(r'docs/', include_docs_urls(title='pgperffarm')), # Static pages # url(r'^$', 'pgperffarm.views.index', name='index'), # url(r'^/licence$', 'pgperffarm.views.licence', name='licence'), diff --git a/web/pgperffarm/view_base.py b/web/pgperffarm/view_base.py new file mode 100644 index 0000000..91e1808 --- /dev/null +++ b/web/pgperffarm/view_base.py @@ -0,0 +1,22 @@ +"""Views for the core PGPerfFarm app""" + +from django.shortcuts import render_to_response +from django.template import RequestContext + +import datetime + + +# Handle the static pages +def index(request): + return render_to_response('index.html', + context_instance=RequestContext(request)) + + +def licence(request): + return render_to_response('licence.html', + context_instance=RequestContext(request)) + + +def ppolicy(request): + return render_to_response('ppolicy.html', + context_instance=RequestContext(request)) |