bitbake: xmlrpc: client - remove fatal errors

When we use the XMLRPC client API to connect to a bitbake server,
we want to receive errors from the API instead of having the
API exiting without warning.

Thus the "bb.fatal" calls have been replaced with "bb.warn" calls,
and we re-raise the original exception for handling by the
original caller.

The bitbake starting script has been modified to properly test
for failures in calling the client API and handle them.

Additional error handling added in the client, as to prevent
fatal crashes.

(Bitbake rev: eb63f08c33644f64752aaae2146a000956ce894a)

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Alexandru DAMIAN authored and Richard Purdie committed 2014-06-06 10:32:54 +01:00
1 parent a5d01e9ec7
commit e89db137f0
3 files changed
+29 -18

No files matched your search

+13 -10
View File
@@ -332,26 +332,29 @@ 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:
try:
server_connection = server.establishConnection(featureset)
except:
sys.exit(1)
if not server_connection:
sys.exit(1)
server_connection = _getServerConnection(server, featureset)
server_connection.terminate()
sys.exit(0)
# Setup a connection to the server (cooker)
server_connection = server.establishConnection(featureset)
if not server_connection:
try:
server_connection = server.establishConnection(featureset)
except:
if configParams.kill_server:
bb.fatal("Server already killed")
bb.fatal("Server already offline")
configParams.bind = configParams.remote_server
start_server(servermodule, configParams, configuration, featureset)
bb.event.ui_queue = []
server_connection = server.establishConnection(featureset)
server_connection = _getServerConnection(server, featureset)
# Restore the environment in case the UI needs it
for k in cleanedvars: