Patchwork [bitbake-devel,2/3] Create Tasks Django model

login
register
mail settings
Submitter Calin Dragomir
Date June 12, 2013, 3:11 p.m.
Message ID <1371049906-17370-2-git-send-email-calinx.l.dragomir@intel.com>
Download mbox | patch
Permalink /patch/51599/
State New
Headers show

Comments

Calin Dragomir - June 12, 2013, 3:11 p.m.
This will be used to store Tasks related information in the database
using Django ORM.
---
 bitbake/lib/webhob/orm/__init__.py     |  0
 bitbake/lib/webhob/orm/models.py       | 50 ++++++++++++++++++++++++++++++++++
 bitbake/lib/webhob/orm/tests.py        | 16 +++++++++++
 bitbake/lib/webhob/orm/views.py        |  1 +
 bitbake/lib/webhob/whbmain/settings.py |  1 +
 5 files changed, 68 insertions(+)
 create mode 100644 bitbake/lib/webhob/orm/__init__.py
 create mode 100644 bitbake/lib/webhob/orm/models.py
 create mode 100644 bitbake/lib/webhob/orm/tests.py
 create mode 100644 bitbake/lib/webhob/orm/views.py

Patch

diff --git a/bitbake/lib/webhob/orm/__init__.py b/bitbake/lib/webhob/orm/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/bitbake/lib/webhob/orm/models.py b/bitbake/lib/webhob/orm/models.py
new file mode 100644
index 0000000..13eadd4
--- /dev/null
+++ b/bitbake/lib/webhob/orm/models.py
@@ -0,0 +1,50 @@ 
+from django.db import models
+
+class Tasks(models.Model):
+
+    SSTATE_RESULT = (
+        ('not_applicable', 'Not Applicable'), # For rest of tasks, but they still need checking.
+        ('unavailable', 'Unavailable'), # it is a miss
+        ('failed', 'Failed'), # there was a pkg, but the script failed
+        ('restored', 'Restored'), # succesfully restored
+    )
+
+    TASK_CODING = (
+        ('python', 'Python'),
+        ('shell', 'Shell'),
+    )
+
+    TASK_OUTCOME = (
+        ('succeded', 'Succeded'),
+        ('failed', 'Failed'),
+        ('existing', 'Existing'),
+        ('sstate', 'Sstate'),
+        ('covered', 'Covered'),
+    )
+
+    uuid = models.CharField(max_length=100)
+    task_id = models.IntegerField()
+    order = models.IntegerField()
+    task_executed = models.BooleanField() # True means Executed, False means Prebuilt
+    outcome = models.CharField(max_length=50, choices=TASK_OUTCOME)
+    sstate_checksum = models.CharField(max_length=100)
+    path_to_sstate_obj = models.FilePathField(max_length=500, blank=True)
+    recipe = models.CharField(max_length=100)
+    task_name = models.CharField(max_length=100)
+    source_url = models.FilePathField(max_length=200)
+    log_file = models.FilePathField(max_length=200, blank=True)
+    work_directory = models.FilePathField(max_length=200)
+    script_type = models.CharField(max_length=10, choices=TASK_CODING)
+    file_path = models.FilePathField(max_length=200)
+    line_number = models.IntegerField()
+    py_stack_trace = models.TextField()
+    disk_io = models.DecimalField(max_digits=20, decimal_places=10)
+    cpu_usage = models.IntegerField()
+    elapsed_time = models.CharField(max_length=50)
+    dependent_tasks = models.TextField() ## do we need only to show text here or insert references? how do we connect to other tasks from the same table ?
+    errors_no = models.IntegerField()
+    warnings_no = models.IntegerField()
+    error = models.TextField()
+    warning = models.TextField()
+    sstate_result = models.CharField(max_length=50, choices=SSTATE_RESULT)
+
diff --git a/bitbake/lib/webhob/orm/tests.py b/bitbake/lib/webhob/orm/tests.py
new file mode 100644
index 0000000..501deb7
--- /dev/null
+++ b/bitbake/lib/webhob/orm/tests.py
@@ -0,0 +1,16 @@ 
+"""
+This file demonstrates writing tests using the unittest module. These will pass
+when you run "manage.py test".
+
+Replace this with more appropriate tests for your application.
+"""
+
+from django.test import TestCase
+
+
+class SimpleTest(TestCase):
+    def test_basic_addition(self):
+        """
+        Tests that 1 + 1 always equals 2.
+        """
+        self.assertEqual(1 + 1, 2)
diff --git a/bitbake/lib/webhob/orm/views.py b/bitbake/lib/webhob/orm/views.py
new file mode 100644
index 0000000..60f00ef
--- /dev/null
+++ b/bitbake/lib/webhob/orm/views.py
@@ -0,0 +1 @@ 
+# Create your views here.
diff --git a/bitbake/lib/webhob/whbmain/settings.py b/bitbake/lib/webhob/whbmain/settings.py
index bc59543..6a4e67a 100644
--- a/bitbake/lib/webhob/whbmain/settings.py
+++ b/bitbake/lib/webhob/whbmain/settings.py
@@ -124,6 +124,7 @@  INSTALLED_APPS = (
     # 'django.contrib.admin',
     # Uncomment the next line to enable admin documentation:
     # 'django.contrib.admindocs',
+    'orm',
 )
 
 # A sample logging configuration. The only tangible logging