summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/ui/buildinfohelper.py
diff options
context:
space:
mode:
authorMichael Wood <michael.g.wood@intel.com>2016-04-06 17:46:36 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-04-06 23:10:29 +0100
commit22242ae2213a0b8493cf0962cf639e3ead4e9bc9 (patch)
tree19b6e249d8f32797b7eaabdd73adb3c5c292d413 /bitbake/lib/bb/ui/buildinfohelper.py
parent9dcb9cb2ccf52fa846ce1462e01f045253959328 (diff)
downloadpoky-22242ae2213a0b8493cf0962cf639e3ead4e9bc9.tar.gz
bitbake: buildinfohelper: Add handler for cancelling a build
When a build is cancelled the build (action) is complete if it has been caused the request being cancelled then update the build outcome accordingly. (Bitbake rev: d94d12914d351bf560b06d6f4e45c294b04ecaa3) Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/ui/buildinfohelper.py')
-rw-r--r--bitbake/lib/bb/ui/buildinfohelper.py19
1 files changed, 18 insertions, 1 deletions
diff --git a/bitbake/lib/bb/ui/buildinfohelper.py b/bitbake/lib/bb/ui/buildinfohelper.py
index eb0e425e2c..37a3fcb9c7 100644
--- a/bitbake/lib/bb/ui/buildinfohelper.py
+++ b/bitbake/lib/bb/ui/buildinfohelper.py
@@ -218,6 +218,15 @@ class ORMWrapper(object):
218 assert isinstance(errors, int) 218 assert isinstance(errors, int)
219 assert isinstance(warnings, int) 219 assert isinstance(warnings, int)
220 220
221 if build.outcome == Build.CANCELLED:
222 return
223 try:
224 if build.buildrequest.state == BuildRequest.REQ_CANCELLING:
225 return
226 except AttributeError:
227 # We may not have a buildrequest if this is a command line build
228 pass
229
221 outcome = Build.SUCCEEDED 230 outcome = Build.SUCCEEDED
222 if errors or taskfailures: 231 if errors or taskfailures:
223 outcome = Build.FAILED 232 outcome = Build.FAILED
@@ -1405,9 +1414,17 @@ class BuildInfoHelper(object):
1405 be.lock = BuildEnvironment.LOCK_LOCK 1414 be.lock = BuildEnvironment.LOCK_LOCK
1406 be.save() 1415 be.save()
1407 br = BuildRequest.objects.get(pk = br_id) 1416 br = BuildRequest.objects.get(pk = br_id)
1417
1418 # if we're 'done' because we got cancelled update the build outcome
1419 if br.state == BuildRequest.REQ_CANCELLING:
1420 logger.info("Build cancelled")
1421 br.build.outcome = Build.CANCELLED
1422 br.build.save()
1423 errorcode = 0
1424
1408 if errorcode == 0: 1425 if errorcode == 0:
1409 # request archival of the project artifacts 1426 # request archival of the project artifacts
1410 br.state = BuildRequest.REQ_ARCHIVE 1427 br.state = BuildRequest.REQ_COMPLETED
1411 else: 1428 else:
1412 br.state = BuildRequest.REQ_FAILED 1429 br.state = BuildRequest.REQ_FAILED
1413 br.save() 1430 br.save()