adjust model class
authorMaleicAcid <CS_MaleicAcid@163\.com>
Sat, 2 Jun 2018 08:34:59 +0000 (16:34 +0800)
committerMaleicAcid <CS_MaleicAcid@163\.com>
Sat, 2 Jun 2018 08:34:59 +0000 (16:34 +0800)
14 files changed:
web/apps/test/models.py [deleted file]
web/apps/test/views.py [deleted file]
web/apps/test_records/__init__.py [moved from web/apps/test/__init__.py with 100% similarity]
web/apps/test_records/admin.py [moved from web/apps/test/admin.py with 100% similarity]
web/apps/test_records/apps.py [moved from web/apps/test/apps.py with 83% similarity]
web/apps/test_records/models.py [new file with mode: 0644]
web/apps/test_records/serializer.py [new file with mode: 0644]
web/apps/test_records/tests.py [moved from web/apps/test/tests.py with 100% similarity]
web/apps/test_records/view_base.py [new file with mode: 0644]
web/apps/test_records/views.py [new file with mode: 0644]
web/apps/user_operation/models.py
web/pgperffarm/settings.py
web/pgperffarm/urls.py
web/pgperffarm/view_base.py [new file with mode: 0644]

diff --git a/web/apps/test/models.py b/web/apps/test/models.py
deleted file mode 100644 (file)
index 8789ed3..0000000
+++ /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 (file)
index e784a0b..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
-from django.shortcuts import render
-
-# Create your views here.
similarity index 83%
rename from web/apps/test/apps.py
rename to web/apps/test_records/apps.py
index e8ea9da36fe2610489781cab86268443b3cada66..fb49fc985334f87bbcbfaec471018e60827c76ae 100644 (file)
@@ -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 (file)
index 0000000..5b52ac6
--- /dev/null
@@ -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 (file)
index 0000000..dfc2479
--- /dev/null
@@ -0,0 +1,3 @@
+from rest_framework import serializers
+
+class TestRecordSerializer(serializers):
diff --git a/web/apps/test_records/view_base.py b/web/apps/test_records/view_base.py
new file mode 100644 (file)
index 0000000..401add2
--- /dev/null
@@ -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 (file)
index 0000000..f5a48fd
--- /dev/null
@@ -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
index da65846f3d92b42740353a830ab1f3f1bb7331fd..861ffe9328841424b491f39821150277edff3f48 100644 (file)
@@ -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"
index 4c6d8b2cd9495b27e6bf095227e8b1620f4d36d1..b5f9e14c161d85655bee581f74e53b229180503e 100644 (file)
@@ -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'
 )
 
index e923a0243c12ab6c06c5389ad08495f8a5c08530..5d4d6e23387b78c8e92f424cc159acc66c661b22 100644 (file)
@@ -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 (file)
index 0000000..91e1808
--- /dev/null
@@ -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))