diff options
author | Hongyuan Ma | 2018-06-15 11:56:18 +0000 |
---|---|---|
committer | Hongyuan Ma | 2018-06-15 11:56:18 +0000 |
commit | 80a0dcd004429c6e3c9cded3694f65da48e97a8f (patch) | |
tree | 0016abc50b5eca8fbba2a63c72dea7bdad9cce75 | |
parent | a022b1fdfefcfb7086ae7c37a37651ab47b84f58 (diff) |
add alias dbtool
-rw-r--r-- | web/apps/test_records/models.py | 12 | ||||
-rw-r--r-- | web/apps/test_records/views.py | 30 | ||||
-rw-r--r-- | web/apps/users/models.py | 5 | ||||
-rw-r--r-- | web/db_tools/data/__init__.py | 0 | ||||
-rw-r--r-- | web/db_tools/data/alias_data.py | 6 | ||||
-rw-r--r-- | web/db_tools/data/category_data.py | 10 | ||||
-rw-r--r-- | web/db_tools/data/category_date.py | 1 | ||||
-rw-r--r-- | web/db_tools/data/machine_data.py | 12 | ||||
-rw-r--r-- | web/db_tools/data/user_data.py | 14 | ||||
-rw-r--r-- | web/db_tools/data/user_date.py | 26 | ||||
-rw-r--r-- | web/db_tools/import_alias_data.py | 20 | ||||
-rw-r--r-- | web/db_tools/import_category_data.py | 12 | ||||
-rw-r--r-- | web/db_tools/import_machine_data.py | 29 | ||||
-rw-r--r-- | web/db_tools/import_user_data.py | 5 |
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: |