summaryrefslogtreecommitdiffstats
path: root/bin/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:48 +0100
commit30159dbda3a40fa596302f91c705cb5f148c97a9 (patch)
treea0f5b7b8e7beaac9c604f3d40a382719264afc9d /bin/bitbake
parentc1db4ccf27bedcbab2f03e7539fdb11b042c4fb9 (diff)
downloadbitbake-contrib-30159dbda3a40fa596302f91c705cb5f148c97a9.tar.gz
bitbake-contrib-30159dbda3a40fa596302f91c705cb5f148c97a9.tar.bz2
bitbake-contrib-30159dbda3a40fa596302f91c705cb5f148c97a9.zip
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. Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bin/bitbake')
-rwxr-xr-xbin/bitbake34
1 files changed, 16 insertions, 18 deletions
diff --git a/bin/bitbake b/bin/bitbake
index ab881c537d..f120baccf0 100755
--- a/bin/bitbake
+++ b/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: