1
0
mirror of https://git.yoctoproject.org/poky synced 2026-06-03 01:40:07 +00:00

bitbake: toaster: properly set layers when running a build

This patch enables the localhost build controller to
properly set the layers before the build runs.

It creates the checkout directories under BuildEnvironment
sourcedir directory, and runs the build in the buildir
directory.

Build launch errors are tracked in the newly added BRError table.
These are different from build errors, in the sense that the
build can't start due to these errors.

(Bitbake rev: 1868d5635b517e0fe1b874674ea7a78910b26e2e)

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Alexandru DAMIAN
2014-07-15 19:31:10 +01:00
committed by Richard Purdie
parent 6e71c276b5
commit 1b9175af3f
4 changed files with 226 additions and 25 deletions
@@ -1,8 +1,8 @@
from django.core.management.base import NoArgsCommand, CommandError
from django.db import transaction
from orm.models import Build
from bldcontrol.bbcontroller import getBuildEnvironmentController, ShellCmdException
from bldcontrol.models import BuildRequest, BuildEnvironment
from bldcontrol.bbcontroller import getBuildEnvironmentController, ShellCmdException, BuildSetupException
from bldcontrol.models import BuildRequest, BuildEnvironment, BRError
import os
class Command(NoArgsCommand):
@@ -25,6 +25,7 @@ class Command(NoArgsCommand):
return br
def schedule(self):
import traceback
try:
br = None
try:
@@ -63,15 +64,19 @@ class Command(NoArgsCommand):
# cleanup to be performed by toaster when the deed is done
except ShellCmdException as e:
import traceback
print " EE Error executing shell command\n", e
traceback.format_exc(e)
except Exception as e:
import traceback
traceback.print_exc()
raise e
print " EE Error executing shell command\n", e
traceback.print_exc(e)
BRError.objects.create(req = br,
errtype = str(type(e)),
errmsg = str(e),
traceback = traceback.format_exc(e))
br.state = BuildRequest.REQ_FAILED
br.save()
bec.be.lock = BuildEnvironment.LOCK_FREE
bec.be.save()
def cleanup(self):
from django.utils import timezone