From b68b74ddd4be4a767e84c72a011cc087e059d132 Mon Sep 17 00:00:00 2001 From: Alexandru DAMIAN Date: Tue, 3 Jun 2014 16:26:16 +0100 Subject: 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 Signed-off-by: Richard Purdie --- bitbake/bin/bitbake | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) (limited to 'bitbake/bin') 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(): if configParams.observe_only and (not configParams.remote_server or configParams.bind): sys.exit("FATAL: '--observe-only' can only be used by UI clients connecting to a server.\n") + if configParams.kill_server and not configParams.remote_server: + sys.exit("FATAL: '--kill-server' can only be used to terminate a remote server") + if "BBDEBUG" in os.environ: level = int(os.environ["BBDEBUG"]) if level > configuration.debug: @@ -332,29 +335,14 @@ def main(): server = servermodule.BitBakeXMLRPCClient(configParams.observe_only) server.saveConnectionDetails(configParams.remote_server) - def _getServerConnection(server, featureset): - try: - server_connection = server.establishConnection(featureset) - except Exception as e: - bb.fatal("Could not connect to server %s: %s" % (configParams.remote_server, str(e))) - return server_connection if not configParams.server_only: - if configParams.status_only: - server_connection = _getServerConnection(server, featureset) - server_connection.terminate() - sys.exit(0) - - # Setup a connection to the server (cooker) try: server_connection = server.establishConnection(featureset) - except: + except Exception as e: if configParams.kill_server: - bb.fatal("Server already offline") - configParams.bind = configParams.remote_server - start_server(servermodule, configParams, configuration, featureset) - bb.event.ui_queue = [] - server_connection = _getServerConnection(server, featureset) + sys.exit(0) + bb.fatal("Could not connect to server %s: %s" % (configParams.remote_server, str(e))) # Restore the environment in case the UI needs it for k in cleanedvars: @@ -362,6 +350,16 @@ def main(): logger.removeHandler(handler) + + if configParams.status_only: + server_connection.terminate() + sys.exit(0) + + if configParams.kill_server: + server_connection.connection.terminateServer() + bb.event.ui_queue = [] + sys.exit(0) + try: return ui_module.main(server_connection.connection, server_connection.events, configParams) finally: -- cgit v1.2.3-54-g00ecf