summaryrefslogtreecommitdiffstats
path: root/bitbake
diff options
context:
space:
mode:
authorAlexandru DAMIAN <alexandru.damian@intel.com>2014-06-03 16:26:16 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-06-06 10:32:54 +0100
commitb68b74ddd4be4a767e84c72a011cc087e059d132 (patch)
treec413e63894ef8cf8afc5faccd68f5445b8edaf91 /bitbake
parentb610aaee9d4a1ee6671f74fbb5902ca48b09ad4a (diff)
downloadpoky-b68b74ddd4be4a767e84c72a011cc087e059d132.tar.gz
bitbake: toaster: update toaster to run in managed mode
We disable bitbake self start to prevent race condition. ToasterUI will shutdown the server when the build is done if running in managed mode. We fix usage of kill server flag in the bitbake binary. (Bitbake rev: 30159dbda3a40fa596302f91c705cb5f148c97a9) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rwxr-xr-xbitbake/bin/bitbake34
-rw-r--r--bitbake/lib/bb/ui/toasterui.py16
2 files changed, 28 insertions, 22 deletions
diff --git a/bitbake/bin/bitbake b/bitbake/bin/bitbake
index ab881c537d..f120baccf0 100755
--- a/bitbake/bin/bitbake
+++ b/bitbake/bin/bitbake
@@ -301,6 +301,9 @@ def main():
301 if configParams.observe_only and (not configParams.remote_server or configParams.bind): 301 if configParams.observe_only and (not configParams.remote_server or configParams.bind):
302 sys.exit("FATAL: '--observe-only' can only be used by UI clients connecting to a server.\n") 302 sys.exit("FATAL: '--observe-only' can only be used by UI clients connecting to a server.\n")
303 303
304 if configParams.kill_server and not configParams.remote_server:
305 sys.exit("FATAL: '--kill-server' can only be used to terminate a remote server")
306
304 if "BBDEBUG" in os.environ: 307 if "BBDEBUG" in os.environ:
305 level = int(os.environ["BBDEBUG"]) 308 level = int(os.environ["BBDEBUG"])
306 if level > configuration.debug: 309 if level > configuration.debug:
@@ -332,29 +335,14 @@ def main():
332 server = servermodule.BitBakeXMLRPCClient(configParams.observe_only) 335 server = servermodule.BitBakeXMLRPCClient(configParams.observe_only)
333 server.saveConnectionDetails(configParams.remote_server) 336 server.saveConnectionDetails(configParams.remote_server)
334 337
335 def _getServerConnection(server, featureset):
336 try:
337 server_connection = server.establishConnection(featureset)
338 except Exception as e:
339 bb.fatal("Could not connect to server %s: %s" % (configParams.remote_server, str(e)))
340 return server_connection
341 338
342 if not configParams.server_only: 339 if not configParams.server_only:
343 if configParams.status_only:
344 server_connection = _getServerConnection(server, featureset)
345 server_connection.terminate()
346 sys.exit(0)
347
348 # Setup a connection to the server (cooker)
349 try: 340 try:
350 server_connection = server.establishConnection(featureset) 341 server_connection = server.establishConnection(featureset)
351 except: 342 except Exception as e:
352 if configParams.kill_server: 343 if configParams.kill_server:
353 bb.fatal("Server already offline") 344 sys.exit(0)
354 configParams.bind = configParams.remote_server 345 bb.fatal("Could not connect to server %s: %s" % (configParams.remote_server, str(e)))
355 start_server(servermodule, configParams, configuration, featureset)
356 bb.event.ui_queue = []
357 server_connection = _getServerConnection(server, featureset)
358 346
359 # Restore the environment in case the UI needs it 347 # Restore the environment in case the UI needs it
360 for k in cleanedvars: 348 for k in cleanedvars:
@@ -362,6 +350,16 @@ def main():
362 350
363 logger.removeHandler(handler) 351 logger.removeHandler(handler)
364 352
353
354 if configParams.status_only:
355 server_connection.terminate()
356 sys.exit(0)
357
358 if configParams.kill_server:
359 server_connection.connection.terminateServer()
360 bb.event.ui_queue = []
361 sys.exit(0)
362
365 try: 363 try:
366 return ui_module.main(server_connection.connection, server_connection.events, configParams) 364 return ui_module.main(server_connection.connection, server_connection.events, configParams)
367 finally: 365 finally:
diff --git a/bitbake/lib/bb/ui/toasterui.py b/bitbake/lib/bb/ui/toasterui.py
index 9a9fe6f2d8..c1696b2a31 100644
--- a/bitbake/lib/bb/ui/toasterui.py
+++ b/bitbake/lib/bb/ui/toasterui.py
@@ -226,11 +226,19 @@ def main(server, eventHandler, params ):
226 226
227 buildinfohelper.update_build_information(event, errors, warnings, taskfailures) 227 buildinfohelper.update_build_information(event, errors, warnings, taskfailures)
228 228
229
230 brbe = server.runCommand(["getVariable", "TOASTER_BRBE"])[0]
229 # we start a new build info 231 # we start a new build info
230 errors = 0 232 if brbe is not None:
231 warnings = 0 233 print "we are under BuildEnvironment management - after the build, we exit"
232 taskfailures = [] 234 server.terminateServer()
233 buildinfohelper = BuildInfoHelper(server, build_history_enabled) 235 else:
236 print "prepared for new build"
237 errors = 0
238 warnings = 0
239 taskfailures = []
240 buildinfohelper = BuildInfoHelper(server, build_history_enabled)
241
234 continue 242 continue
235 243
236 if isinstance(event, bb.event.MetadataEvent): 244 if isinstance(event, bb.event.MetadataEvent):