summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/toaster/orm/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/toaster/orm/models.py')
-rw-r--r--bitbake/lib/toaster/orm/models.py45
1 files changed, 37 insertions, 8 deletions
diff --git a/bitbake/lib/toaster/orm/models.py b/bitbake/lib/toaster/orm/models.py
index abc16d9b88..ba3ade06f1 100644
--- a/bitbake/lib/toaster/orm/models.py
+++ b/bitbake/lib/toaster/orm/models.py
@@ -34,11 +34,9 @@ class Build(models.Model):
34 (IN_PROGRESS, 'In Progress'), 34 (IN_PROGRESS, 'In Progress'),
35 ) 35 )
36 36
37 search_allowed_fields = ['machine', 'image_fstypes', 37 search_allowed_fields = ['machine', 'cooker_log_path', "target__target", "target__target_image_file__file_name"]
38 'cooker_log_path', "target__target"]
39 38
40 machine = models.CharField(max_length=100) 39 machine = models.CharField(max_length=100)
41 image_fstypes = models.CharField(max_length=100)
42 distro = models.CharField(max_length=100) 40 distro = models.CharField(max_length=100)
43 distro_version = models.CharField(max_length=100) 41 distro_version = models.CharField(max_length=100)
44 started_on = models.DateTimeField() 42 started_on = models.DateTimeField()
@@ -53,16 +51,46 @@ class Build(models.Model):
53 51
54@python_2_unicode_compatible 52@python_2_unicode_compatible
55class Target(models.Model): 53class Target(models.Model):
56 search_allowed_fields = ['target', 'image_fstypes', 'file_name'] 54 search_allowed_fields = ['target', 'file_name']
57 build = models.ForeignKey(Build) 55 build = models.ForeignKey(Build)
58 target = models.CharField(max_length=100) 56 target = models.CharField(max_length=100)
59 is_image = models.BooleanField(default = False) 57 is_image = models.BooleanField(default = False)
60 file_name = models.CharField(max_length=100)
61 file_size = models.IntegerField()
62 58
63 def __str__(self): 59 def __str__(self):
64 return self.target 60 return self.target
65 61
62class Target_Image_File(models.Model):
63 target = models.ForeignKey(Target)
64 file_name = models.FilePathField(max_length=100)
65 file_size = models.IntegerField()
66
67class Target_File(models.Model):
68 ITYPE_REGULAR = 1
69 ITYPE_DIRECTORY = 2
70 ITYPE_SYMLINK = 3
71 ITYPE_SOCKET = 4
72 ITYPE_FIFO = 5
73 ITYPE_CHARACTER = 6
74 ITYPE_BLOCK = 7
75 ITYPE_SYMBLINK = 8
76 ITYPES = ( (ITYPE_REGULAR ,'regular'),
77 ( ITYPE_DIRECTORY ,'directory'),
78 ( ITYPE_SYMLINK ,'symlink'),
79 ( ITYPE_SOCKET ,'socket'),
80 ( ITYPE_FIFO ,'fifo'),
81 ( ITYPE_CHARACTER ,'character'),
82 ( ITYPE_BLOCK ,'block'),
83 ( ITYPE_SYMLINK ,'symblink'))
84
85 target = models.ForeignKey(Target)
86 path = models.FilePathField()
87 size = models.IntegerField()
88 inodetype = models.IntegerField(choices = ITYPES)
89 permission = models.IntegerField()
90 owner = models.CharField(max_length=128)
91 group = models.CharField(max_length=128)
92 directory = models.ForeignKey('Target_File', related_name="directory_set")
93 sym_target = models.ForeignKey('Target_File', related_name="symlink_set", blank=True)
66 94
67 95
68class TaskManager(models.Manager): 96class TaskManager(models.Manager):
@@ -149,7 +177,7 @@ class Task(models.Model):
149 line_number = models.IntegerField(default=0) 177 line_number = models.IntegerField(default=0)
150 disk_io = models.IntegerField(null=True) 178 disk_io = models.IntegerField(null=True)
151 cpu_usage = models.DecimalField(max_digits=6, decimal_places=2, null=True) 179 cpu_usage = models.DecimalField(max_digits=6, decimal_places=2, null=True)
152 elapsed_time = models.CharField(max_length=50, default=0) 180 elapsed_time = models.DecimalField(max_digits=6, decimal_places=2, null=True)
153 sstate_result = models.IntegerField(choices=SSTATE_RESULT, default=SSTATE_NA) 181 sstate_result = models.IntegerField(choices=SSTATE_RESULT, default=SSTATE_NA)
154 message = models.CharField(max_length=240) 182 message = models.CharField(max_length=240)
155 logfile = models.FilePathField(max_length=255, blank=True) 183 logfile = models.FilePathField(max_length=255, blank=True)
@@ -236,7 +264,6 @@ class Recipe(models.Model):
236 description = models.CharField(max_length=100, blank=True) 264 description = models.CharField(max_length=100, blank=True)
237 section = models.CharField(max_length=100, blank=True) 265 section = models.CharField(max_length=100, blank=True)
238 license = models.CharField(max_length=200, blank=True) 266 license = models.CharField(max_length=200, blank=True)
239 licensing_info = models.TextField(blank=True)
240 homepage = models.URLField(blank=True) 267 homepage = models.URLField(blank=True)
241 bugtracker = models.URLField(blank=True) 268 bugtracker = models.URLField(blank=True)
242 file_path = models.FilePathField(max_length=255) 269 file_path = models.FilePathField(max_length=255)
@@ -280,6 +307,7 @@ class Variable(models.Model):
280 307
281class VariableHistory(models.Model): 308class VariableHistory(models.Model):
282 variable = models.ForeignKey(Variable, related_name='vhistory') 309 variable = models.ForeignKey(Variable, related_name='vhistory')
310 value = models.TextField(blank=True)
283 file_name = models.FilePathField(max_length=255) 311 file_name = models.FilePathField(max_length=255)
284 line_number = models.IntegerField(null=True) 312 line_number = models.IntegerField(null=True)
285 operation = models.CharField(max_length=16) 313 operation = models.CharField(max_length=16)
@@ -294,6 +322,7 @@ class LogMessage(models.Model):
294 (ERROR, "error") ) 322 (ERROR, "error") )
295 323
296 build = models.ForeignKey(Build) 324 build = models.ForeignKey(Build)
325 task = models.ForeignKey(Task, blank = True, null=True)
297 level = models.IntegerField(choices=LOG_LEVEL, default=INFO) 326 level = models.IntegerField(choices=LOG_LEVEL, default=INFO)
298 message=models.CharField(max_length=240) 327 message=models.CharField(max_length=240)
299 pathname = models.FilePathField(max_length=255, blank=True) 328 pathname = models.FilePathField(max_length=255, blank=True)