From 4429871da76d6bd29e023ff42740fe7daa6b40fa Mon Sep 17 00:00:00 2001 From: Ed Bartosh Date: Tue, 5 Jan 2016 15:45:37 +0200 Subject: [PATCH] xmplrpc: split connect method Current code in connect method sets up event queue, which requires registering UI handler. This functionality may not be needed for some operations, e.g. for server termination. Moved functionality of setting up event queue in from 'connect' method to 'setupEventQueue' in BitBakeXMLRPCServerConnection class. Signed-off-by: Ed Bartosh Signed-off-by: Richard Purdie --- lib/bb/main.py | 1 + lib/bb/server/__init__.py | 3 +++ lib/bb/server/xmlrpc.py | 4 ++-- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/bb/main.py b/lib/bb/main.py index c8530fc3d86..dd0439391e9 100755 --- a/lib/bb/main.py +++ b/lib/bb/main.py @@ -403,6 +403,7 @@ def bitbake_main(configParams, configuration): if not configParams.server_only: try: server_connection = server.establishConnection(featureset) + server_connection.setupEventQueue() except Exception as e: bb.fatal("Could not connect to server %s: %s" % (configParams.remote_server, str(e))) diff --git a/lib/bb/server/__init__.py b/lib/bb/server/__init__.py index da5e4807401..538a633fe59 100644 --- a/lib/bb/server/__init__.py +++ b/lib/bb/server/__init__.py @@ -63,6 +63,9 @@ class BitBakeBaseServerConnection(): def terminate(self): pass + def setupEventQueue(self): + pass + """ BitBakeBaseServer class is the common ancestor to all Bitbake servers diff --git a/lib/bb/server/xmlrpc.py b/lib/bb/server/xmlrpc.py index 17eb28b7d42..1ceca51e0ae 100644 --- a/lib/bb/server/xmlrpc.py +++ b/lib/bb/server/xmlrpc.py @@ -302,7 +302,9 @@ class BitBakeXMLRPCServerConnection(BitBakeBaseServerConnection): return None self.transport.set_connection_token(token) + return self + def setupEventQueue(self): self.events = uievent.BBUIEventQueue(self.connection, self.clientinfo) for event in bb.event.ui_queue: self.events.queue_event(event) @@ -314,8 +316,6 @@ class BitBakeXMLRPCServerConnection(BitBakeBaseServerConnection): # no need to log it here, the error shall be sent to the client raise BaseException(error) - return self - def removeClient(self): if not self.observer_only: self.connection.removeClient() -- 2.47.3