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>
This commit is contained in:
Michael Wood 2016-04-06 17:46:36 +01:00 committed by Richard Purdie
parent 9dcb9cb2cc
commit 22242ae221
1 changed files with 18 additions and 1 deletions

View File

@ -218,6 +218,15 @@ class ORMWrapper(object):
assert isinstance(errors, int)
assert isinstance(warnings, int)
if build.outcome == Build.CANCELLED:
return
try:
if build.buildrequest.state == BuildRequest.REQ_CANCELLING:
return
except AttributeError:
# We may not have a buildrequest if this is a command line build
pass
outcome = Build.SUCCEEDED
if errors or taskfailures:
outcome = Build.FAILED
@ -1405,9 +1414,17 @@ class BuildInfoHelper(object):
be.lock = BuildEnvironment.LOCK_LOCK
be.save()
br = BuildRequest.objects.get(pk = br_id)
# if we're 'done' because we got cancelled update the build outcome
if br.state == BuildRequest.REQ_CANCELLING:
logger.info("Build cancelled")
br.build.outcome = Build.CANCELLED
br.build.save()
errorcode = 0
if errorcode == 0:
# request archival of the project artifacts
br.state = BuildRequest.REQ_ARCHIVE
br.state = BuildRequest.REQ_COMPLETED
else:
br.state = BuildRequest.REQ_FAILED
br.save()