diff --git a/bitbake/bin/toaster b/bitbake/bin/toaster index f92d38ecab..e0aac1a7bb 100755 --- a/bitbake/bin/toaster +++ b/bitbake/bin/toaster @@ -254,7 +254,7 @@ case $CMD in return 4 fi export BITBAKE_UI='toasterui' - $MANAGE runbuilds & echo $! >${BUILDDIR}/.runbuilds.pid + $MANAGE runbuilds & # set fail safe stop system on terminal exit trap stop_system SIGHUP echo "Successful ${CMD}." diff --git a/bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py b/bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py index 7f7a5a9555..df11f9d162 100644 --- a/bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py +++ b/bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py @@ -11,9 +11,11 @@ from orm.models import Build, LogMessage, Target import logging import traceback import signal +import os logger = logging.getLogger("toaster") + class Command(NoArgsCommand): args = "" help = "Schedules and executes build requests as possible. "\ @@ -50,7 +52,7 @@ class Command(NoArgsCommand): logger.debug("runbuilds: No build env") return - logger.info("runbuilds: starting build %s, environment %s" % \ + logger.info("runbuilds: starting build %s, environment %s" % (br, bec.be)) # let the build request know where it is being executed @@ -80,7 +82,7 @@ class Command(NoArgsCommand): def archive(self): for br in BuildRequest.objects.filter(state=BuildRequest.REQ_ARCHIVE): - if br.build == None: + if br.build is None: br.state = BuildRequest.REQ_FAILED else: br.state = BuildRequest.REQ_COMPLETED @@ -99,10 +101,10 @@ class Command(NoArgsCommand): Q(updated__lt=timezone.now() - timedelta(seconds=30)) ).update(lock=BuildEnvironment.LOCK_FREE) - # update all Builds that were in progress and failed to start - for br in BuildRequest.objects.filter(state=BuildRequest.REQ_FAILED, - build__outcome=Build.IN_PROGRESS): + for br in BuildRequest.objects.filter( + state=BuildRequest.REQ_FAILED, + build__outcome=Build.IN_PROGRESS): # transpose the launch errors in ToasterExceptions br.build.outcome = Build.FAILED for brerror in br.brerror_set.all(): @@ -117,7 +119,6 @@ class Command(NoArgsCommand): br.environment.lock = BuildEnvironment.LOCK_FREE br.environment.save() - # update all BuildRequests without a build created for br in BuildRequest.objects.filter(build=None): br.build = Build.objects.create(project=br.project, @@ -144,7 +145,7 @@ class Command(NoArgsCommand): # Make sure the LOCK is removed for builds which have been fully # cancelled - for br in BuildRequest.objects.filter(\ + for br in BuildRequest.objects.filter( Q(build__outcome=Build.CANCELLED) & Q(state=BuildRequest.REQ_CANCELLING) & ~Q(environment=None)): @@ -168,6 +169,12 @@ class Command(NoArgsCommand): logger.warn("runbuilds: schedule exception %s" % str(e)) def handle_noargs(self, **options): + pidfile_path = os.path.join(os.environ.get("BUILDDIR", "."), + ".runbuilds.pid") + + with open(pidfile_path, 'w') as pidfile: + pidfile.write("%s" % os.getpid()) + self.runbuild() signal.signal(signal.SIGUSR1, lambda sig, frame: None) diff --git a/bitbake/lib/toaster/orm/management/commands/lsupdates.py b/bitbake/lib/toaster/orm/management/commands/lsupdates.py index 688918e68c..68c6c423d8 100644 --- a/bitbake/lib/toaster/orm/management/commands/lsupdates.py +++ b/bitbake/lib/toaster/orm/management/commands/lsupdates.py @@ -90,7 +90,6 @@ class Command(NoArgsCommand): from urlparse import urlparse proxy_settings = os.environ.get("http_proxy", None) - oe_core_layer = 'openembedded-core' def _get_json_response(apiurl=DEFAULT_LAYERINDEX_SERVER): http_progress = Spinner()