add alias dbtool
authorHongyuan Ma <CS_MaleicAcid@163.com>
Fri, 15 Jun 2018 11:56:18 +0000 (19:56 +0800)
committerHongyuan Ma <CS_MaleicAcid@163.com>
Fri, 15 Jun 2018 11:56:18 +0000 (19:56 +0800)
14 files changed:
web/apps/test_records/models.py
web/apps/test_records/views.py
web/apps/users/models.py
web/db_tools/data/__init__.py [new file with mode: 0644]
web/db_tools/data/alias_data.py [new file with mode: 0644]
web/db_tools/data/category_data.py [new file with mode: 0644]
web/db_tools/data/category_date.py [deleted file]
web/db_tools/data/machine_data.py [new file with mode: 0644]
web/db_tools/data/user_data.py [new file with mode: 0644]
web/db_tools/data/user_date.py [deleted file]
web/db_tools/import_alias_data.py [new file with mode: 0644]
web/db_tools/import_category_data.py
web/db_tools/import_machine_data.py [new file with mode: 0644]
web/db_tools/import_user_data.py

index 2dcf92403fd2cbd598bdaccdf924ec58df20cba6..43324701aa67f085005eede516bc7942e5b42b66 100644 (file)
@@ -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")
index 5587d85a660dde1069d1c67600bbb0ba51573128..5ed8b933e9439799ade464dc57b9e7053eb6322d 100644 (file)
@@ -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)
index 49657aaf054c80cf4d3e944e05e95233d62f5ee8..269f388903409ea25cb8b00b2c204fc19bcddbb2 100644 (file)
@@ -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 (file)
index 0000000..e69de29
diff --git a/web/db_tools/data/alias_data.py b/web/db_tools/data/alias_data.py
new file mode 100644 (file)
index 0000000..e5fd402
--- /dev/null
@@ -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 (file)
index 0000000..12bb286
--- /dev/null
@@ -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 (file)
index b8ac261..0000000
+++ /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 (file)
index 0000000..1661661
--- /dev/null
@@ -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 (file)
index 0000000..aa4f3f6
--- /dev/null
@@ -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': 'mahongyuan1997@gmail.com',
+        '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 (file)
index 017dcf1..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-row_data = [
-    {
-        'password': 'Alice123',
-        'is_superuser': False,
-        'username': 'Alice',
-        'email': 'Alice@gmail.com',
-        'is_staff': False,
-        'is_active': False,
-    },
-    {
-        'password': 'Bob123',
-        'is_superuser': False,
-        'username': 'Bob',
-        'email': 'Bob@gmail.com',
-        'is_staff': False,
-        'is_active': True,
-    },
-    {
-        'password': 'Noah123',
-        'is_superuser': False,
-        'username': 'Noah',
-        'email': 'Noah@gmail.com',
-        '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 (file)
index 0000000..5365aca
--- /dev/null
@@ -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
index 33e09a7bc213ea8f2c26cdfd8dc843d0b049169e..7b8f9427385ca0b84614a56d8754e2818b9da5f8 100644 (file)
@@ -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 (file)
index 0000000..115f840
--- /dev/null
@@ -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
index db2934bdf6929d5600f2d084ff4636206f360d57..d06547a621f48a9c17f18657d0001872cb487df5 100644 (file)
@@ -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: