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:
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:
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:
buildinfohelper.update_build_information(event, errors, warnings, taskfailures)
+
+ brbe = server.runCommand(["getVariable", "TOASTER_BRBE"])[0]
# we start a new build info
- errors = 0
- warnings = 0
- taskfailures = []
- buildinfohelper = BuildInfoHelper(server, build_history_enabled)
+ if brbe is not None:
+ print "we are under BuildEnvironment management - after the build, we exit"
+ server.terminateServer()
+ else:
+ print "prepared for new build"
+ errors = 0
+ warnings = 0
+ taskfailures = []
+ buildinfohelper = BuildInfoHelper(server, build_history_enabled)
+
continue
if isinstance(event, bb.event.MetadataEvent):