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() |