+++ /dev/null
-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
+++ /dev/null
-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
-from django.shortcuts import render
-
-# Create your views here.
class TestsConfig(AppConfig):
- name = 'tests'
+ name = 'test_records'
--- /dev/null
+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
--- /dev/null
+from rest_framework import serializers
+
+class TestRecordSerializer(serializers):
--- /dev/null
+# -*- 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
--- /dev/null
+# -*- 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
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"
import sys
# Load local settings overrides
-from settings_local import *
+from .settings_local import *
"""
Django settings for pgperfarm project.
'django_gravatar',
'rest_framework',
'users',
- 'test',
+ 'test_records',
'user_operation'
)
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'),
--- /dev/null
+"""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))