bblayerconffile.write("# line added by toaster build control\nBBLAYERS = \"" + " ".join(layerlist) + "\"")
bblayerconffile.close()
- def startBBServer(self):
- """ Starts a BB server with Toaster toasterui set up to record the builds, an no controlling UI.
- After this method executes, self.be bbaddress/bbport MUST point to a running and free server,
- and the bbstate MUST be updated to "started".
- """
- raise NotImplementedError("FIXME: Must override in order to actually start the BB server")
-
-
def setLayers(self, bitbake, ls):
""" Checks-out bitbake executor and layers from git repositories.
Sets the layer variables in the config file, after validating local layer paths.
starts if needed; or reconnects to the server if we can
"""
if not self.connection:
- self.startBBServer()
self.be.lock = BuildEnvironment.LOCK_RUNNING
self.be.save()
logger.debug("localhostbecontroller: shellcmd success")
return out
- def startBBServer(self):
- assert self.pokydirname and os.path.exists(self.pokydirname)
- assert self.islayerset
-
- # find our own toasterui listener/bitbake
- from toaster.bldcontrol.management.commands.loadconf import _reduce_canon_path
-
- toaster = _reduce_canon_path(os.path.join(os.path.dirname(os.path.abspath(__file__)), "../../../bin/toaster"))
- assert os.path.exists(toaster) and os.path.isfile(toaster)
-
- # restart bitbake server and toastergui observer
- self._shellcmd("bash -c 'source %s restart-bitbake'" % toaster, self.be.builddir)
- logger.debug("localhostbecontroller: restarted bitbake server")
-
- # read port number from bitbake.lock
- self.be.bbport = ""
- bblock = os.path.join(self.be.builddir, 'bitbake.lock')
- if os.path.exists(bblock):
- with open(bblock) as fplock:
- for line in fplock:
- if ":" in line:
- self.be.bbport = line.split(":")[-1].strip()
- logger.debug("localhostbecontroller: bitbake port %s", self.be.bbport)
- break
-
- if not self.be.bbport:
- raise BuildSetupException("localhostbecontroller: can't read bitbake port from %s" % bblock)
-
- self.be.bbaddress = "localhost"
- self.be.bbstate = BuildEnvironment.SERVER_STARTED
- self.be.save()
-
def getGitCloneDirectory(self, url, branch):
"""Construct unique clone directory name out of url and branch."""
if branch != "HEAD":