bitbake: toaster: improve the buildenvironment API

We improve the buildenvironment API by reducing it to a single
command: triggerBuild.

This command is specifically implemented in each BE controller
type, so the runbuilds management command is only concerned
with scheduling the next build, and not with the details
of how a build is actually started.

(Bitbake rev: 7ee0f1da0a8fcac37419ffdddbe35a9268a1ded4)

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Alexandru DAMIAN
2015-06-02 12:57:03 +01:00
committed by Richard Purdie
parent aad93dd3b7
commit 0b2e6442a6
4 changed files with 53 additions and 23 deletions

View File

@@ -156,3 +156,24 @@ class SSHBEController(BuildEnvironmentController):
import shutil
shutil.rmtree(os.path.join(self.be.sourcedir, "build"))
assert not self._pathexists(self.be.builddir)
def triggerBuild(self, bitbake, layers, variables, targets):
# set up the buid environment with the needed layers
self.setLayers(bitbake, layers)
self.writeConfFile("conf/toaster-pre.conf", )
self.writeConfFile("conf/toaster.conf", raw = "INHERIT+=\"toaster buildhistory\"")
# get the bb server running with the build req id and build env id
bbctrl = self.getBBController()
# trigger the build command
task = reduce(lambda x, y: x if len(y)== 0 else y, map(lambda y: y.task, targets))
if len(task) == 0:
task = None
bbctrl.build(list(map(lambda x:x.target, targets)), task)
logger.debug("localhostbecontroller: Build launched, exiting. Follow build logs at %s/toaster_ui.log" % self.be.builddir)
# disconnect from the server
bbctrl.disconnect()