summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHongyuan Ma2018-06-15 11:56:18 +0000
committerHongyuan Ma2018-06-15 11:56:18 +0000
commit80a0dcd004429c6e3c9cded3694f65da48e97a8f (patch)
tree0016abc50b5eca8fbba2a63c72dea7bdad9cce75
parenta022b1fdfefcfb7086ae7c37a37651ab47b84f58 (diff)
add alias dbtool
-rw-r--r--web/apps/test_records/models.py12
-rw-r--r--web/apps/test_records/views.py30
-rw-r--r--web/apps/users/models.py5
-rw-r--r--web/db_tools/data/__init__.py0
-rw-r--r--web/db_tools/data/alias_data.py6
-rw-r--r--web/db_tools/data/category_data.py10
-rw-r--r--web/db_tools/data/category_date.py1
-rw-r--r--web/db_tools/data/machine_data.py12
-rw-r--r--web/db_tools/data/user_data.py14
-rw-r--r--web/db_tools/data/user_date.py26
-rw-r--r--web/db_tools/import_alias_data.py20
-rw-r--r--web/db_tools/import_category_data.py12
-rw-r--r--web/db_tools/import_machine_data.py29
-rw-r--r--web/db_tools/import_user_data.py5
14 files changed, 141 insertions, 41 deletions
diff --git a/web/apps/test_records/models.py b/web/apps/test_records/models.py
index 2dcf924..4332470 100644
--- a/web/apps/test_records/models.py
+++ b/web/apps/test_records/models.py
@@ -102,7 +102,9 @@ class TestRecord(models.Model):
class TestDataSet(models.Model):
- test_record_id = models.ForeignKey(TestRecord, verbose_name="test record id", help_text="test record id")
+
+ test_record = models.ForeignKey(TestRecord, verbose_name="test record id", help_text="test record id")
+ test_cate = models.ForeignKey(TestCategory, verbose_name="test cate id", help_text="test cate id")
clients = models.IntegerField(verbose_name="clients", help_text="clients of the test dataset")
scale = models.IntegerField(verbose_name="scale", help_text="scale of the test dataset")
std = models.DecimalField(max_digits=16, decimal_places=6, verbose_name="std",help_text="std of the test dataset")
@@ -110,10 +112,10 @@ class TestDataSet(models.Model):
median = models.DecimalField(max_digits=16, decimal_places=6, verbose_name="median",help_text="median of the test dataset")
STATUS_CHOICE = (
- ('-1', 'none'),
- ('1', 'improved'),
- ('2', 'quo'),
- ('3', 'regressive'),
+ (-1, 'none'),
+ (1, 'improved'),
+ (2, 'quo'),
+ (3, 'regressive'),
)
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")
diff --git a/web/apps/test_records/views.py b/web/apps/test_records/views.py
index 5587d85..5ed8b93 100644
--- a/web/apps/test_records/views.py
+++ b/web/apps/test_records/views.py
@@ -65,12 +65,18 @@ def TestRecordCreate(request, format=None):
linuxInfoRet = None
if linuxInfo.is_valid():
linuxInfoRet = linuxInfo.save()
+ else:
+ msg = 'linuxInfo save error'
+ return Response(msg, status=status.HTTP_202_ACCEPTED)
meta_data = json_data['meta']
metaInfo = MetaInfoSerializer(data=meta_data)
metaInfoRet = None
if metaInfo.is_valid():
metaInfoRet = metaInfo.save()
+ else:
+ msg = 'metaInfo save error'
+ return Response(msg, status=status.HTTP_202_ACCEPTED)
# pg_data = json_data['postgres']
pg_data = {
@@ -80,6 +86,9 @@ def TestRecordCreate(request, format=None):
pgInfoRet = None
if pgInfo.is_valid():
pgInfoRet = pgInfo.save()
+ else:
+ msg = 'pgInfo save error'
+ return Response(msg, status=status.HTTP_202_ACCEPTED)
test_record_data = {
'pg_info': pgInfoRet.id,
@@ -92,21 +101,28 @@ def TestRecordCreate(request, format=None):
testRecordRet = None
if testRecord.is_valid():
testRecordRet = testRecord.save()
+ else:
+ msg = 'testRecord save error'
+ return Response(msg, status=status.HTTP_202_ACCEPTED)
ro = json_data['pgbench']['ro']
# 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 dataset['std']
+ print 'std is:'+ str(dataset['std'])
+
test_dataset_data = {
'test_record_id': testRecordRet.id,
'clients': client_num,
'scale': scale,
'std': dataset['std'],
'metric': dataset['metric'],
- 'median': dataset['median']
+ 'median': dataset['median'],
# todo status,percentage
+ 'status': 1,
+ 'percentage': 0.062,
+ 'test_cate_id': 1,
}
testDateSet = CreateTestDateSetSerializer(data=test_dataset_data)
testDateSetRet = None
@@ -114,8 +130,12 @@ def TestRecordCreate(request, format=None):
print 'dataset valid'
testDateSetRet = testDateSet.save()
else:
- print testDateSet
+ print(testDateSet.errors)
+ msg = 'testDateSet save error'
+ return Response(msg, status=status.HTTP_202_ACCEPTED)
+
+
- msg = 'upload ok'
- return Response(msg, status=status.HTTP_200_OK)
+ msg = 'upload success'
+ return Response(msg, status=status.HTTP_201_CREATED)
diff --git a/web/apps/users/models.py b/web/apps/users/models.py
index 49657aa..269f388 100644
--- a/web/apps/users/models.py
+++ b/web/apps/users/models.py
@@ -24,6 +24,9 @@ class UserProfile(AbstractUser):
def __str__(self):
return self.user_name
+class Alias(models.Model):
+ name = models.CharField(max_length=32, verbose_name="alias name")
+ is_used = models.BooleanField(default=False,verbose_name="is_used")
class UserMachine(models.Model):
"""
@@ -32,7 +35,7 @@ class UserMachine(models.Model):
machine_sn = models.CharField(max_length=16, verbose_name="machine sn")
machine_secret = models.CharField(max_length=32, verbose_name="machine secret")
machine_owner = models.ForeignKey(UserProfile)
- alias = models.CharField(max_length=16, verbose_name="alias")
+ alias = models.ForeignKey(Alias, verbose_name="alias", help_text="alias")
os_name = models.CharField(max_length=32, verbose_name="operation system name")
os_version = models.CharField(max_length=32, verbose_name="operation system version")
comp_name = models.CharField(max_length=32, verbose_name="compiler name")
diff --git a/web/db_tools/data/__init__.py b/web/db_tools/data/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/web/db_tools/data/__init__.py
diff --git a/web/db_tools/data/alias_data.py b/web/db_tools/data/alias_data.py
new file mode 100644
index 0000000..e5fd402
--- /dev/null
+++ b/web/db_tools/data/alias_data.py
@@ -0,0 +1,6 @@
+row_data = [
+ {
+ 'name': 'Cabbage',
+ 'is_used': True
+ },
+]
diff --git a/web/db_tools/data/category_data.py b/web/db_tools/data/category_data.py
new file mode 100644
index 0000000..12bb286
--- /dev/null
+++ b/web/db_tools/data/category_data.py
@@ -0,0 +1,10 @@
+row_data = [
+ {
+ 'cate_name': 'read only',
+ 'cate_order': 1,
+ },
+ {
+ 'cate_name': 'read write',
+ 'cate_order': 2,
+ },
+] \ No newline at end of file
diff --git a/web/db_tools/data/category_date.py b/web/db_tools/data/category_date.py
deleted file mode 100644
index b8ac261..0000000
--- a/web/db_tools/data/category_date.py
+++ /dev/null
@@ -1 +0,0 @@
-row_data = [] \ No newline at end of file
diff --git a/web/db_tools/data/machine_data.py b/web/db_tools/data/machine_data.py
new file mode 100644
index 0000000..1661661
--- /dev/null
+++ b/web/db_tools/data/machine_data.py
@@ -0,0 +1,12 @@
+row_data = [
+ {
+ 'machine_sn': '123456',
+ 'machine_secret': '123456',
+ 'alias': 1,
+ 'os_name': 'Ubuntu',
+ 'os_version': 16,
+ 'comp_name': 'x86',
+ 'comp_version':'64',
+ 'machine_owner_id':1
+ },
+]
diff --git a/web/db_tools/data/user_data.py b/web/db_tools/data/user_data.py
new file mode 100644
index 0000000..aa4f3f6
--- /dev/null
+++ b/web/db_tools/data/user_data.py
@@ -0,0 +1,14 @@
+row_data = [
+ {
+ 'password': '123456',
+ 'is_superuser': False,
+ 'username': 'maleic',
+ 'first_name': 'Maleic',
+ 'last_name': 'Acid',
+ 'date_joined': '2018-06-14 21:34:51+08',
+ 'email': '[email protected]',
+ 'is_staff': False,
+ 'is_active': True,
+ 'last_login': '2018-06-14 21:34:51+08',
+ },
+] \ No newline at end of file
diff --git a/web/db_tools/data/user_date.py b/web/db_tools/data/user_date.py
deleted file mode 100644
index 017dcf1..0000000
--- a/web/db_tools/data/user_date.py
+++ /dev/null
@@ -1,26 +0,0 @@
-row_data = [
- {
- 'password': 'Alice123',
- 'is_superuser': False,
- 'username': 'Alice',
- 'email': '[email protected]',
- 'is_staff': False,
- 'is_active': False,
- },
- {
- 'password': 'Bob123',
- 'is_superuser': False,
- 'username': 'Bob',
- 'email': '[email protected]',
- 'is_staff': False,
- 'is_active': True,
- },
- {
- 'password': 'Noah123',
- 'is_superuser': False,
- 'username': 'Noah',
- 'email': '[email protected]',
- 'is_staff': False,
- 'is_active': True,
- }
-] \ No newline at end of file
diff --git a/web/db_tools/import_alias_data.py b/web/db_tools/import_alias_data.py
new file mode 100644
index 0000000..5365aca
--- /dev/null
+++ b/web/db_tools/import_alias_data.py
@@ -0,0 +1,20 @@
+import sys
+import os
+
+# Use django's model independently
+pwd = os.path.dirname(os.path.realpath(__file__))
+sys.path.append(pwd+ "../")
+os.environ.setdefault("DJANGO_SETTINGS_MODULE", "pgperffarm.settings")
+
+# Initialize django
+import django
+django.setup()
+
+from apps.users.models import Alias
+from data.alias_data import row_data
+
+for alias_item in row_data:
+ alias = Alias()
+ alias.name = alias_item["name"]
+ alias.is_used = alias_item["is_used"]
+ alias.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 33e09a7..7b8f942 100644
--- a/web/db_tools/import_category_data.py
+++ b/web/db_tools/import_category_data.py
@@ -10,4 +10,14 @@ os.environ.setdefault("DJANGO_SETTINGS_MODULE", "PerfFarm.settings")
import django
django.setup()
-# todo \ No newline at end of file
+# todo
+from apps.test_records.models import TestCategory
+from data.category_data import row_data
+from django.contrib.auth.hashers import make_password
+
+for test_cate in row_data:
+ cate = TestCategory()
+ cate.cate_name = test_cate["cate_name"]
+ cate.cate_order = test_cate["cate_order"]
+
+ cate.save() \ No newline at end of file
diff --git a/web/db_tools/import_machine_data.py b/web/db_tools/import_machine_data.py
new file mode 100644
index 0000000..115f840
--- /dev/null
+++ b/web/db_tools/import_machine_data.py
@@ -0,0 +1,29 @@
+import sys
+import os
+
+# Use django's model independently
+pwd = os.path.dirname(os.path.realpath(__file__))
+sys.path.append(pwd+ "../")
+os.environ.setdefault("DJANGO_SETTINGS_MODULE", "PerfFarm.settings")
+
+# Initialize django
+import django
+django.setup()
+
+from apps.user_operation.models import UserMachine
+from data.machine_data import row_data
+from django.contrib.auth.hashers import make_password
+
+for machine_item in row_data:
+ machine = UserMachine()
+
+ machine.machine_sn = machine_item["machine_sn"]
+ machine.machine_secret = machine_item["machine_secret"]
+ machine.alias = machine_item["alias"]
+ machine.os_name = machine_item["os_name"]
+ machine.os_version = machine_item["os_version"]
+ machine.comp_name = machine_item["comp_name"]
+ machine.comp_version = machine_item["comp_version"]
+ machine.machine_owner_id = machine_item["machine_owner_id"]
+
+ machine.save() \ No newline at end of file
diff --git a/web/db_tools/import_user_data.py b/web/db_tools/import_user_data.py
index db2934b..d06547a 100644
--- a/web/db_tools/import_user_data.py
+++ b/web/db_tools/import_user_data.py
@@ -4,14 +4,15 @@ import os
# Use django's model independently
pwd = os.path.dirname(os.path.realpath(__file__))
sys.path.append(pwd+ "../")
-os.environ.setdefault("DJANGO_SETTINGS_MODULE", "PerfFarm.settings")
+
+os.environ.setdefault("DJANGO_SETTINGS_MODULE", "pgperffarm.settings")
# Initialize django
import django
django.setup()
from apps.users.models import UserProfile
-from db_tools.data.user_date import row_data
+from data.user_data import row_data
from django.contrib.auth.hashers import make_password
for user_deatil in row_data: