diff options
author | Hongyuan Ma | 2018-06-15 15:23:01 +0000 |
---|---|---|
committer | Hongyuan Ma | 2018-06-15 15:23:01 +0000 |
commit | 4010fbabd870d02afa19ac592c2bb18fddf539b8 (patch) | |
tree | 22a00594ae82c218ddc2fd9d830019d1fb985ea1 | |
parent | 61c00e7d453566586878296218b1c9689ba11e9c (diff) |
add branch_data;add cate_sn field;
-rw-r--r-- | web/apps/test_records/models.py | 15 | ||||
-rw-r--r-- | web/apps/test_records/views.py | 66 | ||||
-rw-r--r-- | web/apps/users/models.py | 4 | ||||
-rw-r--r-- | web/db_tools/data/branch_data.py | 5 | ||||
-rw-r--r-- | web/db_tools/data/category_data.py | 2 | ||||
-rw-r--r-- | web/db_tools/import_branch_data.py | 21 | ||||
-rw-r--r-- | web/db_tools/import_category_data.py | 2 |
7 files changed, 76 insertions, 39 deletions
diff --git a/web/apps/test_records/models.py b/web/apps/test_records/models.py index a1813db..ad64cd6 100644 --- a/web/apps/test_records/models.py +++ b/web/apps/test_records/models.py @@ -1,5 +1,5 @@ from datetime import datetime - +from django.utils import timezone from django.db import models # Create your models here. @@ -11,7 +11,7 @@ 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", + add_time = models.DateTimeField(default=timezone.now, verbose_name="branch added time", help_text="branch added time") class Meta: @@ -27,9 +27,10 @@ class TestCategory(models.Model): tests category """ cate_name = models.CharField(max_length=64, verbose_name="cate name", help_text="cate name") + cate_sn = models.CharField(max_length=32, unique=True, verbose_name="cate sn", help_text="cate sn") # 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") + add_time = models.DateTimeField(default=timezone.now, verbose_name="add time", help_text="category added time") class Meta: verbose_name = "tests category" @@ -93,8 +94,8 @@ class TestRecord(models.Model): 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") + meta_time = models.DateTimeField(default=timezone.now, verbose_name="meta time") + add_time = models.DateTimeField(default=timezone.now, verbose_name="test added time") class Meta: verbose_name = "tests" @@ -119,7 +120,7 @@ class TestDataSet(models.Model): ) status = models.IntegerField(choices=STATUS_CHOICE, verbose_name="status", help_text="status of this dataset") percentage = models.DecimalField(max_digits=8, decimal_places=4, verbose_name="percentage",help_text="percentage compared to previous dataset") - add_time = models.DateTimeField(default=datetime.now, verbose_name="test dataset time") + add_time = models.DateTimeField(default=timezone.now, verbose_name="test dataset time") class Meta: verbose_name = "test dataset" @@ -159,7 +160,7 @@ class TestResult(models.Model): ('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") + add_time = models.DateTimeField(default=timezone.now, verbose_name="test result added time") class Meta: verbose_name = "test result" diff --git a/web/apps/test_records/views.py b/web/apps/test_records/views.py index 8572c85..a4fe48c 100644 --- a/web/apps/test_records/views.py +++ b/web/apps/test_records/views.py @@ -4,7 +4,7 @@ from __future__ import unicode_literals from django.shortcuts import render from rest_framework.pagination import PageNumberPagination -from models import UserMachine +from models import UserMachine, TestCategory from .serializer import TestRecordSerializer, TestRecordDetailSerializer, LinuxInfoSerializer, MetaInfoSerializer, \ PGInfoSerializer, CreateTestRecordSerializer, CreateTestDateSetSerializer from rest_framework.views import APIView @@ -95,7 +95,8 @@ def TestRecordCreate(request, format=None): 'linux_info': linuxInfoRet.id, 'meta_info': metaInfoRet.id, 'test_machine_id': 1, - 'test_desc': 'here is desc' + 'test_desc': 'here is desc', + 'meta_time': metaInfoRet.date } testRecord = CreateTestRecordSerializer(data=test_record_data) testRecordRet = None @@ -105,34 +106,41 @@ def TestRecordCreate(request, format=None): msg = 'testRecord save error' return Response(msg, status=status.HTTP_202_ACCEPTED) - ro = json_data['pgbench']['ro'] + pgbench = json_data['pgbench'] # print(type(ro)) - for scale, dataset_list in ro.iteritems(): - print "ro[%s]=" % scale, dataset_list - for client_num, dataset in dataset_list.iteritems(): - print 'std is:'+ str(dataset['std']) - - test_dataset_data = { - 'test_record': testRecordRet.id, - 'clients': client_num, - 'scale': scale, - 'std': dataset['std'], - 'metric': dataset['metric'], - 'median': dataset['median'], - 'test_cate': 1, - # todo status,percentage - 'status': 1, - 'percentage': 0.062, - } - testDateSet = CreateTestDateSetSerializer(data=test_dataset_data) - testDateSetRet = None - if testDateSet.is_valid(): - print 'dataset valid' - testDateSetRet = testDateSet.save() - else: - print(testDateSet.errors) - msg = 'testDateSet save error' - return Response(msg, status=status.HTTP_202_ACCEPTED) + ro = pgbench['ro'] + for tag, tag_list in pgbench.iteritems(): + test_cate = TestCategory.objects.get(cate_sn=tag) + if not test_cate: + continue + else: + print test_cate.cate_name + for scale, dataset_list in tag_list.iteritems(): + print "ro[%s]=" % scale, dataset_list + for client_num, dataset in dataset_list.iteritems(): + print 'std is:'+ str(dataset['std']) + + test_dataset_data = { + 'test_record': testRecordRet.id, + 'clients': client_num, + 'scale': scale, + 'std': dataset['std'], + 'metric': dataset['metric'], + 'median': dataset['median'], + 'test_cate': test_cate.id, + # status,percentage cal by tarr + 'status': -1, + 'percentage': 0.0, + } + testDateSet = CreateTestDateSetSerializer(data=test_dataset_data) + testDateSetRet = None + if testDateSet.is_valid(): + print 'dataset valid' + testDateSetRet = testDateSet.save() + else: + print(testDateSet.errors) + msg = 'testDateSet save error' + return Response(msg, status=status.HTTP_202_ACCEPTED) diff --git a/web/apps/users/models.py b/web/apps/users/models.py index 269f388..16ef78b 100644 --- a/web/apps/users/models.py +++ b/web/apps/users/models.py @@ -1,5 +1,5 @@ from datetime import datetime - +from django.utils import timezone from django.db import models from django.contrib.auth.models import AbstractUser @@ -40,7 +40,7 @@ class UserMachine(models.Model): os_version = models.CharField(max_length=32, verbose_name="operation system version") comp_name = models.CharField(max_length=32, verbose_name="compiler name") comp_version = models.CharField(max_length=32, verbose_name="compiler version") - add_time = models.DateTimeField(default=datetime.now, verbose_name="machine added time") + add_time = models.DateTimeField(default=timezone.now, verbose_name="machine added time") class Meta: verbose_name = "user machines" diff --git a/web/db_tools/data/branch_data.py b/web/db_tools/data/branch_data.py new file mode 100644 index 0000000..fdbe10d --- /dev/null +++ b/web/db_tools/data/branch_data.py @@ -0,0 +1,5 @@ +row_data = [ + { + 'branch_name': 'HEAD', + }, +] diff --git a/web/db_tools/data/category_data.py b/web/db_tools/data/category_data.py index 12bb286..46a4e82 100644 --- a/web/db_tools/data/category_data.py +++ b/web/db_tools/data/category_data.py @@ -2,9 +2,11 @@ row_data = [ { 'cate_name': 'read only', 'cate_order': 1, + 'cate_sn': 'ro' }, { 'cate_name': 'read write', 'cate_order': 2, + 'cate_sn': 'rw', }, ]
\ No newline at end of file diff --git a/web/db_tools/import_branch_data.py b/web/db_tools/import_branch_data.py new file mode 100644 index 0000000..d643272 --- /dev/null +++ b/web/db_tools/import_branch_data.py @@ -0,0 +1,21 @@ +import sys +import os + +# Use django's model independently +pwd = os.path.dirname(os.path.realpath(__file__)) +sys.path.append(pwd) +path = 'D:\GitSpace\pgperffarm\web\pgperffarm' +sys.path.append(path) +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings") + +# Initialize django +import django +django.setup() + +from test_records.models import TestBranch +from data.branch_data import row_data + +for branch_item in row_data: + branch = TestBranch() + branch.branch_name = branch_item["branch_name"] + branch.save()
\ No newline at end of file diff --git a/web/db_tools/import_category_data.py b/web/db_tools/import_category_data.py index 33fcf88..4c677e1 100644 --- a/web/db_tools/import_category_data.py +++ b/web/db_tools/import_category_data.py @@ -20,5 +20,5 @@ for test_cate in row_data: cate = TestCategory() cate.cate_name = test_cate["cate_name"] cate.cate_order = test_cate["cate_order"] - + cate.cate_sn = test_cate["cate_sn"] cate.save()
\ No newline at end of file |