diff options
Diffstat (limited to 'bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py')
-rw-r--r-- | bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py b/bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py index 920d9efcd0..da7d4af07e 100644 --- a/bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py +++ b/bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py | |||
@@ -1,6 +1,6 @@ | |||
1 | from django.core.management.base import NoArgsCommand, CommandError | 1 | from django.core.management.base import NoArgsCommand, CommandError |
2 | from django.db import transaction | 2 | from django.db import transaction |
3 | from orm.models import Build, ToasterSetting | 3 | from orm.models import Build, ToasterSetting, LogMessage, Target |
4 | from bldcontrol.bbcontroller import getBuildEnvironmentController, ShellCmdException, BuildSetupException | 4 | from bldcontrol.bbcontroller import getBuildEnvironmentController, ShellCmdException, BuildSetupException |
5 | from bldcontrol.models import BuildRequest, BuildEnvironment, BRError, BRVariable | 5 | from bldcontrol.models import BuildRequest, BuildEnvironment, BRError, BRVariable |
6 | import os | 6 | import os |
@@ -109,6 +109,36 @@ class Command(NoArgsCommand): | |||
109 | from datetime import timedelta | 109 | from datetime import timedelta |
110 | # DISABLED environments locked for more than 30 seconds - they should be unlocked | 110 | # DISABLED environments locked for more than 30 seconds - they should be unlocked |
111 | #BuildEnvironment.objects.filter(lock=BuildEnvironment.LOCK_LOCK).filter(updated__lt = timezone.now() - timedelta(seconds = 30)).update(lock = BuildEnvironment.LOCK_FREE) | 111 | #BuildEnvironment.objects.filter(lock=BuildEnvironment.LOCK_LOCK).filter(updated__lt = timezone.now() - timedelta(seconds = 30)).update(lock = BuildEnvironment.LOCK_FREE) |
112 | |||
113 | |||
114 | # update all Builds that failed to start | ||
115 | |||
116 | for br in BuildRequest.objects.filter(state = BuildRequest.REQ_FAILED): | ||
117 | br.build.outcome = Build.FAILED | ||
118 | # transpose the launch errors in ToasterExceptions | ||
119 | for brerror in br.brerror_set.all(): | ||
120 | LogMessage.objects.create(build = br.build, level = LogMessage.EXCEPTION, message = brerror.errmsg) | ||
121 | br.build.save() | ||
122 | |||
123 | |||
124 | |||
125 | # update all BuildRequests without a build created | ||
126 | for br in BuildRequest.objects.filter(build = None): | ||
127 | br.build = Build.objects.create(project = br.project, completed_on = br.updated, started_on = br.created) | ||
128 | br.build.outcome = Build.REQ_FAILED | ||
129 | try: | ||
130 | br.build.machine = br.brvariable_set.get(name='MACHINE').value | ||
131 | except BRVariable.DoesNotExist: | ||
132 | pass | ||
133 | br.save() | ||
134 | # transpose target information | ||
135 | for brtarget in br.brtarget_set.all(): | ||
136 | Target.objects.create(build = br.build, target= brtarget.target) | ||
137 | # transpose the launch errors in ToasterExceptions | ||
138 | for brerror in br.brerror_set.all(): | ||
139 | LogMessage.objects.create(build = br.build, level = LogMessage.EXCEPTION, message = brerror.errmsg) | ||
140 | |||
141 | br.build.save() | ||
112 | pass | 142 | pass |
113 | 143 | ||
114 | 144 | ||