summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHongyuan Ma2018-06-15 15:23:01 +0000
committerHongyuan Ma2018-06-15 15:23:01 +0000
commit4010fbabd870d02afa19ac592c2bb18fddf539b8 (patch)
tree22a00594ae82c218ddc2fd9d830019d1fb985ea1
parent61c00e7d453566586878296218b1c9689ba11e9c (diff)
add branch_data;add cate_sn field;
-rw-r--r--web/apps/test_records/models.py15
-rw-r--r--web/apps/test_records/views.py66
-rw-r--r--web/apps/users/models.py4
-rw-r--r--web/db_tools/data/branch_data.py5
-rw-r--r--web/db_tools/data/category_data.py2
-rw-r--r--web/db_tools/import_branch_data.py21
-rw-r--r--web/db_tools/import_category_data.py2
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