diff options
| -rwxr-xr-x | bitbake/bin/toaster | 2 | ||||
| -rw-r--r-- | bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py | 21 | ||||
| -rw-r--r-- | bitbake/lib/toaster/orm/management/commands/lsupdates.py | 1 |
3 files changed, 15 insertions, 9 deletions
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 | |||
| 254 | return 4 | 254 | return 4 |
| 255 | fi | 255 | fi |
| 256 | export BITBAKE_UI='toasterui' | 256 | export BITBAKE_UI='toasterui' |
| 257 | $MANAGE runbuilds & echo $! >${BUILDDIR}/.runbuilds.pid | 257 | $MANAGE runbuilds & |
| 258 | # set fail safe stop system on terminal exit | 258 | # set fail safe stop system on terminal exit |
| 259 | trap stop_system SIGHUP | 259 | trap stop_system SIGHUP |
| 260 | echo "Successful ${CMD}." | 260 | 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 | |||
| 11 | import logging | 11 | import logging |
| 12 | import traceback | 12 | import traceback |
| 13 | import signal | 13 | import signal |
| 14 | import os | ||
| 14 | 15 | ||
| 15 | logger = logging.getLogger("toaster") | 16 | logger = logging.getLogger("toaster") |
| 16 | 17 | ||
| 18 | |||
| 17 | class Command(NoArgsCommand): | 19 | class Command(NoArgsCommand): |
| 18 | args = "" | 20 | args = "" |
| 19 | help = "Schedules and executes build requests as possible. "\ | 21 | help = "Schedules and executes build requests as possible. "\ |
| @@ -50,7 +52,7 @@ class Command(NoArgsCommand): | |||
| 50 | logger.debug("runbuilds: No build env") | 52 | logger.debug("runbuilds: No build env") |
| 51 | return | 53 | return |
| 52 | 54 | ||
| 53 | logger.info("runbuilds: starting build %s, environment %s" % \ | 55 | logger.info("runbuilds: starting build %s, environment %s" % |
| 54 | (br, bec.be)) | 56 | (br, bec.be)) |
| 55 | 57 | ||
| 56 | # let the build request know where it is being executed | 58 | # let the build request know where it is being executed |
| @@ -80,7 +82,7 @@ class Command(NoArgsCommand): | |||
| 80 | 82 | ||
| 81 | def archive(self): | 83 | def archive(self): |
| 82 | for br in BuildRequest.objects.filter(state=BuildRequest.REQ_ARCHIVE): | 84 | for br in BuildRequest.objects.filter(state=BuildRequest.REQ_ARCHIVE): |
| 83 | if br.build == None: | 85 | if br.build is None: |
| 84 | br.state = BuildRequest.REQ_FAILED | 86 | br.state = BuildRequest.REQ_FAILED |
| 85 | else: | 87 | else: |
| 86 | br.state = BuildRequest.REQ_COMPLETED | 88 | br.state = BuildRequest.REQ_COMPLETED |
| @@ -99,10 +101,10 @@ class Command(NoArgsCommand): | |||
| 99 | Q(updated__lt=timezone.now() - timedelta(seconds=30)) | 101 | Q(updated__lt=timezone.now() - timedelta(seconds=30)) |
| 100 | ).update(lock=BuildEnvironment.LOCK_FREE) | 102 | ).update(lock=BuildEnvironment.LOCK_FREE) |
| 101 | 103 | ||
| 102 | |||
| 103 | # update all Builds that were in progress and failed to start | 104 | # update all Builds that were in progress and failed to start |
| 104 | for br in BuildRequest.objects.filter(state=BuildRequest.REQ_FAILED, | 105 | for br in BuildRequest.objects.filter( |
| 105 | build__outcome=Build.IN_PROGRESS): | 106 | state=BuildRequest.REQ_FAILED, |
| 107 | build__outcome=Build.IN_PROGRESS): | ||
| 106 | # transpose the launch errors in ToasterExceptions | 108 | # transpose the launch errors in ToasterExceptions |
| 107 | br.build.outcome = Build.FAILED | 109 | br.build.outcome = Build.FAILED |
| 108 | for brerror in br.brerror_set.all(): | 110 | for brerror in br.brerror_set.all(): |
| @@ -117,7 +119,6 @@ class Command(NoArgsCommand): | |||
| 117 | br.environment.lock = BuildEnvironment.LOCK_FREE | 119 | br.environment.lock = BuildEnvironment.LOCK_FREE |
| 118 | br.environment.save() | 120 | br.environment.save() |
| 119 | 121 | ||
| 120 | |||
| 121 | # update all BuildRequests without a build created | 122 | # update all BuildRequests without a build created |
| 122 | for br in BuildRequest.objects.filter(build=None): | 123 | for br in BuildRequest.objects.filter(build=None): |
| 123 | br.build = Build.objects.create(project=br.project, | 124 | br.build = Build.objects.create(project=br.project, |
| @@ -144,7 +145,7 @@ class Command(NoArgsCommand): | |||
| 144 | 145 | ||
| 145 | # Make sure the LOCK is removed for builds which have been fully | 146 | # Make sure the LOCK is removed for builds which have been fully |
| 146 | # cancelled | 147 | # cancelled |
| 147 | for br in BuildRequest.objects.filter(\ | 148 | for br in BuildRequest.objects.filter( |
| 148 | Q(build__outcome=Build.CANCELLED) & | 149 | Q(build__outcome=Build.CANCELLED) & |
| 149 | Q(state=BuildRequest.REQ_CANCELLING) & | 150 | Q(state=BuildRequest.REQ_CANCELLING) & |
| 150 | ~Q(environment=None)): | 151 | ~Q(environment=None)): |
| @@ -168,6 +169,12 @@ class Command(NoArgsCommand): | |||
| 168 | logger.warn("runbuilds: schedule exception %s" % str(e)) | 169 | logger.warn("runbuilds: schedule exception %s" % str(e)) |
| 169 | 170 | ||
| 170 | def handle_noargs(self, **options): | 171 | def handle_noargs(self, **options): |
| 172 | pidfile_path = os.path.join(os.environ.get("BUILDDIR", "."), | ||
| 173 | ".runbuilds.pid") | ||
| 174 | |||
| 175 | with open(pidfile_path, 'w') as pidfile: | ||
| 176 | pidfile.write("%s" % os.getpid()) | ||
| 177 | |||
| 171 | self.runbuild() | 178 | self.runbuild() |
| 172 | 179 | ||
| 173 | signal.signal(signal.SIGUSR1, lambda sig, frame: None) | 180 | 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): | |||
| 90 | from urlparse import urlparse | 90 | from urlparse import urlparse |
| 91 | 91 | ||
| 92 | proxy_settings = os.environ.get("http_proxy", None) | 92 | proxy_settings = os.environ.get("http_proxy", None) |
| 93 | oe_core_layer = 'openembedded-core' | ||
| 94 | 93 | ||
| 95 | def _get_json_response(apiurl=DEFAULT_LAYERINDEX_SERVER): | 94 | def _get_json_response(apiurl=DEFAULT_LAYERINDEX_SERVER): |
| 96 | http_progress = Spinner() | 95 | http_progress = Spinner() |
